Foros del Web » Programando para Internet » PHP »

fallo en la variable ...

Estas en el tema de fallo en la variable ... en el foro de PHP en Foros del Web. bueno, ahora mismo te encuentras resolviendo el problema de cómo encontrar problemas de conexión a tu base de datos. si te diriges a google y ...

  #31 (permalink)  
Antiguo 01/08/2013, 10:33
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 12 años, 2 meses
Puntos: 84
Respuesta: fallo en la variable ...

bueno, ahora mismo te encuentras resolviendo el problema de cómo encontrar problemas de conexión a tu base de datos.

si te diriges a google y buscas "php mysql_query" encontrarás el primer enlace hacia el manual de php sobre esa función no?

al entrar encuentras lo siguiente sobre valores devueltos por mysql_query

Cita:
Valores devueltos

Para SELECT, SHOW, DESCRIBE, EXPLAIN y otras sentencias que retornan un conjunto de resultados, mysql_query() retorna un resource en caso de éxito, o FALSE en caso de error.

Para otros tipos de sentencias SQL, tales como INSERT, UPDATE, DELETE, DROP, etc, mysql_query() retorna TRUE en caso de éxito o FALSE en caso de error.

El conjunto de resultados devuelto debería ser pasado a mysql_fetch_array(), y otras funciones para manejar las tablas del resultado, para acceder a los datos retornados.

Use mysql_num_rows() para averiguar cuántas filas fueron retornadas por la sentencia SELECT, o mysql_affected_rows() para averiguar cuántas filas fueron afectadas por las sentencias DELETE, INSERT, REPLACE, o UPDATE.

mysql_query() también fallará y retornará FALSE si el usuario no está autorizado para acceder a la(s) tabla(s) referenciada(s) por la consulta.
fíjate en lo que te remarqué en negrita porque son los casos en que la consulta devolverá false si hay un error.

entonces si tu tienes tu código tal y como está ¿qué estructura de control de flujo (if, while, for, etc.) tendrías que utilizar para iniciar la conexión con mysql_query y sino, en caso de que haya un error devuelva un mysql_errno o mysql_error?

muy sencillo si piensas un poco y no te desesperas, mantén la calma, se suave contigo mismo.
  #32 (permalink)  
Antiguo 01/08/2013, 10:34
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 1 mes
Puntos: 2658
Respuesta: fallo en la variable ...





¿Para qué copias lo que yo ya te postee?
¿Porque sí, o para preguntar algo?

Nota: habrás notado que los comentarios ya estaban en el script, ¿no? Yo no los he agregado...

Ahora bien, ¿hiciste algo con eso? ¿Le pusist algo propio?

Nota 2: En el textbox para escribir los posts hay un combo que dice "highlight", por favor, usa el que dice PHP para resaltar los códigos que pones. Facilita la lectura. Para eso se puso.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #33 (permalink)  
Antiguo 01/08/2013, 10:46
 
Fecha de Ingreso: julio-2013
Mensajes: 15
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: fallo en la variable ...

bueno, no me leí todos los comentarios pero para ejecutar este comando

$sql= mysql_query("SELECT * FROM mensajes WHERE para = '$nickUsuarioL' ORDER by msgid DESC");

debes de conectar a la base de datos primero
  #34 (permalink)  
Antiguo 01/08/2013, 10:47
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 19 años, 7 meses
Puntos: 88
Respuesta: fallo en la variable ...

Código PHP:
Ver original
  1. $sql= mysql_query("SELECT * FROM mensajes WHERE para = '$nickUsuarioL' ORDER by msgid DESC") or die(mysql_error());
prueba con esto y comenta que error te da.

como observación, te sugiero que uses mysqli en vez de mysql este último esta obsoleto

saludos
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #35 (permalink)  
Antiguo 01/08/2013, 11:00
Avatar de j_silk_h  
Fecha de Ingreso: julio-2010
Mensajes: 54
Antigüedad: 14 años, 5 meses
Puntos: 6
De acuerdo Respuesta: fallo en la variable ...

Okey, viendo tu caso y en mi poca experiencia diria que el error esta en $nickUsuarioL

Tienes esto:
Código PHP:
$sqlmysql_query("SELECT * FROM mensajes WHERE para = '$nickUsuarioL' ORDER by msgid DESC"); //aki esta la var del sistema de JLMM

while ($row mysql_fetch_array($sql) ){<-----


Segun yo deberia ser asi:

Código PHP:

$sql
mysql_query("SELECT * FROM mensajes WHERE para = '".$nickUsuarioL."' ORDER by msgid DESC") or die(mysql_error()); //aki esta la DIFRECNCIA de paso le agregue el mysql_error()

while ($row mysql_fetch_array($sql) ){


como hay un error en el query practicamente lo ignora y por eso $row recibe un parametro NULL o vacio etc, asi evitas esto:

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\proyecto nuevo\mensajeria31\index.php.php on line 20
  #36 (permalink)  
Antiguo 01/08/2013, 11:08
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: fallo en la variable ...

El error es clarisimo $nickUsuarioL no es que este concatenada de una mal forma si no mas bien que no esta definida en ningun lugar del documento por eso la consulta no puede retornar mensajes donde dice para= " "

Código PHP:
Ver original
  1. if(empty($nickUsuarioL))
  2. {
  3. $nickUsuarioL = 'admin'; // o cualquier otro nombre de usuario , veras como te retorna datos
  4. }
  5.  
  6. $sql= mysql_query("SELECT * FROM mensajes WHERE para = ".$nickUsuarioL." ORDER by msgid DESC") or die(mysql_error());
  #37 (permalink)  
Antiguo 01/08/2013, 11:12
Avatar de j_silk_h  
Fecha de Ingreso: julio-2010
Mensajes: 54
Antigüedad: 14 años, 5 meses
Puntos: 6
Respuesta: fallo en la variable ...

Cita:
Iniciado por webankenovi Ver Mensaje
El error es clarisimo $nickUsuarioL no es que este concatenada de una mal forma si no mas bien que no esta definida en ningun lugar del documento por eso la consulta no puede retornar mensajes donde dice para= " "

Código PHP:
Ver original
  1. if(empty($nickUsuarioL))
  2. {
  3. $nickUsuarioL = 'admin'; // o cualquier otro nombre de usuario , veras como te retorna datos
  4. }
  5.  
  6. $sql= mysql_query("SELECT * FROM mensajes WHERE para = ".$nickUsuarioL." ORDER by msgid DESC") or die(mysql_error());
ciertamente! aunque falta la confirmacion del mensaje del mysql_error() a ver que dice, si es sentencia SQL o base de datos
  #38 (permalink)  
Antiguo 01/08/2013, 11:15
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: fallo en la variable ...

ya esta resulto por que se lo solucionaron en otro foro , pero santi2892009 aunque te pasen el script lo arregles y te vayas tan agusto como dices y has aprendido algo nuevo , en verdad no aprendiste nada es mi opinion , pensar eso es un error.

saludos

Etiquetas: fallo, mysql, select, sql, variable
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 08:08.