Foros del Web » Programando para Internet » PHP »

problema doble consulta en php

Estas en el tema de problema doble consulta en php en el foro de PHP en Foros del Web. Hola que tal amigos de foros del web, hoy estuve modificando mis archivos para etc. etc. y me surgió un problema veamos, en mi archivo ...
  #1 (permalink)  
Antiguo 18/09/2010, 23:38
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
problema doble consulta en php

Hola que tal amigos de foros del web, hoy estuve modificando mis archivos para etc. etc. y me surgió un problema veamos,

en mi archivo hago una consulta sql así
Código PHP:
Ver original
  1. $sql = "SELECT * FROM bla bla";
  2. $res = mysql_query($sql,$con); 
  3.  
  4. y con un while voy armando los datos
  5.  
  6. while ($reg = mysql_fetch_array($res))
  7. {
  8.  echo $reg['dato'];
  9. }

pero luego requiero hacer otro $reg['otro_dato'];
fuera del while, y no me da ningun resultado

ni siquiera poniendo después
$reg = mysql_fetch_array($res)

de nuevo por lo que tengo que realizar de nuevo la consulta $sql etc.
para llamar de nuevo los datos y eso no me parece muy bueno, no se,
¿que me dicen? ¿se puede hacer de otra forma?

gracias
  #2 (permalink)  
Antiguo 19/09/2010, 00:29
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años
Puntos: 322
Respuesta: problema doble consulta en php

Creo que no te explicas muy bien =/
Quieres hacer otro while independiente? O quieres mostrar asi nada mas el primer campo?
Si quieres un while independiente, seria asi;
Código PHP:
//El primer while
while ($reg mysql_fetch_assoc($res))
{
 echo 
$reg['dato'];
}

//El segundo while
while ($reg2 mysql_fetch_assoc($res))
{
echo 
$reg['dato'];

Y, si es lo segundo que te dije;
Código PHP:
while ($reg mysql_fetch_assoc($res))
{
 echo 
$reg['dato'];
}

$reg2 mysql_fetch_assoc($res);
echo 
$reg2['dato']; 
Saludos!
  #3 (permalink)  
Antiguo 19/09/2010, 01:01
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: problema doble consulta en php

Ahm sorry, es cierto que no me explique de todos modos me diste la respuesta, es lo segundo , pero no me funciona, sera por que uso mysql_fetch_array en vez de assoc?

hmm que raro.

Edito:

no me suelta ningun dato en $reg2 ni con array ni con assoc pero haciendo la doble consulta si me lo da hmm

bueno la respuesta es que debo hacer un res2 asi:

Código PHP:
Ver original
  1. $res2 = mysql_query($sql,$con);
  2. $reg2 = mysql_fetch_array($res2);

pero viene siendo lo mismo :/

Última edición por memoadian; 19/09/2010 a las 01:28
  #4 (permalink)  
Antiguo 19/09/2010, 13:31
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años
Puntos: 322
Respuesta: problema doble consulta en php

Hazlo asi;
Código PHP:
$query mysql_query("ACA TU CONSULTA");
$reg2 mysql_fetch_assoc($query); 
Asi te debe de funcionar
Y si no, es probable que no hagas bien tu conexion, que no selecciones tu DB (con mysql_select_db) o que no haya nada en la tabla
  #5 (permalink)  
Antiguo 19/09/2010, 13:33
 
Fecha de Ingreso: noviembre-2008
Mensajes: 94
Antigüedad: 15 años, 5 meses
Puntos: 6
Respuesta: problema doble consulta en php

Lo que pasa es que mysql_fetch_array lo que hace es mover un puntero, como un dedo sobre el renglón cuando pasa los datos. O sea, pasa los datos y mueve el dedo al siguiente renglón, cuando ya no quedan más renglones no pasa más datos.

Si vuelves a hacer otra llamada a mysql_fetch_array (fuera del while) va a ver donde quedó el dedo y como quedó hasta el final pues ya no hay datos. Entonces lo que hay que hacer es mover el dedo nuevamente al principio.

Esto se hace con la instrucción:

mysql_data_seek($res,0);

El 0 es el número de renglón al que queremos mover el dedo. 0 es el primer renglón. Así ya puedes hacer más "fetches" (¿se podrá traducir como "traídas"?)
  #6 (permalink)  
Antiguo 19/09/2010, 16:13
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: problema doble consulta en php

Cita:
Iniciado por Sourcegeek Ver Mensaje
Hazlo asi;
Código PHP:
$query mysql_query("ACA TU CONSULTA");
$reg2 mysql_fetch_assoc($query); 
Asi te debe de funcionar
Y si no, es probable que no hagas bien tu conexion, que no selecciones tu DB (con mysql_select_db) o que no haya nada en la tabla
eso es lo que yo puse arriba, pero es lo mismo haces dos consultas o sea dos querys

y

@rb3m gracias eso era lo que queria saber amigo +karma

Etiquetas: doble
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:09.