elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Un pequeño problema de lógica
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Un pequeño problema de lógica  (Leído 3,071 veces)
Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Un pequeño problema de lógica
« en: 29 Marzo 2011, 05:03 am »

Tengo lo siguiente,
Código
  1. mysql> SELECT categoria, imgurl FROM categoria;
  2. +-------------------+----------------+
  3. | categoria         | imgurl         |
  4. +-------------------+----------------+
  5. | Lujos             | lujos.jpg      |
  6. | Latas             | latas.jpg      |
  7. | Aseo              | aseo.jpg       |
  8. | Partes Electricas | electricas.jpg |
  9. +-------------------+----------------+
  10. 4 ROWS IN SET (0.00 sec)

Ahora dentro de PHP quiero que aparezca lo mismo en la siguiente estructura:
Código
  1. +-------------------+-------------------+
  2. | Lujos             | Latas             |
  3. +-------------------+-------------------+
  4. | lujos.jpg         | latas.jpg         |
  5. |                   |                   |
  6. |                   |                   |
  7. +-------------------+-------------------+
  8. | Aseo              | Partes Electricas |
  9. +-------------------+-------------------+
  10. | aseo.jpg          | partes.jpg        |
  11. |                   |                   |
  12. |                   |                   |
  13. +-------------------+-------------------+

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

Código
  1.  function sCategorias( $sColumnas )
  2.  {
  3.    $sHTML   = "";
  4.    $sSQL    = "";
  5.    $sQuery  = "";
  6.  
  7.    # QUERY
  8.    $sSQL   = "SELECT categoria, imgurl FROM categoria;";
  9.    $sQuery = sExecQuery( $sSQL );
  10.  
  11.    # HTML
  12.    $sHTML .= "<table border='1'>";
  13.    $sHTML .= "<tr>";
  14.    while( $sRows = mysql_fetch_array( $sQuery, MYSQL_NUM )){
  15.      $sHTML .= "<td>".$sRows[0]."</td>";
  16.    }
  17.    $sHTML .= "</tr>";
  18.    $sHTML .= "</table>";
  19.    return $sHTML;
  20.  }

No se como hacerlo, alguna idea?


En línea

Te vendería mi talento por poder dormir tranquilo.
bomba1990


Desconectado Desconectado

Mensajes: 395



Ver Perfil WWW
Re: Un pequeño problema de lógica
« Respuesta #1 en: 29 Marzo 2011, 05:59 am »

Código
  1. # HTML
  2.    $sHTML .= "<table border='1'>";
  3.   $i = 2;
  4.    while( $sRows = mysql_fetch_array( $sQuery, MYSQL_NUM )){
  5.  
  6. if($i == 2){$sHTML .= "<tr>";}
  7.      $sHTML .= "<td>".$sRows[0]."</td>";
  8. if($i == 2){$sHTML .= "</tr>";$i=0}
  9. $i++;
  10.    }
  11.  
  12.    $sHTML .= "</table>";
  13.    return $sHTML;
  14.  
  15.  

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

lo hice rapidito, no lo probe


En línea

"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
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Re: Un pequeño problema de lógica
« Respuesta #2 en: 29 Marzo 2011, 06:03 am »

Thanks, pero así lo tenia no me funciona para la linea de la imagen.
Código
  1.  function sCategorias( $sColumnas )
  2.  {
  3.    $sHTML   = "";
  4.    $sSQL    = "";
  5.    $sQuery  = "";
  6.  
  7.    # QUERY
  8.    $sSQL   = "SELECT categoria, imgurl FROM categoria;";
  9.    $sQuery = sExecQuery( $sSQL );
  10.  
  11.    # HTML
  12.    $sHTML .= "<table border='1'>";
  13.    $sHTML .= "<tr>";
  14.  
  15.    $i = 0;
  16.    while( $sRows = mysql_fetch_array( $sQuery, MYSQL_NUM ))
  17.    {
  18.      $sHTML .= "<td>".$sRows[0]."</td>";
  19.      $i++;
  20.      if( $i == $sColumnas )
  21.      {
  22.        $sHTML .= "</tr><tr>";
  23.        $i = 0;
  24.      }
  25.    }
  26.  
  27.    $sHTML .= "</tr>";
  28.    $sHTML .= "</table>";
  29.    return $sHTML;
  30.  }
  31.  
  32.  print sCategorias( 2 );
OUTPUT:
Código
  1. Lujos Latas
  2. Aseo Partes Electricas

Seguiré codeando un rato.
« Última modificación: 29 Marzo 2011, 06:11 am por Shell Root » En línea

Te vendería mi talento por poder dormir tranquilo.
RedZer


Desconectado Desconectado

Mensajes: 666



Ver Perfil
Re: Un pequeño problema de lógica
« Respuesta #3 en: 29 Marzo 2011, 06:50 am »

siempre seran 4 categorias? las que mecionas lujas,latas,partes electricas,aseo????
En línea

Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo
whalther

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Un pequeño problema de lógica
« Respuesta #4 en: 29 Marzo 2011, 08:10 am »

Espero que te sirva de esta manera  ;D:

Código:
 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 );

« Última modificación: 29 Marzo 2011, 08:14 am por whalther » En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Re: Un pequeño problema de lógica
« Respuesta #5 en: 29 Marzo 2011, 20:44 pm »

@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.
En línea

Te vendería mi talento por poder dormir tranquilo.
~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: Un pequeño problema de lógica * Modificado
« Respuesta #6 en: 29 Marzo 2011, 23:41 pm »

Bueno, creo que pude terminarlo xD

Código
  1. mysql> DESCRIBE categoria;
  2. +-----------+------------------+------+-----+---------+----------------+
  3. | FIELD     | TYPE             | NULL | KEY | DEFAULT | Extra          |
  4. +-----------+------------------+------+-----+---------+----------------+
  5. | id        | INT(10) UNSIGNED | NO   | PRI | NULL    | AUTO_INCREMENT |
  6. | categoria | VARCHAR(30)      | NO   | MUL | NULL    |                |
  7. | imageurl  | VARCHAR(30)      | NO   |     | NULL    |                |
  8. +-----------+------------------+------+-----+---------+----------------+
  9. 3 ROWS IN SET (0.00 sec)
  10.  

Código
  1. <?php
  2.  
  3. $link = mysql_connect("127.0.0.1", "root", "pass");
  4. mysql_selectdb("ejemplo", $link);
  5.  
  6. function ejemplo()
  7. {
  8.   //
  9.   //SQL
  10.   $sql = mysql_query("SELECT id,categoria, imageurl FROM categoria");
  11.  
  12.   //Iinicio la variable $i
  13.   $i = 0;
  14.  
  15.   while($row = mysql_fetch_array($sql, MYSQL_ASSOC)):
  16.  
  17.      $i += 1;
  18.      $tab[$i] = array($row['categoria'], $row['imageurl']);
  19.  
  20.   endwhile;//Fin del while
  21.  
  22. return $tab;// Retorno un array
  23. }
  24.  
  25. ?>
  26.  
  27. <?php
  28.  
  29. $results = ejemplo();
  30.  
  31. //Debe ser multiplo de 2, ya que la tabla es
  32. // 2xN(numero que sea multiplo de 2)
  33. //Ej: 2x2, 2x4, 2x8
  34. $show = 4;
  35.  
  36. ?>
  37.  
  38. <table border="1">
  39.  <tbody>
  40.  
  41.   <?php for($i = 2; $i <= $show; $i+= 2): ?>
  42.    <tr>
  43.      <td><?php echo $results[$i-1][0] ?></td>
  44.      <td><?php echo $results[$i][0] ?></td>
  45.    </tr>
  46.    <tr>
  47.      <td><?php echo $results[$i-1][1] ?></td>
  48.      <td><?php echo $results[$i][1] ?></td>
  49.    </tr>
  50.  
  51.   <?php endfor; ?>
  52.  
  53.  </tbody>
  54. </table>
  55.  

Salida:

Código:
Lujos 	Latas
lujos.jpg latas.jpg
Aseo Partes Electricas
aseo.jpg electricas.jpg


« Última modificación: 30 Marzo 2011, 00:09 am por ~ Yoya ~ » En línea

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.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
problema al usar airoway.sh modificado en ubuntu, con atheros ar9285
Wireless en Linux
mmachote 3 4,371 Último mensaje 25 Febrero 2011, 11:35 am
por frakc/kcdtv
problema con las particiones y unidad logica..
Windows
henryxd 1 3,581 Último mensaje 7 Noviembre 2011, 12:14 pm
por M1lkLiz4rd
Un problema de lógica infantil se convierte en todo un fenómeno viral en China
Noticias
wolfbcn 8 3,267 Último mensaje 11 Junio 2014, 04:01 am
por Gh057
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines