Foros del Web » Programando para Internet » PHP »

No muestra Consulta MySQL usando For

Estas en el tema de No muestra Consulta MySQL usando For en el foro de PHP en Foros del Web. Estoy usando el siguiente codigo para mostrar 2 veces la misma consulta : Código PHP: function  get_categories () {         global  $con ;          $query  =  ...
  #1 (permalink)  
Antiguo 07/02/2005, 10:53
 
Fecha de Ingreso: junio-2003
Ubicación: Buenos Aires, Argentina
Mensajes: 101
Antigüedad: 20 años, 10 meses
Puntos: 1
No muestra Consulta MySQL usando For

Estoy usando el siguiente codigo para mostrar 2 veces la misma consulta :


Código PHP:
function get_categories()
{
        global 
$con;

        
$query 'SELECT `id_cat_dir` , `cat_en` FROM `cat_dir` ORDER BY `cat_en` ASC';

        
$rs mysql_query($query$con)  or die ("<h2> Query invalido :( </h2>");

        return 
$rs;

}
    
$extra2=get_categories();


for (
$e=1$lista2 mysql_fetch_assoc($extra2); $e++) {

    echo 
$lista2['scat_en'].', ';
                    
}
                
for (
$e=1$lista2 mysql_fetch_assoc($extra2); $e++) {

    echo 
$lista2['scat_en'].', ';

El caso es que se muestra toda la consulta correctamente en el primer FOR, pero en el segundo no muestra nada

He intentado pasar el resultado de mysql_fetch_assoc($extra2) a otra variable para leerla desde ahi pero sin exito

creo que esto de las cadenas resultantes de consultas myql me tienen confundido, ¿ Que me aconsejan ?
__________________
@cesars
indexante.com
  #2 (permalink)  
Antiguo 07/02/2005, 12:31
Avatar de Bio
Bio
 
Fecha de Ingreso: diciembre-2003
Ubicación: México DF
Mensajes: 180
Antigüedad: 20 años, 4 meses
Puntos: 0
Me parece que lo que sucede es que el "puntero" se queda en la ultima fila al final del primer ciclo for y nunca regresa, por esto en el segundo no te muestra ningún resultado.

Intenta volver a llamar la función antes del segundo ciclo.
  #3 (permalink)  
Antiguo 07/02/2005, 13:52
Avatar de baklao  
Fecha de Ingreso: noviembre-2004
Ubicación: Santa Ana - Isla de Margarita
Mensajes: 482
Antigüedad: 19 años, 4 meses
Puntos: 0
Hola que tal porque en vez de usar un FOR utilizas un WHILE para recorrer tu cnsulta que traes de tu tabla.

Suerte y Salu2.

Bye
__________________
Atte. Mohamed :aplauso:
  #4 (permalink)  
Antiguo 07/02/2005, 15:46
 
Fecha de Ingreso: junio-2003
Ubicación: Buenos Aires, Argentina
Mensajes: 101
Antigüedad: 20 años, 10 meses
Puntos: 1
Gracias por las respuestas

La idea es evitar llamar 2 veces a la funcion (o mas si se desea ampliar la lista ), ya que equivaldria ha hacer el mismo query varias veces.

Ya lo intente con el while y el foreach y na !

Saludos
__________________
@cesars
indexante.com
  #5 (permalink)  
Antiguo 07/02/2005, 21:48
Avatar de Bio
Bio
 
Fecha de Ingreso: diciembre-2003
Ubicación: México DF
Mensajes: 180
Antigüedad: 20 años, 4 meses
Puntos: 0
Entonces puedes usar otro ciclo para llamarla el número de veces que quieras, la consulta se repite pero no tienes que poner cada una, es decir, algo asi.

Código PHP:

while($var 2)
{
$extra2=get_categories();

for (
$e=1$lista2 mysql_fetch_assoc($extra2); $e++) {

    echo 
$lista2['scat_en'].', ';
                    

$var++;

y entonces unicamente necesitas modificar el valor de $var para repetirla el numero de veces que quieras.
  #6 (permalink)  
Antiguo 08/02/2005, 13:13
 
Fecha de Ingreso: junio-2003
Ubicación: Buenos Aires, Argentina
Mensajes: 101
Antigüedad: 20 años, 10 meses
Puntos: 1
Es cierto que podria funcionar, pero ¿ eso no equivaldria a hacer n consultas al server para conseguir los mismos datos ?, lo que intentamos es la forma de como aprovechar una unica llamada al server y mostrarla varias veces

Gracias
__________________
@cesars
indexante.com
  #7 (permalink)  
Antiguo 08/02/2005, 14:04
Avatar de Bio
Bio
 
Fecha de Ingreso: diciembre-2003
Ubicación: México DF
Mensajes: 180
Antigüedad: 20 años, 4 meses
Puntos: 0
No sabía que existiera una función para resetear el puntero, checando la documentación me encontre con mysql_data_seek que es lo mas cercano. puede ser lo que buscas:

http://mx.php.net/manual/en/function...-data-seek.php
  #8 (permalink)  
Antiguo 08/02/2005, 14:16
 
Fecha de Ingreso: junio-2003
Ubicación: Buenos Aires, Argentina
Mensajes: 101
Antigüedad: 20 años, 10 meses
Puntos: 1
Precisamente, ya habia visto esa funcion pero la pase por alto, creo que debo mejorar mi ingles :P

Finalmente queda :

Código PHP:
//unica llamada a consulta
$extra2=get_categories();

while(
$var 2)
{

for (
$e=1$lista2 mysql_fetch_assoc($extra2); $e++) {

    echo 
$lista2['scat_en'].', ';
                    
}

//donde se regresa el puntero a posicion 0
mysql_data_seek($extra2,0);

$var++;

Gracias
__________________
@cesars
indexante.com
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 00:08.