Foros del Web » Programando para Internet » PHP »

Problemas con mysql_fetch_array

Estas en el tema de Problemas con mysql_fetch_array en el foro de PHP en Foros del Web. Buenas, estoy realizando un scrip en el que necesito un elemento de un mysql_fetch_array para utilizar una consulta que usará ese mismo valor en otro ...
  #1 (permalink)  
Antiguo 11/08/2011, 11:05
 
Fecha de Ingreso: abril-2011
Ubicación: España, Mdrid
Mensajes: 89
Antigüedad: 13 años
Puntos: 1
Problemas con mysql_fetch_array

Buenas, estoy realizando un scrip en el que necesito un elemento de un mysql_fetch_array para utilizar una consulta que usará ese mismo valor en otro mysql_fetch_array aquí dejo el código que se que no me habréis entendido:

Código PHP:
                <div class="barra_titulo_div">
                <?php
                    
while ($FORO mysql_fetch_array($consultandoMYSQL_ASSOC)) {
                        echo (
'<table class="barra_titulo">
                        <tr>
                            <td><b>Titulo:</b></td>
                            <td>'
.$FORO["titulo_mensaje"].'</td>
                            <td><b>Fecha:</b></td>
                            <td>'
.$FORO["fecha_mensaje"].'</td>'); } 
                            
$autor $FORO["autor_menu"];
                        
?>
                        </tr>
                    </table>
                </div>
            </div>
        </div>
        <?php
        $consulta 
"SELECT * FROM usuarios WHERE usuario=".$autor;
        
$consultando mysql_query($consulta$conectar);
        while (
$FORO mysql_fetch_array($consultandoMYSQL_ASSOC)) {
        echo 
'<div class="usuario">
            <div class="avatar">
            <img src="" alt="" height="135px" width="150px"/>
            </div>
            <table class="tabla_usuario" cellpadding="3">
                <tr>
                    <td><b>Usuario:</b></td>
                    <td>'
.$FORO["autor_mensaje"].'</td>
                </tr>
                <tr>
                    <td><b>Nivel:</b></td>
                    <td>'
.$FORO["nivel"].'</td>
                </tr>
                <tr>
                    <td><b>Mensajes:</b></td>
                    <td>'
.$FORO["numero_mensajes"].'</td>
                </tr>
                <tr>
                    <td><b>Karma:</b></td>
                    <td>'
.$FORO["puntuacion"].'</td>
                </tr>
            </table>
        </div>'
;
    } 
?>
Esto no me muestra correctamente el scrip me sale este error:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /var/www/mensaje.php on line 87
Que obviamente es causado por una consulta errónea pero la consulta esta bien, por ello pienso que debe ser por algo del autor.
  #2 (permalink)  
Antiguo 11/08/2011, 11:11
 
Fecha de Ingreso: abril-2011
Ubicación: España, Mdrid
Mensajes: 89
Antigüedad: 13 años
Puntos: 1
Respuesta: Problemas con mysql_fetch_array

Código PHP:
Ver original
  1. $consulta = "SELECT * FROM usuarios WHERE usuario='".$autor."';";

Aquí creo que esta el problema pero sigue dando error :S
  #3 (permalink)  
Antiguo 11/08/2011, 11:12
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Problemas con mysql_fetch_array

Estas haciendo mal la consulta es un string y debe ir dentro de comillas:

Código PHP:
Ver original
  1. $consulta = "SELECT * FROM usuarios WHERE usuario='".$autor."'";
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #4 (permalink)  
Antiguo 11/08/2011, 11:37
 
Fecha de Ingreso: abril-2011
Ubicación: España, Mdrid
Mensajes: 89
Antigüedad: 13 años
Puntos: 1
Respuesta: Problemas con mysql_fetch_array

en el segundo while no me rederiza el html, sin el segundo while si funciona...
  #5 (permalink)  
Antiguo 11/08/2011, 11:41
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Problemas con mysql_fetch_array

Coloca esto antes del segundo while

Código PHP:
Ver original
  1. mysql_data_seek($consultando, 0);

o trata de no usar la misma variable $consultando
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #6 (permalink)  
Antiguo 11/08/2011, 11:48
 
Fecha de Ingreso: abril-2011
Ubicación: España, Mdrid
Mensajes: 89
Antigüedad: 13 años
Puntos: 1
Respuesta: Problemas con mysql_fetch_array

Cita:
Iniciado por andresdzphp Ver Mensaje
Coloca esto antes del segundo while

Código PHP:
Ver original
  1. mysql_data_seek($consultando, 0);

o trata de no usar la misma variable $consultando
Eso que es lo que hace? Gracias, ahora lo pruebo.
  #7 (permalink)  
Antiguo 11/08/2011, 11:51
 
Fecha de Ingreso: abril-2011
Ubicación: España, Mdrid
Mensajes: 89
Antigüedad: 13 años
Puntos: 1
Respuesta: Problemas con mysql_fetch_array

Este es el "nuevo" scrip:

Código PHP:
Ver original
  1. <div class="contenedor">
  2.             <div class="contenido">
  3.                 <div class="barra_titulo_div">
  4.                 <?php
  5.                     while ($FORO = mysql_fetch_array($consultando, MYSQL_ASSOC)) {
  6.                         echo '<table class="barra_titulo">
  7.                         <tr>
  8.                             <td><b>Titulo:</b></td>
  9.                             <td>'.$FORO["titulo_mensaje"].'</td>
  10.                             <td><b>Fecha:</b></td>
  11.                             <td>'.$FORO["fecha_mensaje"].'</td>';
  12.                             $autor = $FORO["autor_mensaje"];
  13.                             $consulta2="SELECT * FROM usuarios WHERE usuario='".$autor."'";
  14.                             $consultando2 = mysql_query($consulta2, $conectar);
  15.                             }
  16.                         ?>
  17.                         </tr>
  18.                     </table>
  19.                 </div>
  20.             </div>
  21.         </div>
  22.         <?php
  23.         while ($FORO2 = mysql_fetch_array($consultando2, MYSQL_ASSOC)) {
  24.         echo ('
  25.         <div class="usuario">
  26.             <div class="avatar">
  27.             <img src="" alt="" height="135px" width="150px"/>
  28.             </div>
  29.             <table class="tabla_usuario" cellpadding="3">
  30.                 <tr>
  31.                     <td><b>Usuario:</b></td>
  32.                     <td>'.$FORO2["autor_mensaje"].'</td>
  33.                 </tr>
  34.                 <tr>
  35.                     <td><b>Nivel:</b></td>
  36.                     <td>'.$FORO2["nivel"].'</td>
  37.                 </tr>
  38.                 <tr>
  39.                     <td><b>Mensajes:</b></td>
  40.                     <td>'.$FORO2["numero_mensajes"].'</td>
  41.                 </tr>
  42.                 <tr>
  43.                     <td><b>Karma:</b></td>
  44.                     <td>'.$FORO2["puntuacion"].'</td>'); }
  45.                   ?>
  46.                 </tr.
  47.             </table>
  48.         </div>

He cambiado eso de la variable pero el navegador no muestra el código del segundo while... Me parece raro.
  #8 (permalink)  
Antiguo 11/08/2011, 12:14
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Problemas con mysql_fetch_array

Coloca esto antes del segundo while

Código PHP:
Ver original
  1. mysql_data_seek($consultando2, 0);

Otra cosa es que tienes esto dentro del primer while y no debería ir en ese lugar:

Código PHP:
Ver original
  1. $consulta2 = "SELECT * FROM usuarios WHERE usuario='" . $autor . "'";
  2.                 $consultando2 = mysql_query($consulta2, $conectar);
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 11/08/2011 a las 12:21
  #9 (permalink)  
Antiguo 11/08/2011, 12:22
 
Fecha de Ingreso: abril-2011
Ubicación: España, Mdrid
Mensajes: 89
Antigüedad: 13 años
Puntos: 1
Respuesta: Problemas con mysql_fetch_array

Warning: mysql_data_seek(): Offset 0 is invalid for MySQL result index 5 (or the query data is unbuffered) in /var/www/mensaje.php on line 89

Esto es desesperante.
  #10 (permalink)  
Antiguo 11/08/2011, 12:24
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Problemas con mysql_fetch_array

Saca esto del primer while

Código PHP:
Ver original
  1. $consulta2 = "SELECT * FROM usuarios WHERE usuario='" . $autor . "'";
  2.                 $consultando2 = mysql_query($consulta2, $conectar);

Tal vez el problema venga de la primera consulta, cual es tu primera consulta?
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 11/08/2011 a las 12:34
  #11 (permalink)  
Antiguo 11/08/2011, 12:35
 
Fecha de Ingreso: abril-2011
Ubicación: España, Mdrid
Mensajes: 89
Antigüedad: 13 años
Puntos: 1
Respuesta: Problemas con mysql_fetch_array

nada no surte ningún efecto, de verdad no lo entiendo
  #12 (permalink)  
Antiguo 11/08/2011, 12:36
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Problemas con mysql_fetch_array

Cita:
Iniciado por GuillermoM Ver Mensaje
nada no surte ningún efecto, de verdad no lo entiendo
Muestra la primera consulta a ver porque no te muestra nada en el segundo while.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #13 (permalink)  
Antiguo 11/08/2011, 12:36
 
Fecha de Ingreso: abril-2011
Ubicación: España, Mdrid
Mensajes: 89
Antigüedad: 13 años
Puntos: 1
Respuesta: Problemas con mysql_fetch_array

Aquí el código fuente de todo el scrip completo:

Código PHP:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2.     <html xmlns="http://www.w3.org/1999/xhtml" >
  3.    
  4.     <head>
  5.         <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
  6.         <!-- Titulo -->
  7.         <title>werwerwe</title>
  8.        
  9.         <!-- Estilos -->
  10.         <link href="../estilos/estilo_mensaje.css" type="text/css" rel="stylesheet"></link>
  11.         <!-- Scrips -->
  12.         <script type="text/javascript" src="scrip.js"></script>
  13.     </head>
  14.    
  15.     <body>
  16.     <?php
  17.     session_start();
  18.         require("configuracion/conectar.php");
  19.        
  20.         $id_mensaje = $_GET['id'];
  21.         $tema = $_GET['tema'];
  22.        
  23.         $consulta="SELECT * FROM mensajes WHERE id_mensaje='".$id_mensaje."'";
  24.         $consultando = mysql_query($consulta, $conectar);
  25.  
  26.  
  27.     ?>
  28.         <!-- Encabezado con menu -->
  29.             <div class="menu_derecha">
  30.             <?php
  31.            
  32.                 if(isset($_SESSION['nombre_usuario'])) {           
  33.                     echo '<a href="editor.php">Responder</a>';
  34.                 }
  35.                 else {
  36.                     echo '<a href="http://www.forosdelweb.com/f18/usuarios/ingresar.php">Iniciar Sesi&oacute;n</a> &nbsp; &nbsp; &nbsp; <a href="http://www.forosdelweb.com/f18/usuarios/registro.php">Registrarse</a>';
  37.                 }
  38.     ?>
  39.             </div>
  40.         </div>
  41.  
  42.         <div class="contenedor">
  43.             <div class="contenido">
  44.                 <div class="barra_titulo_div">
  45.                 <?php
  46.                     while ($FORO = mysql_fetch_array($consultando, MYSQL_ASSOC)) {
  47.                         echo '<table class="barra_titulo">
  48.                         <tr>
  49.                             <td><b>Titulo:</b></td>
  50.                             <td>'.$FORO["titulo_mensaje"].'</td>
  51.                             <td><b>Fecha:</b></td>
  52.                             <td>'.$FORO["fecha_mensaje"].'</td>';
  53.                             }
  54.                         ?>
  55.                         </tr>
  56.                     </table>
  57.                 </div>
  58.             </div>
  59.         </div>
  60.         <?php
  61.         $autor = $FORO["autor_mensaje"];
  62.         mysql_data_seek($consultando2, 0);
  63.         $consulta2="SELECT * FROM usuarios WHERE usuario='".$autor."';";
  64.         $consultando2 = mysql_query($consulta2, $conectar);
  65.         while ($FORO2 = mysql_fetch_array($consultando2, MYSQL_ASSOC)) {
  66.         echo ('
  67.         <div class="usuario">
  68.             <div class="avatar">
  69.             <img src="" alt="" height="135px" width="150px"/>
  70.             </div>
  71.             <table class="tabla_usuario" cellpadding="3">
  72.                 <tr>
  73.                     <td><b>Usuario:</b></td>
  74.                     <td>'.$FORO2["autor_mensaje"].'</td>
  75.                 </tr>
  76.                 <tr>
  77.                     <td><b>Nivel:</b></td>
  78.                     <td>'.$FORO2["nivel"].'</td>
  79.                 </tr>
  80.                 <tr>
  81.                     <td><b>Mensajes:</b></td>
  82.                     <td>'.$FORO2["numero_mensajes"].'</td>
  83.                 </tr>
  84.                 <tr>
  85.                     <td><b>Karma:</b></td>
  86.                     <td>'.$FORO2["puntuacion"].'</td>'); }
  87.                   ?>
  88.                 </tr>
  89.             </table>
  90.         </div>
  91.  
  92.     </body>
  93. </html>
  #14 (permalink)  
Antiguo 11/08/2011, 12:39
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Problemas con mysql_fetch_array

$consulta="SELECT * FROM mensajes WHERE id_mensaje='".$id_mensaje."'";

Es un número y lo pasas como una cadena

Código PHP:
Ver original
  1. $consulta="SELECT * FROM mensajes WHERE id_mensaje=$id_mensaje";

Quita esto

mysql_data_seek($consultando2, 0);

y el punto y coma de esto

$consulta2="SELECT * FROM usuarios WHERE usuario='".$autor."';";

y esto va dentro del primer while

$autor = $FORO["autor_mensaje"];
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Etiquetas: mysql_fetch_array
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 05:06.