Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Error desconocido pasar datos entre tablas

Estas en el tema de Error desconocido pasar datos entre tablas en el foro de PHP en Foros del Web. Buen día tengo problemas con algo podríamos decirse básico, intento pasar datos de una tabla a otra y aparte añadirle otros datos .. este es ...
  #1 (permalink)  
Antiguo 19/02/2014, 10:47
 
Fecha de Ingreso: agosto-2010
Mensajes: 125
Antigüedad: 13 años, 8 meses
Puntos: 0
Error desconocido pasar datos entre tablas

Buen día tengo problemas con algo podríamos decirse básico, intento pasar datos de una tabla a otra y aparte añadirle otros datos .. este es el código

include '../conexion.php';

$grado = $_POST["grado"];
$grupo = $_POST["grupo"];

$con = mysqli_connect($dbhost, $dbusername, $dbuserpass,$dbname);

$datos = mysqli_query($con,"SELECT no_lista, apellidopaterno, apellidomaterno, nombres FROM ecxel_listas WHERE no_lista >0");
while ($row0 = mysqli_fetch_array($datos)) {

$no_lista=$row0['no_lista'];
$apellidopaterno=$row0['apellidopaterno'];
$apellidomaterno=$row0['apellidomaterno'];
$nombres=$row0['nombres'];

$insercion="INSERT INTO alumnos (no_lista, apellidopaterno, apellidomaterno, nombres, grado, grupo) values ($no_lista, $apellidopaterno, $apellidomaterno, $nombres, $grado, $grupo)";

if($ejecucion=mysqli_query($con, $insercion)){
echo 'Se insertaron los campos correspondientes';
}else{
echo 'error ';
echo mysqli_error();
}
}

//al ejecutarlo, me muestra error Unknown column 'gomez' in 'field list'error Unknown column 'franco' in 'field list'error Unknown column 'romero' in 'field list'error Unknown column 'naco' in 'field list'error Unknown column 'meco' in 'field list'
  #2 (permalink)  
Antiguo 19/02/2014, 10:53
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Error desconocido pasar datos entre tablas

Te sugiero aprender bien SQL antes de querer utilizarlo en otro lenguaje, tus problemas son bastante evidentes: no estás escapando adecuadamente los valores en la consulta.

Si supieras SQL sabrías de lo que hablo pues tu problema no es de código PHP.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 19/02/2014, 15:06
 
Fecha de Ingreso: agosto-2010
Mensajes: 125
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Error desconocido pasar datos entre tablas

hice las siguientes correcciones pero nada


<?php
include '../conexion.php';

//$grado = $_POST["grado"];
//$grupo = $_POST["grupo"];




$con = mysqli_connect($dbhost, $dbusername, $dbuserpass,$dbname);

$datos = mysqli_query($con,"SELECT * FROM ecxel_listas WHERE no_lista >0");
while ($row0 = mysqli_fetch_assoc($datos)) {


$vector[0]=$row0['no_lista'];
$vector[1]=$row0['apellidopaterno'];
$vector[2]=$row0['apellidomaterno'];
$vector[3]=$row0['nombres'];
$grado = 1;
$grupo = "B";

$insercion="INSERT INTO alumnos (no_lista, apellidopaterno, apellidomaterno, nombres, grado, grupo) values (".$vector[0].",".$vector[1].",".$vector[2].",".$vector[3].",$grado, $grupo)";


if($ejecucion=mysqli_query($con, $insercion)){
echo 'Se insertaron los campos correspondientes';
}else{
echo 'error ';
echo mysqli_error($con);
}
}
?>
  #4 (permalink)  
Antiguo 19/02/2014, 15:27
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Error desconocido pasar datos entre tablas

Me parece que sigues sin entender.

¿Sabes lo que significa escapar apropiadamente los valores de una consulta?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 19/02/2014, 15:35
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: Error desconocido pasar datos entre tablas

Código PHP:
$vector[1]=$row0['apellidopaterno'];
$vector[2]=$row0['apellidomaterno'];
$vector[3]=$row0['nombres']; 
Estos tres valores son strings, cadenas de texto, pero cuando las pones en la sentencia, no estás haciendo que se transformen en cadenas de texto para el SQL.
Ten en cuenta que SQL no es PHP y que PHP no es SQL.
Al igual que cuando generas HTML o JavaScript como salida del PHP, el SQL es otro lenguaje, al cual debes respetar su sintaxis.
Eso es lo que no estás haciendo.

Vamos a ver si te percatas de la diferencia:
Código PHP:
$insercion="INSERT INTO alumnos (no_lista, apellidopaterno, apellidomaterno, 
nombres, grado, grupo) 
values ("
.$vector[0].", '".$vector[1]."', '".$vector[2]."', 
'"
.$vector[3]."',$grado, $grupo)"
__________________
¿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 19/02/2014, 22:04
 
Fecha de Ingreso: agosto-2010
Mensajes: 125
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Error desconocido pasar datos entre tablas

gracias por tu respuesta gnzsoloyo ."','". Esta es la diferencia, entonces quedaría así


<?php
include '../conexion.php';

//$grado = $_POST["grado"];
//$grupo = $_POST["grupo"];




$con = mysqli_connect($dbhost, $dbusername, $dbuserpass,$dbname);

$datos = mysqli_query($con,"SELECT * FROM ecxel_listas WHERE no_lista >0");
while ($row0 = mysqli_fetch_assoc($datos)) {


$vector[1]=$row0['no_lista'];
$vector[2]=$row0['apellidopaterno'];
$vector[3]=$row0['apellidomaterno'];
$vector[4]=$row0['nombres'];
$grado = 1;
$grupo = "B";

$insercion="INSERT INTO alumnos (no_lista, apellidopaterno, apellidomaterno, nombres, grado, grupo) values (".$vector[1]."','".$vector[2]."','".$vector[3]."','".$vector[4].",$grado, $grupo)";
if($ejecucion=mysqli_query($con, $insercion)){
echo 'Se insertaron los campos correspondientes';
}else{
echo 'error ';
echo mysqli_error($con);
}
}
?>


pero ahora me manda este error

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '','gomez','gomez','snta,1, B)' at line 1
  #7 (permalink)  
Antiguo 19/02/2014, 22:39
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Error desconocido pasar datos entre tablas

Cita:
pero ahora me manda este error

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '','gomez','gomez','snta,1, B)' at line 1
Al combinar comillas es necesario prestar mucha atención a lo que se escribe, si tu editor de código no soporta resaltado de sintaxis veo muy difícil que notes el error, eso se le escapa a cualquiera.

Sin embargo, utilizando algunas técnicas y buenas practicas este tipo de errores se mitigan de manera sencilla.

Lo correcto en el caso de consultar a la base de datos es simple: consultas preparadas.

Eso es lo que deberías usar para no tener que golpear el clavo con la mano.

De paso, sería bueno que comprendas como se combinan de manera adecuada las comillas para no tener otro tipo de problema relacionado a ellas.

Lee lo siguiente: http://www.forosdelweb.com/f18/como-...s-bien-588701/
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 20/02/2014, 06:19
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: Error desconocido pasar datos entre tablas

Anduviste cerca, pero como dice @pateketrueke, si no usas un buen editor, que te resalte la sintaxis (yo suelo usar NetBeans, por ejemplo), hay errores verdaderamente elementales que jamás verás.
Le pusiste un apóstrofe de más al primer valor, y uno de menos a otro.
para que quede claro: todos los valores que sean cadenas de texto, en el SQL deben quedar encerrados entre apóstrofes (').
En ese sentido, es correcto que uses comillas (") para crear las sentencias, per tienes que tener cuidado con lo que queda armado como SQL leugo. El SQL no entiende las variables de PHP porque no se comunican entre si. Lo que te conviene siempre es visualizar las sentencias usadas para probalas luego en MySQL a mano, y también capturar las excepciones para que no se maifiesten con mensajes inentendibles para ti.
Código PHP:
<?php
include '../conexion.php';

//$grado = $_POST["grado"];
//$grupo = $_POST["grupo"];




$con mysqli_connect($dbhost$dbusername$dbuserpass,$dbname);

$datos mysqli_query($con,"SELECT * FROM ecxel_listas WHERE no_lista >0");
while (
$row0 mysqli_fetch_assoc($datos)) {


$vector[1]=$row0['no_lista'];
$vector[2]=$row0['apellidopaterno'];
$vector[3]=$row0['apellidomaterno'];
$vector[4]=$row0['nombres'];
$grado 1;
$grupo "B";

$insercion="INSERT INTO alumnos (no_lista, apellidopaterno, apellidomaterno, nombres, grado, grupo) values ($vector[1],'".$vector[2]."','".$vector[3]."','".$vector[4]."',$grado, $grupo)";
///  Visualzia la sentencia
echo $insercion;

if(
$ejecucion=mysqli_query($con$insercion)){
   echo 
'Se insertaron los campos correspondientes';
  }else{
    echo 
'error ';
    echo 
mysqli_error($con);
  }
 }
?>
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 20/02/2014, 08:16
 
Fecha de Ingreso: agosto-2010
Mensajes: 125
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Error desconocido pasar datos entre tablas

bien día, mire me manda este error

INSERT INTO alumnos (no_lista, apellidopaterno, apellidomaterno, nombres, grado, grupo) values (1,'gomez','gomez','snta',1, B)error Unknown column 'B' in 'field list


cheque las tablas de la base de datos... en la tabla ecxel_listas tengo id, no_lista , apellidopaterno, apellidomaterno nombres y en la tabla alumnos tengo id_alumnos, no_lista, apellido paterno, apellido materno, nombre, grado y grupo ...
  #10 (permalink)  
Antiguo 20/02/2014, 08:25
 
Fecha de Ingreso: agosto-2010
Mensajes: 125
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Error desconocido pasar datos entre tablas

mAESTRO @gnzsoloyo Le agradezco mucho.. ya quedo resuelto solo le agregue '' comillas a grado y grupo,

$insercion="INSERT INTO alumnos (no_lista, apellidopaterno, apellidomaterno, nombres, grado, grupo) values ($vector[1],'".$vector[2]."','".$vector[3]."','".$vector[4]."','$grado', '$grupo')";

Etiquetas: mysl
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 07:05.