Foros del Web » Programando para Internet » PHP »

Problema de sintaxis

Estas en el tema de Problema de sintaxis en el foro de PHP en Foros del Web. Hola, se que tengo un problema de sintaxis en las siguientes lineas: Cita: $result = mysql_query("SELECT *FROM votos_usuarios WHERE ip = '".$realip."' and id = ...
  #1 (permalink)  
Antiguo 22/12/2009, 09:03
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 14 años, 5 meses
Puntos: 0
Problema de sintaxis

Hola, se que tengo un problema de sintaxis en las siguientes lineas:

Cita:
$result = mysql_query("SELECT *FROM votos_usuarios WHERE ip = '".$realip."' and id = $id",$link);
$row = mysql_fetch_row($result);
Y aca tambien me tira el error:

Cita:
if($row[0]==""){
$result = mysql_query("SELECT votos,media FROM $tabla WHERE id =$id",$link);
$row = mysql_fetch_row($result);
Que me tira el siguiente error:

Cita:
acciondisparos
Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given in C:\wamp\www\misitio\rank\rank.php on line 45

Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given in C:\wamp\www\misitio\rank\rank.php on line 50
Donde estaría el error? Gracias
  #2 (permalink)  
Antiguo 22/12/2009, 09:07
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: Problema de sintaxis

Probablemente en la consulta, ya que el error dice que mysql_fetch_row() espera un resource y le estas pasando un boolean, posiblemente FALSE, que es lo que devuelve mysql_query() cuando hay un error en la consulta.
  #3 (permalink)  
Antiguo 22/12/2009, 09:14
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problema de sintaxis

Gracias darkasecas, ahora bien, como tendría que solucionar el error de la consulta? O a que se debe? Tenes alguna url donde pueda ver el error? Gracias again
  #4 (permalink)  
Antiguo 22/12/2009, 09:18
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: Problema de sintaxis

Puedes usar mysql_error() para que te despliegue el error.
O puedes imprimir la consulta para copiarla y ejecutarla directo en tu bd para ver el error que mestre.
  #5 (permalink)  
Antiguo 22/12/2009, 09:31
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problema de sintaxis

Agregue el siguiente código de errores:

Cita:
$result = mysql_query("SELECT votos,media FROM $tabla WHERE id =$id",$link);
if (!$result) {
$message = 'Error en la consulta: ' . mysql_error() . "\n";
die($message); }
Y me sale justamente:
Cita:
Error en la consulta: 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 'WHERE id =23' at line 1
claro, me sale "id=23" pero en el otro id me sale "id=24" y así sucesivamente. Error que no depende del id (es un sistema de votacion donde cada noticia tiene un id).
Que podría ser?
  #6 (permalink)  
Antiguo 22/12/2009, 09:34
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: Problema de sintaxis

Prueba imprimiendo la consulta para ver si se esta construyendo bien, y ejecutarla directo en tu bd.
  #7 (permalink)  
Antiguo 22/12/2009, 10:04
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problema de sintaxis

Disculpa, soy principiante en php. Que sería "imprimir" la consulta? Yo uso wamp.
  #8 (permalink)  
Antiguo 22/12/2009, 10:08
Avatar de Ing_FOFO  
Fecha de Ingreso: agosto-2008
Ubicación: Guatemala
Mensajes: 104
Antigüedad: 15 años, 8 meses
Puntos: 8
Respuesta: Problema de sintaxis

Correcto, la forma mas facil de encontrar el error es darle un echo a tu consulta y un die de inmendiato para ver como esta realizando la consulta.

Seria lago asi para que podas ver que consulta estas ejecutando

Código PHP:
echo "Select valores from ".$tabla." where id=".$id
Creo que el problema lo puedes tener en la variable
Código PHP:
$tabla 
, todo lo de mas aparenta estar bien
__________________
Si te ayude.... regalame un poquito de karma!!!

Los intelectuales resuelven los problemas; los genios ,los evitan.
Albert Einstein (1879-1955)
  #9 (permalink)  
Antiguo 22/12/2009, 10:08
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: Problema de sintaxis

Imprimirla en pantalla con echo

echo "select blahblah..";

Luego la copias y la ejecutas en phpmyadmin
  #10 (permalink)  
Antiguo 22/12/2009, 10:09
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problema de sintaxis

Dices que ponga un
Cita:
echo $tabla;
después del error?
  #11 (permalink)  
Antiguo 22/12/2009, 10:10
Avatar de Ing_FOFO  
Fecha de Ingreso: agosto-2008
Ubicación: Guatemala
Mensajes: 104
Antigüedad: 15 años, 8 meses
Puntos: 8
Respuesta: Problema de sintaxis

Cita:
Iniciado por principiantedelweb Ver Mensaje
Dices que ponga un

después del error?
antes, solo para ver tu consulta, checa mi post
__________________
Si te ayude.... regalame un poquito de karma!!!

Los intelectuales resuelven los problemas; los genios ,los evitan.
Albert Einstein (1879-1955)
  #12 (permalink)  
Antiguo 22/12/2009, 10:15
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problema de sintaxis

Le puse que imprima la variable. Me sale el valor de la variable sinproblemas (le saque el "die" para que siguiera e imprimiera el valor de $tabla)
Cita:
Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given in C:\wamp\www\misitio\rank\rank.php on line 52
acciondisparos
La variable es acciondisparos. Imprime bien el valor.
¿Que podra ser?
  #13 (permalink)  
Antiguo 22/12/2009, 10:27
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: Problema de sintaxis

Cita:
Iniciado por darkasecas Ver Mensaje
Imprimirla en pantalla con echo

echo "select blahblah..";

Luego la copias y la ejecutas en phpmyadmin
Cita:
Iniciado por Ing_FOFO Ver Mensaje
Correcto, la forma mas facil de encontrar el error es darle un echo a tu consulta y un die de inmendiato para ver como esta realizando la consulta.

Seria lago asi para que podas ver que consulta estas ejecutando

Código PHP:
echo "Select valores from ".$tabla." where id=".$id
Creo que el problema lo puedes tener en la variable
Código PHP:
$tabla 
, todo lo de mas aparenta estar bien
Imprimela _antes_ del mysql_query()
  #14 (permalink)  
Antiguo 22/12/2009, 10:33
Avatar de Ing_FOFO  
Fecha de Ingreso: agosto-2008
Ubicación: Guatemala
Mensajes: 104
Antigüedad: 15 años, 8 meses
Puntos: 8
Sonrisa Respuesta: Problema de sintaxis

1. Verifica la conexion de tu BD.

2. Imprime el puro select tal y como te lo puse y me mandas esa cadena o bien la ejecutas en tu bd

Código PHP:

echo "SELECT votos , media FROM ".$tabla." WHERE id =".$id;
die; 
__________________
Si te ayude.... regalame un poquito de karma!!!

Los intelectuales resuelven los problemas; los genios ,los evitan.
Albert Einstein (1879-1955)
  #15 (permalink)  
Antiguo 22/12/2009, 13:44
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problema de sintaxis

Me sale:

Cita:
SELECT votos, media FROM acciondisparos WHERE id =
  #16 (permalink)  
Antiguo 22/12/2009, 13:54
Avatar de Ing_FOFO  
Fecha de Ingreso: agosto-2008
Ubicación: Guatemala
Mensajes: 104
Antigüedad: 15 años, 8 meses
Puntos: 8
Respuesta: Problema de sintaxis

Entonces mi querido amigo, has encontrado el error, tu variable $id no esta obteniendo el valor.

Ve a la seccion donde le asignas el valor a esa variable y alli estara el error.

Saludos
__________________
Si te ayude.... regalame un poquito de karma!!!

Los intelectuales resuelven los problemas; los genios ,los evitan.
Albert Einstein (1879-1955)
  #17 (permalink)  
Antiguo 22/12/2009, 13:57
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problema de sintaxis

ok, Ing_FOFO, estuve 5 días con esto. Ahora dime, si yo cambio el valor de $tabla por el nombre de una tabla (una constante) por ejemplo: acciondisparos, me toma perfectamente el id.
Este es el código del id de donde viene:

Cita:
if($row){
echo '<div class="rank">';
echo '<ul>';
echo '<li class="current-rating" style="width:'.($row[2] * 25).'px;">Currently '.$row[2].'/5 Stars.</li>';
echo '<li><a href="javascript:sendDatos(\'rank/rank.php?id='.$row[0].'&v=1\',\'page'.$row[0].'\',true)" title="Ni lo mires" class="star-1">1</a></li>';
echo '<li><a href="javascript:sendDatos(\'rank/rank.php?id='.$row[0].'&v=2\',\'page'.$row[0].'\',true)" title="Más o menos" class="star-2">2</a></li>';
echo '<li><a href="javascript:sendDatos(\'rank/rank.php?id='.$row[0].'&v=3\',\'page'.$row[0].'\',true)" title="Probalo" class="star-3">3</a></li>';
echo '<li><a href="javascript:sendDatos(\'rank/rank.php?id='.$row[0].'&v=4\',\'page'.$row[0].'\',true)" title="Muy Bueno" class="star-4">4</a></li>';
echo '<li><a href="javascript:sendDatos(\'rank/rank.php?id='.$row[0].'&v=5\',\'page'.$row[0].'\',true)" title="Imperdible!" class="star-5">5</a></li>';
echo '</ul>';
echo '<strong>'.$row[2].'</strong> de 5 estrellas <strong>('.$row[1].' votos)</strong>';
echo '<span id="page'.$row[0].'" style="color:#ff0000;"></span>';
echo '</div>';
}
  #18 (permalink)  
Antiguo 22/12/2009, 14:06
Avatar de Ing_FOFO  
Fecha de Ingreso: agosto-2008
Ubicación: Guatemala
Mensajes: 104
Antigüedad: 15 años, 8 meses
Puntos: 8
Respuesta: Problema de sintaxis

Que tal principiantedelweb,

No logro ver en tu codigo la parte donde le asignas el valor del id, es decir

Donde esta este codigo??
Código PHP:
$idvalor 
Ese es el que necesito saber
__________________
Si te ayude.... regalame un poquito de karma!!!

Los intelectuales resuelven los problemas; los genios ,los evitan.
Albert Einstein (1879-1955)
  #19 (permalink)  
Antiguo 22/12/2009, 14:14
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problema de sintaxis

Ya va ahora empieza el codigo

Cita:
$id=$row["id"];
$result = mysql_query("SELECT id,votos,media FROM $tabla where id=$id",$link);
$row = mysql_fetch_row($result);
if($row){
echo '<div class="rank">';
echo '<ul>';
echo '<li class="current-rating" style="width:'.($row[2] * 25).'px;">Currently '.$row[2].'/5 Stars.</li>';
echo '<li><a href="javascript:sendDatos(\'rank/rank.php?id=='.$row[0].'&v=1\',\'page'.$row[0].'\',true)" title="Ni lo mires" class="star-1">1</a></li>';
  #20 (permalink)  
Antiguo 22/12/2009, 14:19
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problema de sintaxis

Para hacerlo sencillo: en el $result anterior, toma los registros (filas) de la base de datos de la $tabla (son 35 tablas, por eso asigno una variable). Pero imprime todas las filas aqui (con un error, que enseguida imprimo)

Cita:
Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given in C:\wamp\www\misitio\rank\rank.php on line 49

Última edición por principiantedelweb; 22/12/2009 a las 14:24
  #21 (permalink)  
Antiguo 22/12/2009, 14:38
Avatar de Ing_FOFO  
Fecha de Ingreso: agosto-2008
Ubicación: Guatemala
Mensajes: 104
Antigüedad: 15 años, 8 meses
Puntos: 8
Sonrisa Respuesta: Problema de sintaxis

Bueno el manejo de tus variables definitivamente es el error, puedo ver que utilizas un arreglo

Código PHP:
$id=$row["id"]; // arreglo que se llama row que tiene un campo que se llama ID 
Despues
Código PHP:
$row mysql_fetch_row($result); // llamas row al resultado del query 
Quiero pensar que son dos variables distintas porque obviamente la segunda borra la primera pero algo me dice que las estas usando como la misma variable cosa que no tiene sentido dado que al principio

Código PHP:
$row["id"]  // no tiene ningun valor sino hasta despues de ejecutar el query 
Talvez estes haciendo un ciclo pero tendrias que inicializar el valor del $id.
__________________
Si te ayude.... regalame un poquito de karma!!!

Los intelectuales resuelven los problemas; los genios ,los evitan.
Albert Einstein (1879-1955)
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 16:40.