Foros del Web » Programando para Internet » PHP »

increible duda con mysql_fetch_array!!!!

Estas en el tema de increible duda con mysql_fetch_array!!!! en el foro de PHP en Foros del Web. Hola gente, como andan Bueno estoy haciendo un programita para ofrecer encuestas para webmasters, ya esta muy terminado pero me habia salteado un problema que ...
  #1 (permalink)  
Antiguo 10/06/2002, 18:36
Avatar de gomo  
Fecha de Ingreso: mayo-2002
Ubicación: [email protected]
Mensajes: 906
Antigüedad: 21 años, 11 meses
Puntos: 0
increible duda con mysql_fetch_array!!!!

Hola gente, como andan
Bueno estoy haciendo un programita para ofrecer encuestas para webmasters, ya esta muy terminado pero me habia salteado un problema que lo resolvi de otra manera, pero quiero saber que pasa.
Imaginen este código:

<?php
$sql=mysql_query("SELECT * FROM tabla WHERE id='1'");
/*necesito contar los votos de cada item de la poll para tener el total y luego poder calcular los porcentajes.
Lo hago con un loop*/
$i = 0;
while($a=mysql_fetch_array($sql)){
$i += $a['votos'];
}
//mostramos los datos
echo "Los votos totales son: ".$i;
/*entonces ya tengo $i con el total de votos
necesito ahora hacer otro loop mas para ir mostrando los votos de cada item y el porcentaje del total
entonces intento OTRO loop, y HETE AQUI EL PROBLEMA*/
while($b=mysql_fetch_array($sql)){
//aca va todo el codigo de echo()s y printf()s
}

Bueno supongo que se entiende el código si hay algun error no se preocupen el codigo esta bien ese no es el original sino un ejemplo simplificado.
Ahora cuando ejecuto todo, aparece nada mas el primer echo, el echo $i... El segundo (con la info de cada poll) no aparece, ni da error.
Entonces pense que el primer mysql_fetch_array me habia "gastado" la variable $sql, y que era mejor tener 2 iguales y usar una en cada loop:
entonces ANTES del primer loop hago:
$sql1 = $sql;
$sql2 = $sql;
y uso respectivamente $sql1 y $sql2 para cada loop... NADA..
Que raro -me digo- y hago de nuevo la consulta entre el primer loop y el segundo, otra consulta igual a la primera.
Y FUNCIONA.
¿¿ALGUIEN TIENE IDEA DE PORQUE M I E R D A HACE ESTO???
O sea con las 2 consultas funciona bien, solo que es mas lento y mas carga para la bd, en este caso no es problema pero creo que es un detalle importante... Me fije en el manual y nada...
Saludos a ver quien se la sabe


<div align="center"><img src="http://cablemodem.fibertel.com.ar/sainztrapaga/images/firma.jpg" width="435" height="70" border="0">
</div>
  #2 (permalink)  
Antiguo 10/06/2002, 19:27
 
Fecha de Ingreso: abril-2001
Mensajes: 60
Antigüedad: 23 años
Puntos: 0
Re: increible duda con mysql_fetch_array!!!!

Hola:

Yo creo que lo te ocurre es muy lógico, si tomas en cuenta que el primer lazo
Código:
 while
deja recorre todo el array $sql hasta el final, en donde se queda su puntero interno. No tengo el manual a la mano, pero para resolver esto, supongo que debe existir alguna función que te permita &quot;retroceder&quot; o regresar el puntero del array hacia el inicio. Creo que es eso.

Buena Suerte !!!
  #3 (permalink)  
Antiguo 10/06/2002, 23:50
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 22 años, 5 meses
Puntos: 69
Re: increible duda con mysql_fetch_array!!!!

Como dice Ricardo, lo que necesitás gomo es mysql_data_seek(); que es una funcion que pasado un resultset, y un offset, te lleva a esa posicion de los resultados.

De todas maneras, podés hacer las dos cosas recorriendo solo 1 vez la lista de resultados.

Saludos.

<hr><font size=2 face="verdana">- Pablo Daniel Rigazzi (Webstudio)
<font size=1 color="#333333">COORDINADOR PROYECTO REGIONALIZACION ARGENTINA
Visita <a href="http://www.web-studio.com.ar" target="_blank">Web Studio</a> - Tutoriales Photoshop</fo
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 12:55.