Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: royerphpmysql en 16 Noviembre 2010, 21:44 pm



Título: Ayuda con mysql_fetch_array
Publicado por: royerphpmysql en 16 Noviembre 2010, 21:44 pm
estimados todos.
el presente es para saludarles y compartirles un error que no he podido sacar.

me sucedio hace 3 dias y se arreglo poniendo el query en minusculas ejemplo.

lo tenia asi.

Código
  1. SELECT * from CONSULTAS;
  2.  
  3. se arreglo poniendole.
  4.  
  5. SELECT * from consultas;
  6.  
  7.  

mi error continua y es este.

Código
  1. Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/sanfranc/public_html/foro/listahijos.php on line 26
  2.  
  3. --------------------------------------------------------------------------------
  4.  
  5.  


les anexo el fragmento del codigo.

Código
  1. <html>
  2. <head>
  3.       <title>Foro </title>
  4. </head>
  5. <body>
  6. <body bgcolor="#70A040">
  7. <br>
  8. <table align='center' border='0' bordercolor="#FFffff" >
  9. <tr bgcolor='#666666'>
  10. <td>
  11. <p align="center"><a href='index.php'><font size='4' color='white'>Volver Foro</font> </a></p>
  12. </td>
  13. <?$pp=$var;?>
  14. <td>
  15. <? print ("<p align='center'><a href='altamensaje.php?var1=$pp'><font size='4' color='white'>Responder Mensaje</font> </a></p>");?>
  16. </td>
  17. <td>
  18. </td>
  19. </tr>
  20. <?php
  21. if ($abierto = mysql_connect ("localhost","usuario","password")){
  22. $leer = "SELECT id,autor,fecha,email,mensaje FROM temas WHERE padre=$var";
  23. $datos = mysql_db_query ("basedatos",$leer);
  24. print("<table align='center' width='50%' border='0'>");
  25. while ($fila = mysql_fetch_array ($datos)) {
  26. print ("<tr><td ><font size='4' color='white'>Autor :</font></td><td > ".$fila[1]."</td></tr>
  27.      <tr><td ><font size='4' color='white'>Fecha : </font></td><td>".$fila[2]."</td></tr>
  28.      <tr><td ><font size='4' color='white'>E-mail : </font></td><td>".$fila[3]."</td></tr>
  29.      <tr><td ><font size='4' color='red'>Mensaje : </font></td><td>".$fila[4]."</td></tr><tr ><td colspan='2'><hr></td></tr>");
  30. }
  31. print ("</table>");
  32. } else {
  33. print ("No se puede conectar. Intente nuevamente");
  34. }
  35. ?>
  36. <hr>
  37. </body>
  38. </html>
  39.  

gracias espero puedan darme una idea. de que tenga que cambiar. puesto a que esto en mi servidor local funciona perfectamente ya cuando lo subo al dominio en internet es cuando paniquea con este error.

saludos todos y tengan un excelente dia.

Rogelio


Título: Re: Ayuda con mysql_fetch_array
Publicado por: Shell Root en 16 Noviembre 2010, 22:51 pm
Cómo es posible que se arregle si la pones en Mayús?

Y para el código, verifica el siguiente,
Código
  1. <?php
  2.   $handler = mysql_connect ("localhost","usuario","password") or die("Error: ".mysql_error());
  3.   mysql_select_db("basedatos", $handler);
  4.   if ($handler){
  5.      $sSQL = "SELECT id, autor, fecha, email, mensaje FROM temas WHERE padre='$var'";
  6.      $sQuery = mysql_query($sSQL, $handler) or die("Error: ".mysql_error());
  7.  
  8.      print("<table align='center' width='50%' border='0'>");
  9.  
  10.      while ($sRows = mysql_fetch_array ($sQuery)) {
  11.         print ("<tr><td ><font size='4' color='white'>Autor :</font></td><td > ".$sRows[1]."</td></tr>
  12.            <tr><td ><font size='4' color='white'>Fecha : </font></td><td>".$sRows[2]."</td></tr>
  13.            <tr><td ><font size='4' color='white'>E-mail : </font></td><td>".$sRows[3]."</td></tr>
  14.            <tr><td ><font size='4' color='red'>Mensaje : </font></td><td>".$sRows[4]."</td></tr><tr ><td colspan='2'><hr></td></tr>");
  15.      }
  16.  
  17.      print ("</table>");
  18.   } else {
  19.      print ("No se puede conectar. Intente nuevamente");
  20.   }
  21. ?>


Título: Re: Ayuda con mysql_fetch_array
Publicado por: royerphpmysql en 16 Noviembre 2010, 22:58 pm
Hola Shell Root fijate que inlcui el fragmento de codigo que amablemente me compartiste y no muesta error pero tampoco muestra resultados..

de lo de mayusculas y minusculas me marcaba ese mismo error

y el nombre de la tabla esta escrito en mayusculas, se lo cambie a minusculas y lo dejo de marcar..

espero tus comentarios.

muchso saludos


Título: Re: Ayuda con mysql_fetch_array
Publicado por: Shell Root en 16 Noviembre 2010, 23:20 pm
Intenta printear la salida de la Query, para verificar dentro del moto de base de datos, así,
Código
  1. <?php
  2.   $handler = mysql_connect ("localhost","usuario","password") or die("Error: ".mysql_error());
  3.   mysql_select_db("basedatos", $handler);
  4.   if ($handler){
  5.      $sSQL = "SELECT id, autor, fecha, email, mensaje FROM temas WHERE padre='$var'";
  6.  
  7.      $sQuery = mysql_query($sSQL, $handler) or die("Error: ".mysql_error());
  8.      ########
  9.      print ($sQuery); #Aqui
  10.      ########
  11.      print("<table align='center' width='50%' border='0'>");
  12.  
  13.      while ($sRows = mysql_fetch_array ($sQuery)) {
  14.         print ("<tr><td ><font size='4' color='white'>Autor :</font></td><td > ".$sRows[1]."</td></tr>
  15.            <tr><td ><font size='4' color='white'>Fecha : </font></td><td>".$sRows[2]."</td></tr>
  16.            <tr><td ><font size='4' color='white'>E-mail : </font></td><td>".$sRows[3]."</td></tr>
  17.            <tr><td ><font size='4' color='red'>Mensaje : </font></td><td>".$sRows[4]."</td></tr><tr ><td colspan='2'><hr></td></tr>");
  18.      }
  19.  
  20.      print ("</table>");
  21.   } else {
  22.      print ("No se puede conectar. Intente nuevamente");
  23.   }
  24. ?>


Título: Re: Ayuda con mysql_fetch_array
Publicado por: royerphpmysql en 16 Noviembre 2010, 23:24 pm
excelente maestro ya me dio otro resultado

Código
  1. Resource id #2
  2.  

que significara


Título: Re: Ayuda con mysql_fetch_array
Publicado por: royerphpmysql en 16 Noviembre 2010, 23:48 pm
segun lo que se es que es el identificador de recursos de la consulta y efectivamente deben de aparecer 2 recursos. la pregunta y la respuesta..

pregunta. tengo que manejar un mysql close?  bueno sigo con la duda original como arreglar ese mensaje posteado anteriormente Resource id #2

aqui lo raro es que en mi server local funciona perfectamente!!


Título: Re: Ayuda con mysql_fetch_array
Publicado por: Shell Root en 17 Noviembre 2010, 02:18 am
Perdón men, mala mia. Es la siguiente, cambia la linea que adicione por la siguiente,
Código
  1.      ########
  2.      print ($sSQL); #Aqui
  3.      ########

Cuando muestre el resultado, ejecutadlo en el motor de base de datos a ver si te trae algo la Query.


Título: Re: Ayuda con mysql_fetch_array
Publicado por: royerphpmysql en 17 Noviembre 2010, 02:27 am
que onda hermano mira el resultado es este.

Código
  1. SELECT id, autor, fecha, email, mensaje FROM temas WHERE padre=''
  2.  

al realizar la consulta tengo que realizar esto.
Código
  1.  
  2. SELECT id, autor, fecha, email, mensaje
  3. FROM temas
  4. WHERE padre =12
  5. LIMIT 0 , 30
  6.  

tengo que quitarle las comillas y ponerle un valor. para que me de una consulta. no se si me explique. porque si estan las comillas no me muestra nada entonces la variable esa que va alli tiene que traer un valor de la pagina qeu vengo..

y me pone esto.
Código
  1.  
  2.    12 Rogelio 2010-10-18 rogelio@hotmail.com cmo se peuden casar por la iglesia cuales son los ...
  3.      23 Padre Rosales 2010-11-05 . puedes venir a pedir informes a ventanilla hijo
  4.  

es el resultado cuando le quito las comillas. y le pongo un valor de lo contrario no me da nada.


Título: Re: Ayuda con mysql_fetch_array
Publicado por: cassiani en 17 Noviembre 2010, 02:45 am
que almacenas en el campo padre? si es un campo de tipo numérico no le coloques comillas.

te pregunto.. 12 no es el ID del registro:
Código:
 12 Rogelio 2010-10-18 rogelio@hotmail.com cmo se peuden casar por la iglesia cuales son los ... 
??

mejor muestra la estructura de la tabla y se te ayuda a armar correctamente la consulta.

saludos!!


Título: Re: Ayuda con mysql_fetch_array
Publicado por: royerphpmysql en 17 Noviembre 2010, 03:09 am
aqui anexo la estructura.

Código
  1. CREATE TABLE `temas` (
  2.  `ID` tinyint(4) NOT NULL AUTO_INCREMENT,
  3.  `Autor` VARCHAR(30) NOT NULL,
  4.  `Mensaje` text,
  5.  `Padre` tinyint(4) DEFAULT NULL,
  6.  `Fecha` DATE DEFAULT NULL,
  7.  PRIMARY KEY  (`ID`)
  8. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
  9.  
  10.  

el 12 viene representando el ID. de un mensaje que previamente selecciono , segun el mensaje que selecciono es el ID que debe de mostrar.

ejemplo. si selecciono el mensaje 16 en la pantalla donde tengo el problema me muestra esta liga.
Código
  1. /foro/listahijos.php?var=16
  2.  
espero explicarme.

saludos.


Título: Re: Ayuda con mysql_fetch_array
Publicado por: Shell Root en 17 Noviembre 2010, 03:45 am
Bueno, como vez cuando se printeo la query, no realizaba ninguna consulta ya que la variable $var no contiene ningun valor, podrías decirme esa variable que valor tiene, supongo que es la variable que es pasada como parámetro por GET, verdad? En caso de ser así, mostradnos como seteas esa variable.


Título: Re: Ayuda con mysql_fetch_array
Publicado por: cassiani en 17 Noviembre 2010, 04:04 am
en el código inicial no se ve en ningún lado donde asigna el valor a la variable $var.

Antes de usar esa variable, debes asignarle el valor pasado por parámetro,  tomándolo del array correspondiente al método que uses para enviar los datos, como lo menciona Shell Root, por ejemplo:

Código:
$var = $_GET['var']; 

hazlo antes de que abras la etiqueta HTML.


Título: Re: Ayuda con mysql_fetch_array
Publicado por: royerphpmysql en 17 Noviembre 2010, 04:36 am
señores excelentisima ayuda..ya quedo resuelto
muchas gracias por la colaboracion de todos.

reciban muchos saludos y un abrazo cordial

Rogelio


Título: Re: Ayuda con mysql_fetch_array
Publicado por: Shell Root en 17 Noviembre 2010, 04:41 am
Excelente que ya resolviste tú problema, pero aún no me cabe en la cabeza del porque se soluciono el problema cuando le cambiaste de Mayús/Minús la tabla, me quedo la curiosidad.


Título: Re: Ayuda con mysql_fetch_array
Publicado por: royerphpmysql en 17 Noviembre 2010, 04:53 am
precisamente fue en esta consulta de la pagina principal

tenia

Código
  1. if ($abierto = mysql_connect ("localhost","usuario","password")){
  2.  
  3. $leer = "SELECT id,tema,autor,hijos,fecha FROM TEMAS  WHERE tema<>' 'ORDER BY fecha desc";
  4.  
  5. $datos = mysql_db_query ("database",$leer);
  6.  
y me marcaba ese error y en un foro vi que se tiene que respetar como esta escrito en la estructura con minusculas y no poner mayusculas, me aparecia ese mismo error  y le cambie por

Código
  1.  
  2. if ($abierto = mysql_connect ("localhost","usuario","password")){
  3.  
  4. $leer = "SELECT id,tema,autor,hijos,fecha FROM temas  WHERE tema<>' 'ORDER BY fecha desc";
  5.  
  6. $datos = mysql_db_query ("database",$leer);
  7.  

y funciono..se me hace raro