Foros del Web » Programando para Internet » PHP »

ingresar registros

Estas en el tema de ingresar registros en el foro de PHP en Foros del Web. Hola, estoy haciendo un apartado en una web para ingresar los datos de una persona, ya tengo el que los actualiza, pero a la hora ...
  #1 (permalink)  
Antiguo 08/07/2014, 10:56
 
Fecha de Ingreso: abril-2014
Mensajes: 141
Antigüedad: 10 años
Puntos: 1
ingresar registros

Hola, estoy haciendo un apartado en una web para ingresar los datos de una persona, ya tengo el que los actualiza, pero a la hora de darle a agregar no hace nada

con esto inserto los datos en las tablas:
Código PHP:
Ver original
  1. <?php
  2.  
  3.  
  4. include("1.php");
  5.    
  6.     if(isset($_POST["submit"])){
  7.      $id_persona = $_POST['id_persona'];
  8.      $id_titulo = $_POST['id_titulo'];
  9.      $id_puesto = $_POST['id_puesto'];
  10.      $id_adscripcion = $_POST['id_adscripcion'];
  11.      $id_domicilio = $_POST['id_domicilio'];
  12.      $id_telefono = $_POST['id_telefono'];
  13.      $titulo = $_POST['titulo'];
  14.      $nombre = $_POST['nombre'];
  15.      $paterno = $_POST['paterno'];
  16.      $materno = $_POST['materno'];
  17.      $puesto = $_POST['puesto'];
  18.      $adscripcion = $_POST['adscripcion'];
  19.      $domicilio = $_POST['domicilio'];
  20.      $correo = $_POST['correo'];
  21.      $telefono1 = $_POST['telefono1'];
  22.      $telefono2 = $_POST['telefono2'];
  23.      $telefono3 = $_POST['telefono3'];
  24.      $fax1 = $_POST['fax1'];
  25.      $fax2 = $_POST['fax2'];
  26.    
  27.  
  28. mysql_query("INSERT INTO dir_persona (nombre, paterno, materno, correo, id_puesto) VALUES ($nombre, $paterno, $materno, $correo, $id_puesto, $id_adscripcion, $id_domicilio");
  29.  
  30. $id = mysql_insert_id($id_puesto);
  31.  
  32. mysql_query("INSERT INTO dir_titulo (telefono1, telefono2, telefono3, fax1, fax2, id_persona) VALUES ($telefono1, $telefono2, $telefono3, $fax1, $fax2, $id)");
  33.  
  34. mysql_query("INSERT INTO dir_puesto (id_puesto, puesto) VALUES ($id_puesto, $puesto)");
  35.  
  36. mysql_query("INSERT INTO dir_adscripcion (id_adscripcion, adscripcion) VALUES ($id_adscripcion, $adscripcion)");
  37.  
  38. mysql_query("INSERT INTO dir_domicilio (id_domicilio, domicilio) VALUES ($id_domicilio, $domicilio)");
  39.  
  40.  
  41. mysql_query($query,$dbi) or die("NO PUDO INGRESAR EL REGISTRO" . mysql_error());  
  42.  
  43. header("location: ./detalles1.php?id=$id_persona");
  44.  
  45. ?>
  #2 (permalink)  
Antiguo 08/07/2014, 11:02
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: ingresar registros

Y seré curioso... ¿en qué momento generas la conexión a MySQL?

Por otro lado, veo que no estás controlando si lo que metes son cadenas de texto o numeros. En tu script estás generando TODO el contenido de los VALUES como si fueran números, lo que sin duda está generando errores de sintaxis.
TEn en cuenta que MySQL no entiende ni le llegan las variables de PHP. EN PHP debes generar una query como cadena de texto, respetando la sintaxis de SQL.
Por ejemplo:
Código PHP:
Ver original
  1. mysql_query("INSERT INTO dir_persona (nombre, paterno, materno, correo, id_puesto) VALUES ('$nombre', '$paterno', '$materno', '$correo', $id_puesto, $id_adscripcion, $id_domicilio");

¿Se entiende?

Finalmente: No estás validando que las consultas se ejecuten sin errores, debes verificar eso con cada una de ellas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 08/07/2014, 11:08
Avatar de thedaket  
Fecha de Ingreso: junio-2011
Mensajes: 55
Antigüedad: 12 años, 9 meses
Puntos: 3
Respuesta: ingresar registros

Estoy de acuerdo con gnzsoloyo en que momento le pasas la conexión a mysql_query checa el manual y aun que no venga al caso recuerda que estas funciones ya serán deprecadas así que su uso ya no es muy recomendado.

Saludos.
__________________
Sí AJAX quieres usar jQuery debes agregar...
  #4 (permalink)  
Antiguo 08/07/2014, 11:09
 
Fecha de Ingreso: abril-2014
Mensajes: 141
Antigüedad: 10 años
Puntos: 1
Respuesta: ingresar registros

esta es la conexion

Código PHP:
Ver original
  1. <html>
  2. <head>
  3. <title>Actualización</title>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  5. </head>
  6. <body>
  7.  
  8.  
  9. <?php
  10. function connectToDB( $dbName="" ) {
  11.    
  12.     $hostdb = 'localhost';  
  13.     $userdb = 'root';  
  14.     $passdb = 'root';    
  15.     $namedb =  $dbName ? $dbName : 'movedb';
  16.  
  17.     $link = mysql_connect ($hostdb, $userdb, $passdb);
  18.        
  19.     if (!$link) {
  20.        die('Could not connect: ' . mysql_error());
  21.     }
  22.  
  23.     $db_selected = mysql_select_db($namedb);
  24.     if (!$db_selected) {
  25.         die ('Can\'t use database : ' . mysql_error());
  26.     }
  27.     return $link;
  28. }
  29.  
  30. ?>
  31.  
  32.  
  33. </body>
  34. </html>

no entendi eso VALUES como numeros, como los hago que sean texto?

en los formularios tengo algo asi para cada registro

Código HTML:
Ver original
  1. <li>  
  2.                     <label for="name">Nombre:</label>  
  3.                     <input type="text" name="nombre" required />  
  4.                 </li>

seria asi?
Código PHP:
Ver original
  1. $registro3=mysql_query("INSERT INTO dir_puesto (id_puesto, puesto) VALUES ($id_puesto, $puesto)");
  #5 (permalink)  
Antiguo 08/07/2014, 11:26
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: ingresar registros

Cita:
no entendi eso VALUES como numeros, como los hago que sean texto?
Yo estoy hablando exclusivamente de SQL... creí que eso se entendía.
Código MySQL:
Ver original 

REcuerda lo que dije: MySQL no entiende PHP, no interactúa con PHP y no recibe variablñes de PHP... Es otro universo paralelo, al que PHP se comunica con una librería de acceso a datos (MYSQL en tu caso). Lo que MySQL recibe es una cadena de texto conteniendo una query, la cual ejecuta dentro de si mismo.
Vale decir que en PHP tu haces:
Código PHP:
Ver original
  1. $registro3=mysql_query("INSERT INTO dir_puesto (id_puesto, puesto) VALUES ($id_puesto, $puesto)");
Pero MySQL recibe:
Código MySQL:
Ver original
  1. INSERT INTO dir_puesto (id_puesto, puesto) VALUES (1, 'Jefe de departamento')

¿Ahora se enteinde?

Para mayor claridad: Que definas en PHP una variable como cadena, a MySQL no le importa, porque jamás se entera. En MySQL una cadena es un texto contenido entre apóstrofes (').
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 08/07/2014, 11:29
Avatar de thedaket  
Fecha de Ingreso: junio-2011
Mensajes: 55
Antigüedad: 12 años, 9 meses
Puntos: 3
Respuesta: ingresar registros

Código PHP:
$registro3 mysql_query('INSERT INTO dir_puesto(id_puesto,puesto) VALUES ('.$id_puesto.',"'.$puesto.'")'); 
Así tal cual quedaria tu código

Saludos
__________________
Sí AJAX quieres usar jQuery debes agregar...
  #7 (permalink)  
Antiguo 08/07/2014, 11:36
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: ingresar registros

Cuidado con la combinación de comillas y apóstrofos...

Código PHP:
Ver original
  1. $registro3 = mysql_query("INSERT INTO dir_puesto(id_puesto,puesto)
  2. VALUES (".$id_puesto.",'".$puesto."')");

En MySQL los números no requieren apostrofos. Sólo las cadenas de texto, las fechas y las horas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 08/07/2014, 11:45
Avatar de thedaket  
Fecha de Ingreso: junio-2011
Mensajes: 55
Antigüedad: 12 años, 9 meses
Puntos: 3
Respuesta: ingresar registros

Lo sé por pero mi query lo estoy abriendo con comilla simple y las estoy usando para concatenación osea si hay te encargo.

Saludos.
__________________
Sí AJAX quieres usar jQuery debes agregar...
  #9 (permalink)  
Antiguo 08/07/2014, 11:51
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: ingresar registros

Es mejor usar comillas para la cadena global, y apostrofes internos en las cadenas del SQL. De la forma que la planteas puede no funcionar si el servidor de MySQL no está configurado de una forma estandar.
Por default las comillas (") MySQL las usa para nombres de objetos de BBDD, y no para cadenas, a menos que el servidor se haya confirgurado de otro modo.
En otras palabras, puede funcionar bien en PHP, pero cuando llega a MySQL, falla.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 08/07/2014, 11:56
 
Fecha de Ingreso: abril-2014
Mensajes: 141
Antigüedad: 10 años
Puntos: 1
Respuesta: ingresar registros

lo hice asi y me sigue mostrando una pagina en blanco

Código PHP:
Ver original
  1. $registro1=mysql_query("INSERT INTO dir_persona (nombre, paterno, materno, correo, id_puesto) VALUES ('".$nombre."', '".$paterno."', '".$materno."', '".$correo."', ".$id_puesto."', ".$id_adscripcion.", ".$id_domicilio.")");
  2.  
  3. $id = mysql_insert_id($id_puesto);
  4.  
  5. $registro2=mysql_query("INSERT INTO dir_titulo (telefono1, telefono2, telefono3, fax1, fax2, id_persona) VALUES (".$telefono1.", ".$telefono2.", ".$telefono3.", ".$fax1.", ".$fax2.", ".$id.")");
  6.  
  7. $registro3 = mysql_query("INSERT INTO dir_puesto(id_puesto,puesto) VALUES (".$id_puesto.",'".$puesto."')");
  8.  
  9. $registro4=mysql_query("INSERT INTO dir_adscripcion (id_adscripcion, adscripcion) VALUES (".$id_adscripcion.", '".$adscripcion."')");
  10.  
  11. $registro5=mysql_query("INSERT INTO dir_domicilio (id_domicilio, domicilio) VALUES (".$id_domicilio.", '".$domicilio."')");
  #11 (permalink)  
Antiguo 08/07/2014, 12:14
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: ingresar registros

Como mínimo deberías capturar el error, ya te lo dije. Si hay algún fallo en las ejecuciiones debe verificarse, y tu estás asumiendo que todo anda siempre perfectamente... lo que no es necesariamente cierto:

Código PHP:
Ver original
  1. $registro1=mysql_query("INSERT INTO dir_persona (nombre, paterno, materno, correo,
  2. id_puesto) VALUES ('".$nombre."', '".$paterno."', '".$materno."', '".$correo."', ".$id_puesto."',
  3. ".$id_adscripcion.", ".$id_domicilio.")") or die("Error al intentar insertar en BBDD: ".mysql_error());
  4.  
  5. $id = mysql_insert_id($id_puesto);
  6.  
  7. $registro2=mysql_query("INSERT INTO dir_titulo (telefono1, telefono2, telefono3, fax1, fax2,
  8. id_persona) VALUES (".$telefono1.", ".$telefono2.", ".$telefono3.", ".$fax1.", ".$fax2.",
  9. ".$id.")") or die("Error al intentar insertar en BBDD: ".mysql_error());
  10.  
  11. $registro3 = mysql_query("INSERT INTO dir_puesto(id_puesto,puesto) VALUES
  12. (".$id_puesto.",'".$puesto."')") or die("Error al intentar insertar en BBDD: ".mysql_error());
  13.  
  14. $registro4=mysql_query("INSERT INTO dir_adscripcion (id_adscripcion, adscripcion)
  15. VALUES (".$id_adscripcion.", '".$adscripcion."')") or die("Error al intentar insertar en BBDD: ".mysql_error());
  16.  
  17. $registro5=mysql_query("INSERT INTO dir_domicilio (id_domicilio, domicilio) VALUES
  18. (".$id_domicilio.", '".$domicilio."')") or die("Error al intentar insertar en BBDD: ".mysql_error());
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #12 (permalink)  
Antiguo 08/07/2014, 12:21
 
Fecha de Ingreso: abril-2014
Mensajes: 141
Antigüedad: 10 años
Puntos: 1
Respuesta: ingresar registros

puse esto al comienzo y no me muestra ningun error

Código PHP:
Ver original
  1. <?php
  2. ini_set('display_errors', '1');
  3. ?>

la pantalla sale en blanco

puse lo que me pusiste y también sale en blanco

si el id en la base de datos no es autoincremental, se agrega solo?

Última edición por portal47; 08/07/2014 a las 12:34
  #13 (permalink)  
Antiguo 08/07/2014, 12:55
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: ingresar registros

SI no sale nada, entonces el fallo no es con los INSERT... Tienes un error en otra parte.

Cita:
si el id en la base de datos no es autoincremental, se agrega solo?
No. Sólo los AI "se agregan solos". MySQL los calcula y los pone. Todo ID numérico no AI debe ser ingresado manualmente.

Verifica los datos que están llegnado, y verifica especialmente si el formulario se está enviando correctamente.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #14 (permalink)  
Antiguo 08/07/2014, 13:27
 
Fecha de Ingreso: abril-2014
Mensajes: 141
Antigüedad: 10 años
Puntos: 1
Respuesta: ingresar registros

ya revise pero no veo en que este mal el formulario

Código HTML:
Ver original
  1. <form  class="contact_form" name="new" method='post' action='new.php' id="contact_form" runat="server">  
  2.         <div>  
  3.             <ul>  
  4.                 <li>  
  5.                     <h2>Nuevo Registro</h2>  
  6.                 </li>  
  7.                 <li>  
  8.                 <label>Titulo:</label>  
  9.   <?php
  10.       $result = mysql_query("SELECT * FROM dir_titulo ORDER BY titulo ASC");
  11.  ?>      
  12.    <select name="titulo" >
  13.   <?php
  14.   while($row = mysql_fetch_array($result)) {
  15.  
  16.  $valor = $row["id_titulo"] ;
  17.  $nom = $row["titulo"];
  18.  echo "<option value=".$valor.">".$nom."</option>";
  19. }
  20. ?>
  21.                 </li>
  22.                 <li>  
  23.                     <label>Nombre:</label>  
  24.                     <input type="text" name="nombre" required />  
  25.                 </li>
  26.                 <li>  
  27.                     <label>Apellido Paterno:</label>  
  28.                     <input type="text" name="paterno" required />  
  29.                 </li>
  30.                 <li>  
  31.                     <label>Apellido Materno:</label>  
  32.                     <input type="text" name="materno" required />  
  33.                 </li>
  34.                 <li>  
  35.                 <label>Puesto:</label>  
  36.   <?php
  37.       $result = mysql_query("SELECT * FROM dir_puesto ORDER BY puesto ASC");
  38.  ?>      
  39.    <select name="puesto" >
  40.   <?php
  41.   while($row = mysql_fetch_array($result)) {
  42.  
  43.  $valor = $row["id_puesto"] ;
  44.  $nom = $row["puesto"];
  45.  echo "<option value=".$valor.">".$nom."</option>";
  46. }
  47. ?>
  48.                 </li>
  49.                 <li>  
  50.                 <label>Adscripción:</label>  
  51.   <?php
  52.       $result = mysql_query("SELECT * FROM dir_adscripcion ORDER BY adscripcion ASC");
  53.  ?>      
  54.    <select name="adscripcion" >
  55.   <?php
  56.   while($row = mysql_fetch_array($result)) {
  57.  
  58.  $valor = $row["id_adscripcion"] ;
  59.  $nom = $row["adscripcion"];
  60.  echo "<option value=".$valor.">".$nom."</option>";
  61. }
  62. ?>
  63.                 </li>              
  64.                 <li>  
  65.                 <label>Domicilio:</label>  
  66.   <?php
  67.       $result = mysql_query("SELECT * FROM dir_domicilio ORDER BY domicilio ASC");
  68.  ?>      
  69.    <select name="domicilio" >
  70.   <?php
  71.   while($row = mysql_fetch_array($result)) {
  72.  
  73.  $valor = $row["id_domicilio"] ;
  74.  $nom = $row["domicilio"];
  75.  echo "<option value=".$valor.">".$nom."</option>";
  76. }
  77. ?>
  78.                 </li>
  79.                 <li>  
  80.                     <label>Correo Electronico:</label>  
  81.                     <input type="email" name="correo" required />  
  82.                     <span class="form_hint">Ejemplo: "[email protected]"</span>  
  83.                 </li>  
  84.                 <li>  
  85.                     <label>Red 1:</label>  
  86.                     <input type="tel" name="telefono1" required>  
  87.                 </li>              
  88.                 <li>  
  89.                     <label>Red 2:</label>  
  90.                     <input type="tel" name="telefono2">  
  91.                 </li>      
  92.                 <li>  
  93.                     <label>Red 3:</label>  
  94.                     <input type="tel" name="telefono3">  
  95.                 </li>  
  96.                 <li>  
  97.                     <label>Fax 1:</label>  
  98.                     <input type="tel" name="fax1">  
  99.                 </li>  
  100.                 <li>  
  101.                     <label>Fax 2:</label>  
  102.                     <input type="tel" name="fax2">  
  103.                 </li>                    
  104.                 <li>  
  105.                     <!--<input type="button" name="Volver" value="Volver" onClick="javascript:history.back(-1)"> -->
  106.                     <button class="submit" type="button" onClick="javascript:history.back(-1)">Cancelar</button>  
  107.                     <button class="submit" type="reset">Limpiar</button>  
  108.                     <button class='submit' type='submit'>Agregar</button>  
  109.                 </li>  
  110.             </ul>  
  111.         </div>  
  112.     </form>
  #15 (permalink)  
Antiguo 09/07/2014, 12:54
 
Fecha de Ingreso: abril-2014
Mensajes: 141
Antigüedad: 10 años
Puntos: 1
Respuesta: ingresar registros

lo cambie por esto:
Código PHP:
Ver original
  1. $sql = mysql_query ("INSERT INTO dir_persona (nombre, paterno, materno, correo) VALUES ('$nombre', '$paterno', '$materno', '$correo')")
  2. or die("Error al intentar insertar en BBDD: ".mysql_error());
  3.  $result = mysql_query($sql);

y ya ingresa los datos pero el nombre es el único que no ingresa

Etiquetas: mysql, registro, registros, tabla
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 11:23.