Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/09/2013, 16:06
Avatar de emilio_viguri
emilio_viguri
 
Fecha de Ingreso: junio-2011
Ubicación: Mexico
Mensajes: 116
Antigüedad: 12 años, 10 meses
Puntos: 3
Pregunta For en lugar de Do While

Hola que tal bueno la cuestión es la siguiente tengo que sacar de mi base de datos por lo cual normal mete utilizo do while para sacar los datos pero a hora se me ocurrió usar un for ya que necesito ver que números me faltan entre un rango determinado me explico con un pequeño ejemplo

Yo tengo en la base de datos 2 4 6 8 10

Yo pido en mi consulta que me indique los datos del 1 al 10 por lo cual me tendría que arrojar 2 4 6 8 10

Y en mi php pondría que me faltan los siguientes números 1 3 5 7 9

Por eso uso un for para hacer una búsqueda del 1 al 10 de los datos obtenidos

for del 1 al 10
IF (si esta pon numero)
else (si no pon una X y el numero faltante)

me explcio todo esto sale de una base de datos pero necesito ver que consecutivos faltan

Hay otro codigo hay que es para generar una tabla para acomodar los datos pero eso no tengo problemas...

Código PHP:
Ver original
  1. $nc=10; #Numero de Columnas solo numeros pares.
  2.     $iniciorr=$finrr=$i=$sirr=$norr=$tr=$td=0;
  3.  
  4.     $iniciorr = $_POST['inicio']+0;
  5.     $finrr = $_POST['final']+0;
  6.  
  7. #   $iniciorr = 200;
  8. #   $finrr = 500;
  9. ?>     
  10. <table border="0" align="center" cellpadding="3" cellspacing="3">
  11.   <tr>
  12. <?
  13.         for($i=$iniciorr; $i<=$finrr; $i++){
  14.             $td++;         
  15.             if($tr){ echo '<tr>'; $tr=0; }
  16.             if($td<=$nc) echo '<td align="center">';
  17. #contenido y analisis de remiciones.
  18.             if(isset($iniciorr)){
  19.                 $queryF = "
  20. SELECT DISTINCT Rrappyd AS RR
  21. FROM partidas
  22. WHERE
  23. CAST(MID(Rrappyd, 3, LENGTH(Rrappyd)-2) AS UNSIGNED) BETWEEN $iniciorr AND $finrr
  24. ORDER BY Rrappyd";
  25. Rrappyd LIKE '__$i'";
  26.                 $dato = mysql_query($queryF, $conremision);
  27.                 $row = mysql_fetch_assoc($dato);
  28.             }
  29.        
  30.             if($row["RR"] == NULL){
  31.                 echo 'X'.$i.'X';
  32.                 $norr++;
  33.             }else{
  34.                 echo '<strong>'.$row["RR"].'</strong>';
  35.                 $sirr++;
  36.             }
  37. #           echo '&nbsp;'.$i.'&nbsp;';
  38.  
  39. ############################
  40.  
  41.             if($td<=$nc) echo '</td>';
  42.             if($td==$nc){ echo '</tr>'; $td=0; $tr=1; }        
  43.            
  44.         }
  45.        
  46.         if($td>1 and $tr=0) echo '</tr>';
  47. ?>     
  48.   </table>

Lo que pasa con esto es que simpre me arroja el primer dato que contiene $row y no pone los consecutivos entonces como muevo el indice de mi row ?

o tiene alguna otra idea de como pueda hacer esto ?