Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: Graphixx en 16 Noviembre 2012, 15:48 PM

Título: Emular while($col=mysql_fetch_array($resp)) con FOR
Publicado por: Graphixx en 16 Noviembre 2012, 15:48 PM
alguna idea de como recorrer un resultado mysql en vez de con:
while($col=mysql_fetch_array($resp))

algo asi:
Código (php) [Seleccionar]

$resf = mysql_num_rows($resp);
$resc = mysql_num_rows($resp_cr);

//optenemos el limite mas grande de entre las dos consultas
if($resf > $resc){

$limite=$resf
$ban = "f";
}else{
$ban = "c";
$limite=$resc
}

$col=mysql_fetch_array($resp)
$col_cr=mysql_fetch_array($resp_cr)
//recorremos el maximo de resultados
for ($i = 0; $i <= $limite; $i++) {
   
if($ban=="f"){
//limitar cr
if($i<=$resc){
//dibujamos fila cr

}
}

if($ban=="c"){
//limitar fr
if($i<=$resf){
//dibujamos fila fr
}
}

}//fin for


es que quiero unir dos consultas mysql en una sola.
algo asi como supongamos tengo un vector de 5 resultados y otro de 3
quiero que recorriendo el mayor, ir mostrando tambien el menor, controlando que el menor no se salga de rango.
Título: Re: Emular while($col=mysql_fetch_array($resp)) con FOR
Publicado por: dimitrix en 16 Noviembre 2012, 17:12 PM
mysql_fetch_array te crea dos arrays, puedes sacar con el mysql_num_rows la cantidad de elementos que tienes y luego con el for los recorres... Ahora estoy muy distraido pero si nadie te ayuda esta noche me intentaré ayudarte ;-)

Sólo recuerdamelo.
Título: Re: Emular while($col=mysql_fetch_array($resp)) con FOR
Publicado por: dimitrix en 16 Noviembre 2012, 17:19 PM
Vale, tardé 6 minutos que me cambié de PC pero funciona sin problemas, comprobado.

Código (php-brief) [Seleccionar]

<?php
$res
=mysql_query("SELECT * FROM tabla");
$count=mysql_num_rows($res);

for(
$i=0;$count!=$i;$i++){
$valores=mysql_fetch_array($res);
};
?>


Espero que sea lo que buscas^^
Título: Re: Emular while($col=mysql_fetch_array($resp)) con FOR
Publicado por: Graphixx en 16 Noviembre 2012, 18:14 PM
lo que llevo es algo asi:

Código (php) [Seleccionar]

//optenemos el limite mas grande de entre las dos consultas
if($resultados_totales > $resultados_totales_cr){
$ban = "f";
}elseif($resultados_totales < $resultados_totales_cr){
$ban = "c";
}else{$ban = "c";}
   
if($ban=="f"){
//limitar cr

   for($s=0;@$col=mysql_fetch_array($resp);$s++){

//dibuja f
echo "<br />fr";

if($sent<$resultados_totales_cr){
//dibuja c
@$col_cr=mysql_fetch_array($resp_cr);
echo "<br />";
}

}

}elseif($ban=="c"){
//limitar fr  
   for($s=0;@$col_cr=mysql_fetch_array($resp_cr);$s++){

//dibuja c
echo "<br />";

if($sent<$resultados_totales-1){
//dibuja f
@$col = mysql_fetch_array($resp);
   echo "<br />";
   }
}

}


Me autorespondi tambien:
http://foro.elhacker.net/php/paginacion_salteada_entre_dos_tablas-t376054.0.html