Foros del Web » Programando para Internet » PHP »

Cargar datos en BD Mysql

Estas en el tema de Cargar datos en BD Mysql en el foro de PHP en Foros del Web. Buenos dias. tengo el siguiente problema. tengo dos tablas: capper (Capperid,dni,Apellido,Nombre) y obscapper (Obsid,Capperid,Observaciones) que estan relacionadas por Capperid. tengo un formulario que me guarda ...
  #1 (permalink)  
Antiguo 14/03/2009, 07:47
 
Fecha de Ingreso: noviembre-2007
Ubicación: san justo - santa fe
Mensajes: 31
Antigüedad: 17 años
Puntos: 0
Cargar datos en BD Mysql

Buenos dias. tengo el siguiente problema.
tengo dos tablas: capper (Capperid,dni,Apellido,Nombre) y obscapper (Obsid,Capperid,Observaciones) que estan relacionadas por Capperid.
tengo un formulario que me guarda los datos perfectamente en cada tabla.
mi problema es el sig.:
quiero que cuando se quiera ingresar un dni que ya esta en la tabla capper solo guarde el la tabla obscapper el Capperid y la Observacion.
Me explico-
trate de usar mysql_fetch_row pero me esta dando error
aca le paso algo del codigo

Código PHP:
 <?php
include("conectar.php"); 

$consulta=mysql_query("SELECT dni, Apellido, Nombres, Capperid AS id FROM
capper ORDER BY Apellido"
)
or die(
"Consulta Erronea en primera consulta");



if (!empty (
$_GET['dni']))
{

$hoy=date("Y-m-d");
$hora=date("G:i:s");
$dni=$_GET['dni'];

$usuarios_consulta mysql_query("SELECT Capperid, dni FROM capper WHERE dni='$dni'") or die(mysql_error());
$total_encontrados mysql_num_rows ($usuarios_consulta);
mysql_free_result($usuarios_consulta);

//si la consulta no es igual a 0, el dni ya esta ingresado 

if ($total_encontrados != 0) {

//acá iria el codigo php para que solo guarde en la tabla obscapper el Capperid y la Observacion

exit;
}
//este cod. guarda todos los datos si el dni no esta en la tabla capper
$resumysql_query("insert into capper (dni, Apellido, Nombres) values('$_GET[dni]','$_GET[apellido]','$_GET[nombre]')"); 
 
$id mysql_insert_id($conecta);
 
mysql_query("INSERT INTO obscapper (Capperid, Observaciones, Fecha, Hora) VALUES ($id, '$_GET[observacion]', '$hoy', '$hora')");
 
if (
mysql_errno($conecta)==0){
echo 
"<h2><b> $_GET[apellido], $_GET[nombre] se ingreso con éxito</b><h2>";


}else{
        echo 
"<h2>error<h2>";
    }

mysql_close();

exit;

}

?>
desde ya mis agradecimientos
  #2 (permalink)  
Antiguo 14/03/2009, 08:33
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años, 6 meses
Puntos: 43
Respuesta: Cargar datos en BD Mysql

Me parece correcto tu planteamiento, lo único es que si dni es un int deberías dejarlo con comillas en el select.
Solo te faltaría el código para guardar lo que deseas.

Saludos
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #3 (permalink)  
Antiguo 14/03/2009, 09:00
Avatar de lisandro Arg  
Fecha de Ingreso: octubre-2003
Ubicación: Cordoba, Argentina
Mensajes: 945
Antigüedad: 21 años, 1 mes
Puntos: 24
Respuesta: Cargar datos en BD Mysql

Siempre es conveniente que nos digas que error te tira el navegador.

Colocá el mysql_free_result($usuarios_consulta); después del primer if

Saludos.
  #4 (permalink)  
Antiguo 16/03/2009, 05:00
 
Fecha de Ingreso: noviembre-2007
Ubicación: san justo - santa fe
Mensajes: 31
Antigüedad: 17 años
Puntos: 0
Respuesta: Cargar datos en BD Mysql

aca va lo que hice.

Código PHP:
$hoy=date("Y-m-d");
$hora=date("G:i:s");
$dni=$_GET['dni'];

$usuarios_consulta mysql_query("SELECT Capperid, dni FROM capper WHERE dni='$dni'") or die(mysql_error());
$total_encontrados mysql_num_rows ($usuarios_consulta);
mysql_free_result($usuarios_consulta);

//si la consulta no es igual a 0, el dni ya esta ingresado 

if ($total_encontrados != 0) {

//acá iria el codigo php para que solo guarde en la tabla obscapper el Capperid y la Observacion
if(mysql_num_rows($usuarios_consulta)!=0
{
$fila=mysql_fetch_array($usuarios_consulta

$idperdcap=$fila[‘Capperid’]; 
echo 
$idperdcap//mostamos el id

}
$resulmysql_query("INSERT INTO obscapper (Capperid, Observaciones, Fecha, Hora) VALUES ($idperdcap, '$_GET[observacion]', '$hoy', '$hora')");

exit;

desde ya espero sus respuestas.
atte manuel
  #5 (permalink)  
Antiguo 16/03/2009, 05:33
Avatar de lisandro Arg  
Fecha de Ingreso: octubre-2003
Ubicación: Cordoba, Argentina
Mensajes: 945
Antigüedad: 21 años, 1 mes
Puntos: 24
Respuesta: Cargar datos en BD Mysql

Cita:
Iniciado por lisandro Arg Ver Mensaje
Siempre es conveniente que nos digas que error te tira el navegador.

Colocá el mysql_free_result($usuarios_consulta); después del primer if

Saludos.
Si pedís sugerencias sería bueno que las tengas en cuenta

No liberes la memoria antes de usar la variable $total_encontrados !!

Saludos.
  #6 (permalink)  
Antiguo 16/03/2009, 05:56
 
Fecha de Ingreso: noviembre-2007
Ubicación: san justo - santa fe
Mensajes: 31
Antigüedad: 17 años
Puntos: 0
Respuesta: Cargar datos en BD Mysql

me tira este error
Parse error: parse error in c:\aa\easyphp1-8\www\sistemapolicia\iframealtcapper.php on line 114

la linea 114 corresponde a:
$idperdcap=$fila[‘Capperid’];

que puede ser?
  #7 (permalink)  
Antiguo 16/03/2009, 06:54
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años, 6 meses
Puntos: 43
Respuesta: Cargar datos en BD Mysql

Punto y coma en esta linea:

Código php:
Ver original
  1. $fila=mysql_fetch_array($usuarios_consulta) ;
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #8 (permalink)  
Antiguo 16/03/2009, 07:07
 
Fecha de Ingreso: noviembre-2007
Ubicación: san justo - santa fe
Mensajes: 31
Antigüedad: 17 años
Puntos: 0
Respuesta: Cargar datos en BD Mysql

ahora me tira este error


Warning: mysql_num_rows(): 5 is not a valid MySQL result resource in c:\aa\easyphp1-8\www\sistemapolicia\iframealtcapper.php on line 110

Notice: Undefined variable: idperdcap in c:\aa\easyphp1-8\www\sistemapolicia\iframealtcapper.php on line 118

---------------------------------------------------------
110:
if(mysql_num_rows($usuarios_consulta)!=0)

118:
$resul= mysql_query("INSERT INTO obscapper (Capperid, Observaciones, Fecha, Hora) VALUES ($idperdcap, '$_GET[observacion]', '$hoy', '$hora')");

espero sus respuestas...
gracias.
  #9 (permalink)  
Antiguo 16/03/2009, 07:22
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años, 6 meses
Puntos: 43
Respuesta: Cargar datos en BD Mysql

Para el primer error, estás seguro que colocaste el nombre correcto del resource del query?
Para el segundo, la variable $idperdcap, al parecer no existe anteriormente, debes verificar el nombre.

OBS: Muchas veces, las lineas que ves en los errores, no son exactamente donde suceden.
Cuando pase esto trata de colocar por lo menos las 3 lineas antes y despues de la que te dice en el error.

Saludos
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #10 (permalink)  
Antiguo 16/03/2009, 08:31
Avatar de lisandro Arg  
Fecha de Ingreso: octubre-2003
Ubicación: Cordoba, Argentina
Mensajes: 945
Antigüedad: 21 años, 1 mes
Puntos: 24
Respuesta: Cargar datos en BD Mysql

El primer error es otra vez por el mismo problema, estas liberando la memoria antes de lo que deberías ya que agregaste otra condición que hace exactamente lo mismo que la anterior, me refiero a las lineas 11 y 14 que ves abajo, son idénticas.

El segundo error probablemente sea porque $fila[`Capperid´] tiene mal puestas las comillas.

Código php:
Ver original
  1. $hoy=date("Y-m-d");
  2. $hora=date("G:i:s");
  3. $dni=$_GET['dni'];
  4.  
  5. $usuarios_consulta = mysql_query("SELECT Capperid, dni FROM capper WHERE dni='$dni'") or die(mysql_error());
  6. $total_encontrados = mysql_num_rows ($usuarios_consulta);
  7. mysql_free_result($usuarios_consulta);
  8.  
  9. //si la consulta no es igual a 0, el dni ya esta ingresado
  10.  
  11. if ($total_encontrados != 0) {
  12.  
  13.     //acá iria el codigo php para que solo guarde en la tabla obscapper el Capperid y la Observacion
  14.     if(mysql_num_rows($usuarios_consulta)!=0)
  15.     {
  16.         $fila=mysql_fetch_array($usuarios_consulta);
  17.  
  18.         $idperdcap=$fila[&#8216;Capperid’];
  19.        echo $idperdcap; //mostamos el id
  20.  
  21.     }
  22.     $resul= mysql_query("INSERT INTO obscapper (Capperid, Observaciones, Fecha, Hora) VALUES ($idperdcap, '$_GET[observacion]', '$hoy', '$hora')");
  23.  
  24.     exit;
  25. }
  #11 (permalink)  
Antiguo 16/03/2009, 14:00
 
Fecha de Ingreso: noviembre-2007
Ubicación: san justo - santa fe
Mensajes: 31
Antigüedad: 17 años
Puntos: 0
Respuesta: Cargar datos en BD Mysql

hola hice esto y tampoco funciono me da error

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\aa\easyphp1-8\www\sistemapolicia\iframealtcapveh.php on line 103

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in c:\aa\easyphp1-8\www\sistemapolicia\iframealtcapveh.php on line 108

aca el cod.

Código PHP:
if (!empty ($_GET['dominio']))
{
$hoy=date("Y-m-d");
$hora=date("G:i:s");
$dominio=$_GET['dominio'];

$usuarios_consulta mysql_query("SELECT Capvehid, Dominio FROM capveh WHERE Dominio='$dominio'"
or die(
mysql_error());
$total_encontrados mysql_num_rows ($usuarios_consulta);
mysql_free_result($usuarios_consulta);
//si la consulta es no es igual a 0, El vehiculo ya está registrado
//aca iria el script para la consulta para cargar solo la observacion
if ($total_encontrados != 0) {

 while(
$row mysql_fetch_array($total_encontrados)) {  //103
      
printf($row['Capvehid']); 
$resu=  mysql_query("INSERT INTO obscapveh (Capvehid, Observaciones) VALUES
       ($row, '$_GET[observacion]')"
);
   } 
   
mysql_free_result($total_encontrados);  //108
   
mysql_close($conecta); 

echo 
"<p> El Dominio ya existe se ingreso un nuevo pedido";
echo 
"<br/>";
echo 
"<a href=#>Menu inicial</a> </p>";
exit;

  #12 (permalink)  
Antiguo 16/03/2009, 14:30
Avatar de lisandro Arg  
Fecha de Ingreso: octubre-2003
Ubicación: Cordoba, Argentina
Mensajes: 945
Antigüedad: 21 años, 1 mes
Puntos: 24
Respuesta: Cargar datos en BD Mysql

1 - Ahora tenés dos mysql_free_result(), como he dico 3 veces antes, eliminá el primero.
2 - Al segundo mysql_fee_result() le tenés que pasar la variable $usuarios_consulta no sé porque ahora le pasas $total_encontrados.
3 - A la funcion mysql_fetch_array() le tenes que pasar lo que devuelve mysql_query() o sea $usuarios_consulta, eso estaba bien no sé porque lo has cambiado.
  #13 (permalink)  
Antiguo 16/03/2009, 14:51
 
Fecha de Ingreso: noviembre-2007
Ubicación: san justo - santa fe
Mensajes: 31
Antigüedad: 17 años
Puntos: 0
Respuesta: Cargar datos en BD Mysql

hola lisando. ahi me da en el printf el id. PERFECTO, pero fijate que luego quiero que me carge en la tabla obscapveh el id que obtube y la observacion.
seria en esto

Código PHP:
while($row mysql_fetch_array($usuarios_consulta)) { 
      
printf($row['Capvehid']); 
$resu=  mysql_query("INSERT INTO obscapveh (Capvehid, Observaciones) VALUES
       ($row, '$_GET[observacion]')"
);
   } 
   
mysql_free_result($usuarios_consulta ); 
   
mysql_close($conecta); 
y disculpa que te joda tanto...
  #14 (permalink)  
Antiguo 16/03/2009, 15:52
Avatar de lisandro Arg  
Fecha de Ingreso: octubre-2003
Ubicación: Cordoba, Argentina
Mensajes: 945
Antigüedad: 21 años, 1 mes
Puntos: 24
Respuesta: Cargar datos en BD Mysql

Código php:
Ver original
  1. $resu =  mysql_query("INSERT INTO obscapveh (Capvehid, Observaciones) VALUES ($row['Capvehid'], '$_GET[observacion]')") or die(error());
  #15 (permalink)  
Antiguo 17/03/2009, 06:34
 
Fecha de Ingreso: noviembre-2007
Ubicación: san justo - santa fe
Mensajes: 31
Antigüedad: 17 años
Puntos: 0
Respuesta: Cargar datos en BD Mysql

hola vos sabes que me daba un errorsito el script pero ya lo solucione con una variable que recoja el resultado de $row['Capvehid'].

me quedo de la siguiente manera y anda perfecto.
Código PHP:
if ($total_encontrados != 0) {

 while(
$row mysql_fetch_array($usuarios_consulta)) { 
      
printf($row['Capvehid']);
$ida$row['Capvehid'];  
echo 
$ida;     
$resu mysql_query("INSERT INTO obscapveh (Capvehid, Observaciones, Fecha, Hora) VALUES ($ida, '$_GET[observacion]', '$hoy', '$hora')");
   } 
   
mysql_free_result($usuarios_consulta ); 
   
mysql_close($conecta); 

echo 
"<p> El Dominio ya existe se ingreso un nuevo pedido";
echo 
"<br/>";
echo 
"<a href=#>Menu inicial</a> </p>";
exit;

desde ya estoy muy agradecido por compartir tu sabiduria. Genio...
un saludos....
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:30.