Ver Mensaje Individual
  #8 (permalink)  
Antiguo 24/08/2014, 12:45
Avatar de dario_sanz
dario_sanz
 
Fecha de Ingreso: marzo-2010
Mensajes: 94
Antigüedad: 14 años, 1 mes
Puntos: 3
Respuesta: Mi for() me devuelve datos innecesarios

Cita:
Iniciado por NSD Ver Mensaje
Supongo que no tienes una tabla que se llama 'nombre de tabla' ¿Verdad? ¿Costaría mucho poner el nombre real de la tabla?

Mas alla de eso, puedes probar este codigo:
Código PHP:
Ver original
  1. <?php
  2. class madre{
  3.     public function ID()
  4.    {
  5.         // No es buena practica usar el '*', solo trae los campos que necesites.
  6.         $sql = "SELECT id FROM madres";          
  7.         if(!($res =  mysql_query($sql, class_con::conection())))
  8.             echo "Hay un problema en la consulta";
  9.         else
  10.         {
  11.             $this->variable = []; // Inicializar la variable.
  12.             // No hay razon para usar MYSQL_BOTH (el valor por defecto) si solo vas a usar las claves asociativas.
  13.             while($this->variable[] = mysql_fetch_array($res, MYSQL_ASSOC));
  14.             return $this->variable;
  15.         }
  16.     }
  17. }
  18.  
  19. $madre= new madre();
  20. ?>
  21.  
  22.     <table width="703" border="0" id="id_pet_0" cellpadding="2" cellspacing="2" >
  23. <?php
  24. foreach($madre->ID() as $id)
  25. {
  26. ?>
  27.       <tr>
  28.         <td width="537" bgcolor="#CAF1FF">
  29.               <h6>
  30.                      <?=$id["id"]?>
  31.                      <br>
  32.                      <a href="">Ver datos</a>
  33.                </h6>
  34.         </td>
  35.         <td width="145" align="center" bgcolor="#CAF1FF"><h6>imagen</h6></td>
  36.       </tr>
  37. <?php
  38. }
  39. ?>
Ese código hace lo mismo que el mio, el problema está cuando le agregas HTML.... es como si creara 8 espacios en la memoria y los mostrara como datos vacíos. Osea que si tiene que mostrar 16 ID distintos muestra primero los 8 datos vacíos (8 espacios "</br>") y luego después los 16 datos separados, por ejemplo:

Sin HTML

Código PHP:

 <?php for($p=0;$p<sizeof($id);$p++){?>


    <?=$id[$p]["id"]?>

    <?php }?>

Resultado en pantalla : 7 8 9 10 11 12 13 .....

Con HTML (agregamos al [echo] echo "- </br>" el la linea anterior antes de mostrar el ID)

Código PHP:

 <?php for($p=0;$p<sizeof($id);$p++){?>

  <?php echo '-</br>'?>

    <?=$id[$p]["id"]?>

    <?php }?>
Resultado en pantalla
-
-
-
-
-
-
-
-
-7
-8
-9
-10
etc..........

Saludos y muchas gracias....sigo buscando la solución