Foros del Web » Programando para Internet » PHP »

me tiene loco.... ayuda porfavor....

Estas en el tema de me tiene loco.... ayuda porfavor.... en el foro de PHP en Foros del Web. normalmente trato de no hacer publicaciones de este tipo pero ya es el recurso de amparo.... la situacion es la siguiente: no se ejecuta el ...
  #1 (permalink)  
Antiguo 19/05/2010, 01:16
 
Fecha de Ingreso: octubre-2009
Mensajes: 23
Antigüedad: 14 años, 6 meses
Puntos: 0
Exclamación me tiene loco.... ayuda porfavor....

normalmente trato de no hacer publicaciones de este tipo pero ya es el recurso de amparo....

la situacion es la siguiente:

no se ejecuta el query de la linea 36 del siguiente codigo.....


<?php
require('conexion.php');
$id_cliente =$_POST['id_cliente'];
$id_tecnico =$_POST['id_tecnico'];
$descr_articulo =$_POST['descr_articulo'];
$serial =$_POST['serial'];
$descr_falla =$_POST['descr_falla'];
$accesydetall =$_POST['accesydetall'];
$bandera =$_POST['bandera'];

if(!$accesydetall)
{
!$accesydetall='NULL';
}

$query="call insertar ($id_cliente,$id_tecnico,'$descr_articulo','$seria l','$descr_falla','$accesydetall',$bandera);";

$resul=$conex->query($query);
if(!$resul)
{
echo"$query";
exit;
}
else
{
$datos=$resul->fetch_assoc();
if($bandera==2)
{
$aux= explode(",", $_POST["listadoCartuchos"]);
$aux2=explode(",",$_POST["listadoserial"]);
foreach ($aux as $indice => $cartuchos) {
$seriales=$aux2[$indice];
$nro=$datos['nro'];
$query2="INSERT INTO detall_recib_cartu VALUES ($nro,$cartuchos,'$seriales') ;"; // la ejecucion q presenta el error
$resultado=$conex->query($query2);

if(!$resultado)
{
echo"\n$query2";
}
}
}
echo"\n\n160";
}

?>


desde mi punto de vista no le veo error alguno.....

ayuda porfavor y de antemano gracias..!!
  #2 (permalink)  
Antiguo 19/05/2010, 01:22
Avatar de Flow89  
Fecha de Ingreso: abril-2010
Ubicación: Valladolid
Mensajes: 346
Antigüedad: 14 años
Puntos: 1
Respuesta: me tiene loco.... ayuda porfavor....

Me gustaría que te fijaras en este ejemplo de insert.

"insert into tabla (campo1,campo2,campo3....) values ($1,$2,$3..)";

Ejemplo:
$sql = "INSERT INTO usuarios (nick,password,nombre,email) VALUES('$nick', '$nombre ', '$password', '$email')";

Creo que la sintaxis del tuyo, no es correcta, aunque no estoy seguro, alomejor tambien se puede hacer así.

Por cierto, tampoco le veo coherencia a esta linea

$query="call insertar ($id_cliente,$id_tecnico,'$descr_articulo','$seria l','$descr_falla','$accesydetall',$bandera);";

Y ciérralo así "; no como lo haces tu ;";

No he mirado el resto del código, y tmapoco se si tu problema deriva de sintaxis, aun asi espero que te sirva.

Un saludo.

PD: No te tira ningun error no? Simplemente no lo ejecuta?.
__________________
Seamos realistas. Busquemos lo imposible. ;)
La forma de dar las gracias en este foro, es dando Karma, aunque a veces con un simple Gracias, basta.

Última edición por Flow89; 19/05/2010 a las 01:28
  #3 (permalink)  
Antiguo 19/05/2010, 01:38
 
Fecha de Ingreso: octubre-2009
Mensajes: 23
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: me tiene loco.... ayuda porfavor....

Cita:
Iniciado por Flow89 Ver Mensaje
Me gustaría que te fijaras en este ejemplo de insert.

"insert into tabla (campo1,campo2,campo3....) values ($1,$2,$3..)";

Ejemplo:
$sql = "INSERT INTO usuarios (nick,password,nombre,email) VALUES('$nick', '$nombre ', '$password', '$email')";

Creo que la sintaxis del tuyo, no es correcta, aunque no estoy seguro, alomejor tambien se puede hacer así.

Por cierto, tampoco le veo coherencia a esta linea

$query="call insertar ($id_cliente,$id_tecnico,'$descr_articulo','$seria l','$descr_falla','$accesydetall',$bandera);";

Y ciérralo así "; no como lo haces tu ;";

No he mirado el resto del código, y tmapoco se si tu problema deriva de sintaxis, aun asi espero que te sirva.

Un saludo.

PD: No te tira ningun error no? Simplemente no lo ejecuta?.


amigo gracias por tu respuesta

pero la tabla en la q estoy ejecutando el insert solo tiene 3 campos a los cuales estoy insertando....

no hay error en dicha forma puesto ya lo he realizado así en anteriores ocasiones...

por lo del punto, no me a dado problemas y esa consulta se realiza sin ningún inconveniente....

el problema es que el insert no se realiza, pero no da error de sintaxis.....


alguna otra idea...¿?
  #4 (permalink)  
Antiguo 19/05/2010, 02:45
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: me tiene loco.... ayuda porfavor....

La consulta insert está mal, como ha dicho flow89 debes poner las comillas a los valores que insertas, y es normal que no te de ningún error, las consultas mysql aunque estén mal no lanzan ningún error a simple vista al menos que uses la función mysql_error para recojer el error que devuelve mysql.

Un saludo
  #5 (permalink)  
Antiguo 19/05/2010, 03:12
 
Fecha de Ingreso: marzo-2008
Mensajes: 171
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: me tiene loco.... ayuda porfavor....

Por que tienes las comillas simples solo en '$seriales' ?
  #6 (permalink)  
Antiguo 19/05/2010, 06:54
 
Fecha de Ingreso: mayo-2010
Mensajes: 6
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: me tiene loco.... ayuda porfavor....

Cita:
Iniciado por MadKat Ver Mensaje
Por que tienes las comillas simples solo en '$seriales' ?
Pregunto lo mismo de las comillas responde el porque?
  #7 (permalink)  
Antiguo 19/05/2010, 07:34
Avatar de maturano  
Fecha de Ingreso: enero-2010
Ubicación: /home/
Mensajes: 537
Antigüedad: 14 años, 3 meses
Puntos: 36
Respuesta: me tiene loco.... ayuda porfavor....

Cita:
Iniciado por Flow89 Ver Mensaje
Por cierto, tampoco le veo coherencia a esta linea
[...]
Y ciérralo así "; no como lo haces tu ;";
No hay ningún problema, es una query, sentencias para un gestor de base de datos. En PHP pueden excluirse pues en un ordinariamente se ejecuta solo una, pero no hacen daño.

Cita:
Iniciado por Heli0s Ver Mensaje
La consulta insert está mal, como ha dicho flow89 debes poner las comillas a los valores que insertas
¿Pero por qué?; no es un absoluto. Solo tienen que llevar comillas si el valor se trata de un string.

Cita:
Iniciado por MadKat Ver Mensaje
Por que tienes las comillas simples solo en '$seriales' ?
¿Quizá porque es el único string?. Los demás pueden ser valores numéricos, para campos numéricos.


Cita:
Iniciado por isidro_01 Ver Mensaje
no se ejecuta el query de la linea 36 del siguiente codigo.....
Cita:
Iniciado por isidro_01 Ver Mensaje
el problema es que el insert no se realiza, pero no da error de sintaxis.....
Primero, por favor, utiliza las etiquetas para encerrar y colorear código. En verdad ayudan mucho a la lectura de código (cosa que no hago), ahí se podría ver cuál es la "línea 36" ... que no esperes uno cuente línea por línea.

Luego, el "error de sintaxis" podría ser de tu query, no de PHP. Es probable no te muestre error porque estén desactivados, ¿haz visto el log de Apache acaso?. En un ambiente de desarrollo deberías mostrar todo tipo de errores. Revisa los valores de las directivas error_reporting y display_errors en el php.ini; puedes mostrar los errores solo para un script con la función error_reporting().
www.php.net/error_reporting

Por otro lado, estás utilizando una clase para manejar tu conexión, ¿no tiene esa clase un método para detectar errores?; debería ...

Por último, algo tan simple, ¿intentaste imprimir en pantalla la query que estás intentando ejecutar?, ¿es correcta?, si la ejecutas en otro ambiente --desde su cliente nativo--, ¿se ejecuta correctamente?. Es posible no esté asignando valores para las variables causando un error de sintaxis.
__________________
I ♥ The Music!
  #8 (permalink)  
Antiguo 19/05/2010, 09:19
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: me tiene loco.... ayuda porfavor....

Cita:
Iniciado por maturano Ver Mensaje
¿Pero por qué?; no es un absoluto. Solo tienen que llevar comillas si el valor se trata de un string.
Porque aparte de eso no he visto ninguna otra cosa que pudiese ocasionar un error en el servidor MySQL a nivel de sintaxis, por eso le recomendé que usara mysql_error para obtener el error que pueda devolver mysql.

Y al igual que con el ;, no pasa nada si los valores numéricos llevan comillas.

Un saludo
  #9 (permalink)  
Antiguo 19/05/2010, 11:36
 
Fecha de Ingreso: octubre-2009
Mensajes: 23
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: me tiene loco.... ayuda porfavor....

Cita:
Iniciado por Heli0s Ver Mensaje
La consulta insert está mal, como ha dicho flow89 debes poner las comillas a los valores que insertas, y es normal que no te de ningún error, las consultas mysql aunque estén mal no lanzan ningún error a simple vista al menos que uses la función mysql_error para recojer el error que devuelve mysql.

Un saludo
las comillas se utilizan solo en los tipo texto.... en los numericos no es necesario..!!

gracias por tu interes
  #10 (permalink)  
Antiguo 19/05/2010, 11:38
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: me tiene loco.... ayuda porfavor....

Cita:
Iniciado por isidro_01 Ver Mensaje
las comillas se utilizan solo en los tipo texto.... en los numericos no es necesario..!!

gracias por tu interes
No he dicho que sea necesario, he dicho que no pasa nada si se ponen en numéricos también.

Y te vuelvo a aconsejar que uses mysql_error para saber si el servidor mysql te lanza algún error.

Un saludo
  #11 (permalink)  
Antiguo 19/05/2010, 11:41
 
Fecha de Ingreso: octubre-2009
Mensajes: 23
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: me tiene loco.... ayuda porfavor....

Cita:
Iniciado por maturano Ver Mensaje
No hay ningún problema, es una query, sentencias para un gestor de base de datos. En PHP pueden excluirse pues en un ordinariamente se ejecuta solo una, pero no hacen daño.

¿Pero por qué?; no es un absoluto. Solo tienen que llevar comillas si el valor se trata de un string.


¿Quizá porque es el único string?. Los demás pueden ser valores numéricos, para campos numéricos.





Primero, por favor, utiliza las etiquetas para encerrar y colorear código. En verdad ayudan mucho a la lectura de código (cosa que no hago), ahí se podría ver cuál es la "línea 36" ... que no esperes uno cuente línea por línea.

Luego, el "error de sintaxis" podría ser de tu query, no de PHP. Es probable no te muestre error porque estén desactivados, ¿haz visto el log de Apache acaso?. En un ambiente de desarrollo deberías mostrar todo tipo de errores. Revisa los valores de las directivas error_reporting y display_errors en el php.ini; puedes mostrar los errores solo para un script con la función error_reporting().
[url]www.php.net/error_reporting[/url]

Por otro lado, estás utilizando una clase para manejar tu conexión, ¿no tiene esa clase un método para detectar errores?; debería ...

Por último, algo tan simple, ¿intentaste imprimir en pantalla la query que estás intentando ejecutar?, ¿es correcta?, si la ejecutas en otro ambiente --desde su cliente nativo--, ¿se ejecuta correctamente?. Es posible no esté asignando valores para las variables causando un error de sintaxis.

gracias por tu respuesta....

el error lo estaba presentando la conexion tan solo tenia q cerrarla y ejecutar una nueva....
  #12 (permalink)  
Antiguo 19/05/2010, 13:25
Avatar de maturano  
Fecha de Ingreso: enero-2010
Ubicación: /home/
Mensajes: 537
Antigüedad: 14 años, 3 meses
Puntos: 36
Respuesta: me tiene loco.... ayuda porfavor....

Cita:
Iniciado por Heli0s Ver Mensaje
No he dicho que sea necesario, he dicho que no pasa nada si se ponen en numéricos también.
Hace años que no uso MySQL, pero para un dato de un campo numérico, si lo colocas con comillas, debería darte un error de sintaxis.

Sí, si pasa algo: la query sería errónea.

Cita:
Iniciado por isidro_01 Ver Mensaje
el error lo estaba presentando la conexion tan solo tenia q cerrarla y ejecutar una nueva....
No debería ser necesario. Supondría la utilización de una clase precisamente sería para gestionar la conexión a la BD.

Bien que encontraste y solucionaste el problema, pero opino el error persiste, la solución no la consideraría "la indicada".

Solo como comentario.
__________________
I ♥ The Music!
  #13 (permalink)  
Antiguo 19/05/2010, 13:48
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: me tiene loco.... ayuda porfavor....

Yo siempre uso comillas por costumbre, siempre las uso, sea integer o string, y jamás he tenido un problema por eso.

Un saludo

Etiquetas: insert, pesimotitulo, query
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 06:14.