elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 04:55  


Tema destacado: Grupo de Facebook de elhacker.net

+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP
| | | |-+  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 901 veces)
Shell Root


Desconectado Desconectado

Mensajes: 2.456


Alex Jurado


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

Tengo lo siguiente,
Código
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
+-------------------+-------------------+
| 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
  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?


En línea

---
bomba1990


Desconectado Desconectado

Mensajes: 383



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

Código
# 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


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


Desconectado Desconectado

Mensajes: 2.456


Alex Jurado


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

Thanks, pero así lo tenia no me funciona para la linea de la imagen.
Código
  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
Lujos	Latas
Aseo Partes Electricas

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

---
RedZer


Desconectado Desconectado

Mensajes: 654



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

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 »

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 por whalther » En línea
Shell Root


Desconectado Desconectado

Mensajes: 2.456


Alex Jurado


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

@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

---
~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 954



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

Bueno, creo que pude terminarlo xD

Código
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
 
$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($sql, MYSQL_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:

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


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

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines