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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  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 2,902 veces)
Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<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

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
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.723


<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

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
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.723


<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

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
~ 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,133 Último mensaje 25 Febrero 2011, 11:35 am
por frakc/kcdtv
problema con las particiones y unidad logica..
Windows
henryxd 1 3,424 Ú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 2,909 Último mensaje 11 Junio 2014, 04:01 am
por Gh057
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines