Un pequeño problema de lógica

Iniciado por Shell Root, 29 Marzo 2011, 05:03 AM

0 Miembros y 1 Visitante están viendo este tema.

Shell Root

Tengo lo siguiente,
Código (sql) [Seleccionar]
mysql> SELECT categoria, imgurl FROM categoria;
+-------------------+----------------+
| categoria         | imgurl         |
+-------------------+----------------+
| Lujos             | lujos.jpg      |
| Latas             | latas.jpg      |
| Aseo              | aseo.jpg       |
| Partes Electricas | electricas.jpg |
+-------------------+----------------+
4 rows in set (0.00 sec)


Ahora dentro de PHP quiero que aparezca lo mismo en la siguiente estructura:
Código (sql) [Seleccionar]
+-------------------+-------------------+
| Lujos             | Latas             |
+-------------------+-------------------+
| lujos.jpg         | latas.jpg         |
|                   |                   |
|                   |                   |
+-------------------+-------------------+
| Aseo              | Partes Electricas |
+-------------------+-------------------+
| aseo.jpg          | partes.jpg        |
|                   |                   |
|                   |                   |
+-------------------+-------------------+


Las columnas depende de un parámetro ingresado en la función.

Código (php) [Seleccionar]
  function sCategorias( $sColumnas )
  {
    $sHTML   = "";
    $sSQL    = "";
    $sQuery  = "";

    # QUERY
    $sSQL   = "SELECT categoria, imgurl FROM categoria;";
    $sQuery = sExecQuery( $sSQL );

    # HTML
    $sHTML .= "<table border='1'>";
    $sHTML .= "<tr>";
    while( $sRows = mysql_fetch_array( $sQuery, MYSQL_NUM )){
      $sHTML .= "<td>".$sRows[0]."</td>";
    }
    $sHTML .= "</tr>";
    $sHTML .= "</table>";
    return $sHTML;
  }


No se como hacerlo, alguna idea?
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

bomba1990

Código (php) [Seleccionar]

# HTML
    $sHTML .= "<table border='1'>";
   $i = 2;
    while( $sRows = mysql_fetch_array( $sQuery, MYSQL_NUM )){

if($i == 2){$sHTML .= "<tr>";}
      $sHTML .= "<td>".$sRows[0]."</td>";
if($i == 2){$sHTML .= "</tr>";$i=0}
$i++;
    }
   
    $sHTML .= "</table>";
    return $sHTML;



asi, te lo deberia imprimir pero cada 2 salta de linea.

lo hice rapidito, no lo probe
"Cuando le di de comer a los pobres me llamaron santo, pero cuando pregunte porque los pobres eran pobres me dijeron comunista"

http://sosinformatico.blogspot.com/
http://www.publisnet.com.ve

Shell Root

#2
Thanks, pero así lo tenia no me funciona para la linea de la imagen.
Código (php) [Seleccionar]
  function sCategorias( $sColumnas )
  {
    $sHTML   = "";
    $sSQL    = "";
    $sQuery  = "";

    # QUERY
    $sSQL   = "SELECT categoria, imgurl FROM categoria;";
    $sQuery = sExecQuery( $sSQL );

    # HTML
    $sHTML .= "<table border='1'>";
    $sHTML .= "<tr>";

    $i = 0;
    while( $sRows = mysql_fetch_array( $sQuery, MYSQL_NUM ))
    {
      $sHTML .= "<td>".$sRows[0]."</td>";
      $i++;
      if( $i == $sColumnas )
      {
        $sHTML .= "</tr><tr>";
        $i = 0;
      }
    }

    $sHTML .= "</tr>";
    $sHTML .= "</table>";
    return $sHTML;
  }

  print sCategorias( 2 );

OUTPUT:
Código (PoC) [Seleccionar]
Lujos Latas
Aseo Partes Electricas


Seguiré codeando un rato.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

RedZer

siempre seran 4 categorias? las que mecionas lujas,latas,partes electricas,aseo????
Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo

whalther

#4
Espero que te sirva de esta manera  ;D:

function sCategorias( $sColumnas )
{
  $sHTML   = "";
  $sSQL    = "";
  $sQuery  = "";
  # QUERY
  $sSQL   = "SELECT categoria, imgurl FROM categoria;";
  $sQuery = sExecQuery( $sSQL );

  # HTML
  $sHTML .= "<table border='1'>";
 
   $i = 1;
  while( $sRows = mysql_fetch_array( $sQuery)){
  if($i==1){$sHTML .= '<tr>';}
   
$sHTML .= "<td>".$sRows['categoria']."<br><img src='".$sRows['imgurl']."'></td>";

if($i==$sColumnas){$sHTML .= '</tr>';$i=0;}
    $i++;
}//end while
  $sHTML .= "</table>";
  return $sHTML;
}

print sCategorias( 2 );


Shell Root

@RedZer, no quizás existan más.
@whalther, esperaría que fuese la última opción. Si miras mi segudo POST, espero que sea en tablas como el ejemplo que dí.

Hoy pensando, quizás pueda usar 2 arrays, sería más fácil manejarlo.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

~ Yoya ~

#6
Bueno, creo que pude terminarlo xD

Código (sql) [Seleccionar]
mysql> describe categoria;
+-----------+------------------+------+-----+---------+----------------+
| Field     | Type             | Null | Key | Default | Extra          |
+-----------+------------------+------+-----+---------+----------------+
| id        | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| categoria | varchar(30)      | NO   | MUL | NULL    |                |
| imageurl  | varchar(30)      | NO   |     | NULL    |                |
+-----------+------------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)


Código (php) [Seleccionar]
<?php

$link 
mysql_connect("127.0.0.1""root""pass");
mysql_selectdb("ejemplo"$link);

function 
ejemplo()
{
   
//
   //SQL
   
$sql mysql_query("SELECT id,categoria, imageurl FROM categoria");

   
//Iinicio la variable $i
   
$i 0;

   while(
$row mysql_fetch_array($sqlMYSQL_ASSOC)):

      
$i += 1;
      
$tab[$i] = array($row['categoria'], $row['imageurl']);

   endwhile;
//Fin del while

return $tab;// Retorno un array
}

?>


<?php

$results 
ejemplo();

//Debe ser multiplo de 2, ya que la tabla es
// 2xN(numero que sea multiplo de 2)
//Ej: 2x2, 2x4, 2x8
$show 4;

?>


<table border="1">
 <tbody>

  <?php for($i 2$i <= $show$i+= 2): ?>
   <tr>
     <td><?php echo $results[$i-1][0?></td>
     <td><?php echo $results[$i][0?></td>
   </tr>
   <tr>
     <td><?php echo $results[$i-1][1?></td>
     <td><?php echo $results[$i][1?></td>
   </tr>

  <?php endfor; ?>

 </tbody>
</table>


Salida:

Lujos Latas
lujos.jpg latas.jpg
Aseo Partes Electricas
aseo.jpg electricas.jpg



Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.