Foros del Web » Programando para Internet » PHP »

You have an error in your SQL syntax...

Estas en el tema de You have an error in your SQL syntax... en el foro de PHP en Foros del Web. Hola Estoy realizando mi primer página web por php y me topé con un error que llevo días sin poder solucionarlo, ojalá me puedan ayudar ...
  #1 (permalink)  
Antiguo 26/10/2012, 22:37
 
Fecha de Ingreso: octubre-2012
Mensajes: 6
Antigüedad: 11 años, 5 meses
Puntos: 0
You have an error in your SQL syntax...

Hola
Estoy realizando mi primer página web por php y me topé con un error que llevo días sin poder solucionarlo, ojalá me puedan ayudar compañeros.
El error es el siguiente

Cita:
select * from records where id!=-1 or id= or id=14 or id=16 or id=8You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'or id=14 or id=16 or id=8' at line 1
Y mi código es:

Cita:
<?php require_once('/Connections/conex.php'); ?>
<?php
session_start();
$_SESSION['conex'][$_GET['recordID']]=$_GET['recordID'];

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title></title>

<link href="principall2.css" rel="stylesheet" type="text/css" />
<!--[if IE]>
<style type="text/css">
/* place css fixes for all versions of IE in this conditional comment */
.thrColElsHdr #sidebar1, .thrColElsHdr #sidebar2 { padding-top: 30px; }
.thrColElsHdr #mainContent { zoom: 1; padding-top: 15px; }
/* the above proprietary zoom property gives IE the hasLayout it needs to avoid several bugs */
</style>
<![endif]-->
<style type="text/css">
<!--
.style1 {color: #FFFFFF}
-->
</style>
</head>


<table width="100%" border="1">
<tr>
<td width="56%"><div align="center">Records</div></td>
<td width="12%"><div align="center">Price</div></td>
<td width="10%"><div align="center">Qt</div></td>
<td width="22%"><div align="center"></div></td>
</tr>

<?php
$cad="";
foreach($_SESSION['conex'] as $k)
{
$cad.=' or id='.$k;
}
$sql=' select * from records where id!=-1'.$cad;
echo $sql;
$re= mysql_query($sql) or die (mysql_error());
while ($f=mysql_fetch_array($re))

?><tr>
<td><?php echo $f("strrecord");?></td>
<td><?php echo $f("dblprecio");?></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>

<p><a href="index.php">Continue shopping</a></p>
<!-- end #mainContent --></div>
</body>
</html>

¿Qué debo hacer para solucionarlo?
Gracias de antemano
  #2 (permalink)  
Antiguo 26/10/2012, 22:48
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: You have an error in your SQL syntax...

Si lees el mensaje de error no es de código php, es de sql, y te dice que la consulta tiene errores de sintaxis.

Si lees con atención la consulta que imprimes justo antes del or id=14 hay un id= sin valor alguno.

Es sólo eso, con lógica de programación debes evitar valores nulos o corregir como te convenga.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 26/10/2012, 23:17
 
Fecha de Ingreso: octubre-2012
Mensajes: 6
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: You have an error in your SQL syntax...

hola pateketrueke
muchas gracias por responder. En realidad mi lógica de programación es bastante limitada, jeje, mis conocimientos comenzaron hace unos cuantos días al seguir un video tutorial para hacer una web con carrito de compra que es lo que ocupo para mi tienda de discos. Todo iba bien hasta que me topé con este error. Si no es mucha molestia ¿podrías extenderte un poco más en la solución? a ver si logro entenderlo del todo.

Mil gracias y saludos
  #4 (permalink)  
Antiguo 26/10/2012, 23:22
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: You have an error in your SQL syntax...

1. Analiza cómo estás construyendo la consulta
2. Observa el resultado de la consulta y verifica si es correcta
3. Reflexiona acerca de la consulta, si no es correcta, ¿que está mal?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 27/10/2012, 00:25
 
Fecha de Ingreso: octubre-2012
Mensajes: 6
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: You have an error in your SQL syntax...

Bueno eso lo he hecho pero sigo sin entender/encontrar que está mal.
  #6 (permalink)  
Antiguo 27/10/2012, 00:29
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: You have an error in your SQL syntax...

¿De verdad no lo entiendes?

Cita:
select * from records where id!=-1 or id= or id=14 or id=16 or id=8You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'or id=14 or id=16 or id=8' at line 1
Observa la parte marcada con rojo, ¿notas que no existe valor alguno ahí?

Bueno pues ahí está la clave, en tu bucle estás creando dicha cadena concatenando pero no tienes en cuenta los casos en que el valor no exista o no contenga nada.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 27/10/2012, 00:56
 
Fecha de Ingreso: octubre-2012
Mensajes: 6
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: You have an error in your SQL syntax...

¿Se utiliza empty? No te rías, hace solo cuatro días que estoy pegado al php jeje, como verás estoy más que verde, pero agradecido de aprender cosas nuevas.
  #8 (permalink)  
Antiguo 27/10/2012, 01:07
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: You have an error in your SQL syntax...

La mejor forma de aprender es practicar, si tienes dudas con alguna función consulta el manual.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 27/10/2012, 01:12
 
Fecha de Ingreso: octubre-2012
Mensajes: 6
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: You have an error in your SQL syntax...

¡Muchas gracias!

Etiquetas: html, mysql, sql
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:17.