Foros del Web » Programando para Internet » PHP »

tablas y while problemas...

Estas en el tema de tablas y while problemas... en el foro de PHP en Foros del Web. amigos tengo el siguiente problema: necesito maquetar una tabla a 4 columnas y N filas con datos que se cargan de una BD, el problema ...
  #1 (permalink)  
Antiguo 05/11/2010, 14:18
 
Fecha de Ingreso: febrero-2010
Ubicación: cba
Mensajes: 203
Antigüedad: 14 años, 2 meses
Puntos: 16
tablas y while problemas...

amigos tengo el siguiente problema: necesito maquetar una tabla a 4 columnas y N filas con datos que se cargan de una BD, el problema es que los datos se repiten 4 veces por producto, no entiendo que estoy haciendo mal..aqui va el codigo:

Código PHP:
$columnas 4;
$filas 3

// luego, para facilitar esto usaremos dos for() anidados


echo '<table  border="1" cellpadding="15" cellspacing="02" width="307">';

for (
$x 0$x $filas; ++$x)
{
  
  
// "vector" X
  
echo '<tr>';
                   while (
$row=mysql_fetch_assoc($resultados)) 
{
  for (
$y 0$y $columnas; ++$y)
  {
     
 echo 
'<td>';
    

    echo        
"<form method='post' action='' class='jcart'> ";
            echo        
"<input type='hidden' name='my-item-id' value='$d' />";
        
     
        echo        
"<input type='hidden' name='my-item-name' value='$row[titulo]' />";
        
        
        echo        
"<input type='hidden' name='my-item-price' value='$row[precio]' />";
    echo 
"<b>$row[titulo]</b><br /><img src='$row[imagen]'width='150' height='150' class='bor' /><br /><img src='images/icon.gif' /> Precio: $$row[precio]<br> <img src='images/icon.gif' /> Cantidad: <input type='text' name='my-item-qty' value='1' size='3' /> <br> ";
$d++;
if(
$_SESSION['id'])
{echo 
"<input type='submit' name='my-add-button' value='Comprar' class='button' />";
    
    }
else
{
    echo 
"<span style='color:red;border:1px solid red;padding:2px'>Inicie Sesión</span>";
}

echo 
"<div class='dash3'></div>";

echo        
"</form>";
 echo 
'</td>';
    
}

    echo 
'</tr>';

     
  }
  
// cerramos X
  
}

echo 
'</table>'


calculo que se repiten 4 veces los datos porque por el
$columnas = 4; pero no se como plantearlo para que no se repitan y me maquete la tabla a 4 columnas y N filas.

muchas gracias
  #2 (permalink)  
Antiguo 05/11/2010, 15:00
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 13 años, 7 meses
Puntos: 45
Respuesta: tablas y while problemas...

si entendi bien, debes quitar el primer for...

y escribir el echo '<tr>' despues de que inicias el ciclo while...

eso supongo a simple vista... postea como te fue!!
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x

Última edición por malakian; 05/11/2010 a las 15:19
  #3 (permalink)  
Antiguo 05/11/2010, 16:04
 
Fecha de Ingreso: febrero-2010
Ubicación: cba
Mensajes: 203
Antigüedad: 14 años, 2 meses
Puntos: 16
Respuesta: tablas y while problemas...

malakian gracias por la respuesta, pero sigue repitiendo los productos 4 veces por productos, si te pones a pensar seria asi: entra primero alwhile($row=mysql_fetch_assoc($resultados)) despues crea el <tr>, despues hace el for ($y = 0; $y < $columnas; ++$y), pero como $columnas=4, el FOR no va a cortar hasta que llegue a 4, por eso repite los datos 4 veces, no se como plantearlo.

alguna otra solucion.?

muchas gracias
  #4 (permalink)  
Antiguo 05/11/2010, 16:37
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: tablas y while problemas...

Cita:
Iniciado por gordot Ver Mensaje
amigos tengo el siguiente problema: necesito maquetar una tabla a 4 columnas y N filas con datos que se cargan de una BD, el problema es que los datos se repiten 4 veces por producto, no entiendo que estoy haciendo mal..aqui va el codigo:

Código PHP:
$columnas 4;
$filas 3

// luego, para facilitar esto usaremos dos for() anidados


echo '<table  border="1" cellpadding="15" cellspacing="02" width="307">';

for (
$x 0$x $filas; ++$x)
{
  
  
// "vector" X
  
echo '<tr>';
                   while (
$row=mysql_fetch_assoc($resultados)) 
{
  for (
$y 0$y $columnas; ++$y)
  {
     
 echo 
'<td>';
    

    echo        
"<form method='post' action='' class='jcart'> ";
            echo        
"<input type='hidden' name='my-item-id' value='$d' />";
        
     
        echo        
"<input type='hidden' name='my-item-name' value='$row[titulo]' />";
        
        
        echo        
"<input type='hidden' name='my-item-price' value='$row[precio]' />";
    echo 
"<b>$row[titulo]</b><br /><img src='$row[imagen]'width='150' height='150' class='bor' /><br /><img src='images/icon.gif' /> Precio: $$row[precio]<br> <img src='images/icon.gif' /> Cantidad: <input type='text' name='my-item-qty' value='1' size='3' /> <br> ";
$d++;
if(
$_SESSION['id'])
{echo 
"<input type='submit' name='my-add-button' value='Comprar' class='button' />";
    
    }
else
{
    echo 
"<span style='color:red;border:1px solid red;padding:2px'>Inicie Sesión</span>";
}

echo 
"<div class='dash3'></div>";

echo        
"</form>";
 echo 
'</td>';
    
}

    echo 
'</tr>';

     
  }
  
// cerramos X
  
}

echo 
'</table>'

calculo que se repiten 4 veces los datos porque por el
$columnas = 4; pero no se como plantearlo para que no se repitan y me maquete la tabla a 4 columnas y N filas.

muchas gracias
no estoy seguro de si entendi bien pero si lo que quieres es crear una tabla que muestre solo 4 registros olvidate de los for y crea tu while ($row=mysql_fetch_assoc($resultados))
donde tu sentencia sql lea solo los 4 registros que e interesan.
cuentame si es esto lo que pretendes y si es asi, postea tu sentencia para que te ayudemos a depurarla
  #5 (permalink)  
Antiguo 05/11/2010, 18:02
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 13 años, 7 meses
Puntos: 45
Respuesta: tablas y while problemas...

jajaja yo tampoco entiendo muy bien, que es lo que quieres???

que cada producto salga en una sola celda???

osea algo como

Código HTML:
Ver original
  1. <tr>
  2.   <td>
  3.     producto1
  4.   </td>
  5.   <td>
  6.     producto2
  7.   </td>
  8.   <td>
  9.     producto3
  10.   </td>
  11.   <td>
  12.     producto4
  13.   </td>
  14. </tr>
  15.  
  16. <!--{ y asi sucesivamente??}-->

__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #6 (permalink)  
Antiguo 07/11/2010, 10:31
 
Fecha de Ingreso: febrero-2010
Ubicación: cba
Mensajes: 203
Antigüedad: 14 años, 2 meses
Puntos: 16
Respuesta: tablas y while problemas...

amigos necesito que los datos se muestren en una tabla de cuatro columnas y n filas con el while ($row=mysql_fetch_assoc($resultados), como se podria hacer esto?

gracias
  #7 (permalink)  
Antiguo 08/11/2010, 14:04
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 13 años, 7 meses
Puntos: 45
Respuesta: tablas y while problemas...

haber si lo que quieres algo como te dije antes...

primero si tienes controles hidden no se van a ver...

tu encabezado es algo asi?
algo como: ID,Nombre,Precio,Boton comprar...

si es asi, solo usa el while asi:

Código PHP:
Ver original
  1. while ($row=mysql_fetch_assoc($resultados)){
  2.   echo "<tr>";
  3.   echo "<td>";
  4.   echo "<input type='hidden' name='my-item-id' value='$d' />";
  5.   echo "</td>";
  6.   echo "<td>";
  7.   echo "<input type='hidden' name='my-item-name' value='$row[titulo]' />";
  8.   echo "</td>";
  9.   echo "<td>";
  10.   echo "<input type='hidden' name='my-item-price' value='$row[titulo]' />";
  11.   echo "</td>";
  12.   echo "<td>";
  13.   echo "<input type='button' name='bot' value='comprar'";
  14.   echo "</td>";
  15.   echo "</tr>";
  16. }

recuerda encerrar las propiedas de los controles en comillas dobles

vemos!!
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #8 (permalink)  
Antiguo 08/11/2010, 18:42
 
Fecha de Ingreso: febrero-2010
Ubicación: cba
Mensajes: 203
Antigüedad: 14 años, 2 meses
Puntos: 16
Respuesta: tablas y while problemas...

en relidad son imagenes que tengo que mostrar, asi de esta forma:

imagen 1 - imagen 2 - imagen 3 - imagen 4
imagen 5 - imagen 6 - imagen 7 - imagen 8
.
.
.
imagen n - imagen n - imagen n - imagen n

gracias por sus respuestas
  #9 (permalink)  
Antiguo 08/11/2010, 19:03
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 13 años, 7 meses
Puntos: 45
Respuesta: tablas y while problemas...

creo que ya entendi...

Código PHP:
Ver original
  1. $contador =1;
  2. echo "<tr>";
  3. while ($row=mysql_fetch_assoc($resultados)){
  4.   if ($contador == 4){
  5.   echo "</tr><tr>";
  6.   $contador=1;
  7.   }
  8.   echo "<td>";
  9.   echo "imagen n";
  10.   echo "</td>";
  11.   $contador++;
  12. }
  13. if ($contador < 4){
  14.   echo "</tr>";
  15. }

esa es la idea, intentalo!!

vemos!!
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x

Última edición por malakian; 08/11/2010 a las 19:11
  #10 (permalink)  
Antiguo 08/11/2010, 19:14
 
Fecha de Ingreso: febrero-2010
Ubicación: cba
Mensajes: 203
Antigüedad: 14 años, 2 meses
Puntos: 16
Respuesta: tablas y while problemas...

muchas gracias malakian, funciono a la perfeccion. hacia mucho que buscaba la respuesta.
saludos cordiales!!!!
  #11 (permalink)  
Antiguo 08/11/2010, 19:18
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 13 años, 7 meses
Puntos: 45
Respuesta: tablas y while problemas...

con gusto!! aunque creo que debe haber un fallo... con respecto a la terminacion de las celdas
trate de darle solucion sino postee con tranquilidad!!
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #12 (permalink)  
Antiguo 08/11/2010, 20:44
 
Fecha de Ingreso: febrero-2010
Ubicación: cba
Mensajes: 203
Antigüedad: 14 años, 2 meses
Puntos: 16
Respuesta: tablas y while problemas...

es verdad, con 8 imagenes funciona bien, pero cuando mi consulta hago el LIMIT para que tome 9 registros, a esa ultima imagen se no la baja y se ve al lado de la octava imagen.

que podra ser?
  #13 (permalink)  
Antiguo 08/11/2010, 22:27
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 13 años, 7 meses
Puntos: 45
Respuesta: tablas y while problemas...

Código PHP:
Ver original
  1. $contador =1;
  2. $num_col=4;
  3. echo "<tr>";
  4. while ($row=mysql_fetch_assoc($resultados)){
  5.   echo "<td>";
  6.   echo "imagen n";
  7.   echo "</td>";
  8.   if ($contador == $num_col){
  9.     echo "</tr><tr>";
  10.     $contador=0;
  11.   }
  12.   $contador++;
  13. }
  14. //terminar de rellenar tablacon celdas...
  15. if ($contador < $num_col){
  16.   $celdas_falt=$num_col - $contador;
  17.   while ($celdas_falt <= $num_col){
  18.     echo "<td>$nbsp;</td>";
  19.     $celdas_falt++;
  20.   }
  21.   echo "</tr>";
  22. }

bueno lo hice a simple vista, voy a probarlo y si algo edito jejeje

EDITADO: Si tenia fallos,pruebalo ahora... habia un problema en el contador
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x

Última edición por malakian; 09/11/2010 a las 10:18
  #14 (permalink)  
Antiguo 09/11/2010, 11:52
 
Fecha de Ingreso: febrero-2010
Ubicación: cba
Mensajes: 203
Antigüedad: 14 años, 2 meses
Puntos: 16
Respuesta: tablas y while problemas...

muchas gracias, ahora funciona perfecto.
saludos y muy agradecido
  #15 (permalink)  
Antiguo 16/11/2010, 10:07
 
Fecha de Ingreso: noviembre-2010
Mensajes: 4
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: tablas y while problemas...

Buenas, he visto este hilo y es muy similar a lo que quiero conseguir. Antes de seguir decir que apenas sé de php, pero estoy intentando modificar unos códigos que me salen en lista para que aparezca en tabla tal como indican aquí. Lo que les pregunto es si podrían indicarme cuales son las parte de código que debo adaptar a mi situación y cuales deben permanecer intactas. Lo que pretendo que los valores actuales que se estructuran en una tabla se visualicen en varias columnas.

Actualmente la programción que trae por defecto es :
A1 --- A2 --- A3
B1 --- B2 --- B3
C1 --- C2 --- C3
D1 --- D2 --- D3

Y lo que pretendo conseguir es:
A1 --- A2 --- A3 // B1 --- B2 --- B3 // C1 --- C2 --- C3
D1 --- D2 --- D3 // y que continuen completandose.

Si es muy lioso indicarmelo y pongo el código que tengo.
  #16 (permalink)  
Antiguo 16/11/2010, 10:26
 
Fecha de Ingreso: febrero-2010
Ubicación: cba
Mensajes: 203
Antigüedad: 14 años, 2 meses
Puntos: 16
Respuesta: tablas y while problemas...

usa este mismo codigo pero cambia el numero de columnas a mostrar:

Código PHP:
   
      $contador 
=1;
   
      
$num_col=7;
   
      echo 
"<tr>";
   
      while (
$row=mysql_fetch_assoc($resultados)){
   
        echo 
"<td>";
   
        
AQUI PONES LOS DATOS QUE QUIERAS QUE SE CARGUEN
   
        
echo "</td>";
   
        if (
$contador == $num_col){
   
          echo 
"</tr><tr>";
  
          
$contador=0;
  
        }
  
        
$contador++;
  
      }
  
      
//terminar de rellenar tablacon celdas...
  
      
if ($contador $num_col){
  
        
$celdas_falt=$num_col $contador;
  
        while (
$celdas_falt <= $num_col){
    echo 
"<td>$nbsp;</td>";
  
          
$celdas_falt++;
  
        }
  
        echo 
"</tr>";
  
      } 
SALUDOS
  #17 (permalink)  
Antiguo 16/11/2010, 10:29
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 13 años, 7 meses
Puntos: 45
Respuesta: tablas y while problemas...

en la linea 21 del codigo que postee anteriormente debes poner un condicional lo controlas con una variable para que no se cierre cada vez que cambie de item, sino cada 3 items...
intentalo...

EDITADO: jaja! creo que gordot tiene razon jejejeje....
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x

Última edición por malakian; 16/11/2010 a las 10:35
  #18 (permalink)  
Antiguo 17/11/2010, 04:32
 
Fecha de Ingreso: noviembre-2010
Mensajes: 4
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: tablas y while problemas...

Gracias por responder tan rápido, he estado intentándolo y no sé exactamente donde insertarlo, y tampoco sé si me he explicado bien. Porque el A1,A2,A3 están relacionados entre sí, es como si dentro de una celda pusiese un número, imagen y texto.

El Código completo es este:

<?php
$products_attributes_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$languages_id . "'");
$products_attributes = tep_db_fetch_array($products_attributes_query);
if ($products_attributes['total'] > 0) {
?>
<table border="0" cellspacing="0" cellpadding="2">
<tr>
<td class="main" align="center"><?php echo 'Cantidad'; ?></td>
<td class="main" align="center"><?php echo 'Opcion'; ?></td>
<td class="main" align="center"><?php /* uncomment if you want to show the model number echo TEXT_PRODUCT_MODEL; */ ?></td>
<td class="main" align="center"><?php echo 'Precio'; ?></td>

</tr>
<?php
$X=0;

$products_options_name_query = tep_db_query("select distinct popt.products_options_id, popt.products_options_name from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$languages_id . "' order by popt.products_options_name");
while ($products_options_name = tep_db_fetch_array($products_options_name_query)) {
$products_options_array = array();
$products_options_query = tep_db_query("select pov.products_options_values_id, pov.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov where pa.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pa.options_id = '" . (int)$products_options_name['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . (int)$languages_id . "'");

while ($products_options = tep_db_fetch_array($products_options_query)) {
$products_options_array[] = array('id' => $products_options['products_options_values_id'], 'text' => $products_options['products_options_values_name']);
if ($products_options['options_values_price'] != '0') {
$products_options_array[sizeof($products_options_array)-1]['text'] .= ' (' . $products_options['price_prefix'] . $currencies->display_price($products_options['options_values_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) .') ';
if ($products_options['price_prefix'] == '+') {
$price_with_attribute = ($product_info['products_price'] + $products_options['options_values_price']);
} else {
$price_with_attribute = ($product_info['products_price'] - $products_options['options_values_price']);
}
?>
<tr>
<td class="main" align="center"><?php echo tep_draw_input_field('quantity[]',$value = '0',"size=2");?></td>
<td class="main" align="center">
<?php echo $products_options['products_options_values_name'];
echo tep_draw_hidden_field('a[]', $products_options['products_options_values_id']);
echo tep_draw_hidden_field('b[]',$products_options_name['products_options_id']); ?> </td>
<td class="main" align="center">
<?php /* uncomment if you want to show the model number
echo $product_info['products_model']; */
?>
</td>
<td class="main" align="center"><?php echo $currencies->display_price($price_with_attribute, tep_get_tax_rate($product_info['products_tax_class_id'])); ?></td>
</tr>
<?php
$x++;
}
}

if (isset($cart->contents[$HTTP_GET_VARS['products_id']]['attributes'][$products_options_name['products_options_id']])) {
$selected_attribute = $cart->contents[$HTTP_GET_VARS['products_id']]['attributes'][$products_options_name['products_options_id']];
} else {
$selected_attribute = false;
}
}
?>
</table>
  #19 (permalink)  
Antiguo 17/11/2010, 10:30
 
Fecha de Ingreso: febrero-2010
Ubicación: cba
Mensajes: 203
Antigüedad: 14 años, 2 meses
Puntos: 16
Respuesta: tablas y while problemas...

prueba sacando todas las tablas de tu codigo, ( tr y td ) y copia tu codigo a donde dice AQUI PONES LOS DATOS QUE QUIERAS QUE SE CARGUEN en el mensaje anterior.
  #20 (permalink)  
Antiguo 17/11/2010, 14:56
 
Fecha de Ingreso: noviembre-2010
Mensajes: 4
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: tablas y while problemas...

Vuelvo a daros las gracias, respondeis muy rápido. Creo que he hecho lo que mes has dicho, pero sigo sin obtener resultados, pongo aquí una de las opciones que he utilizado en las pruebas, por si estoy cometiendo un fallo garrafal. Otra pregunta que tambien quería hacer es si no hay que modificar nada de esta línea:
while ($row=mysql_fetch_assoc($resultados)){


El codigo en estos momentos es este:
<?php


$products_attributes_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$languages_id . "'");
$products_attributes = tep_db_fetch_array($products_attributes_query);
if ($products_attributes['total'] > 0) {
?>
<?php

echo 'Cantidad';
echo 'Opcion';
/* uncomment if you want to show the model number echo TEXT_PRODUCT_MODEL; */
echo 'Precio';
?>
<?php
$X=0;

$products_options_name_query = tep_db_query("select distinct popt.products_options_id, popt.products_options_name from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$languages_id . "' order by popt.products_options_name");
while ($products_options_name = tep_db_fetch_array($products_options_name_query)) {
$products_options_array = array();
$products_options_query = tep_db_query("select pov.products_options_values_id, pov.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov where pa.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pa.options_id = '" . (int)$products_options_name['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . (int)$languages_id . "'");

while ($products_options = tep_db_fetch_array($products_options_query)) {
$products_options_array[] = array('id' => $products_options['products_options_values_id'], 'text' => $products_options['products_options_values_name']);
if ($products_options['options_values_price'] != '0') {
$products_options_array[sizeof($products_options_array)-1]['text'] .= ' (' . $products_options['price_prefix'] . $currencies->display_price($products_options['options_values_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) .') ';
if ($products_options['price_prefix'] == '+') {
$price_with_attribute = ($product_info['products_price'] + $products_options['options_values_price']);
} else {
$price_with_attribute = ($product_info['products_price'] - $products_options['options_values_price']);
}


$contador =1;
$num_col=7;
echo "<tr>";
while ($row=mysql_fetch_assoc($resultados)){
echo "<td>";
echo tep_draw_input_field('quantity[]',$value = '0',"size=2");
echo $products_options['products_options_values_name'];
echo tep_draw_hidden_field('a[]', $products_options['products_options_values_id']);
echo tep_draw_hidden_field('b[]',$products_options_name['products_options_id']);
echo $currencies->display_price($price_with_attribute, tep_get_tax_rate($product_info['products_tax_class_id']));

echo "</td>";
if ($contador == $num_col){
echo "</tr><tr>";
$contador=0;
}
$contador++;
}
//terminar de rellenar tablacon celdas...
if ($contador < $num_col){
$celdas_falt=$num_col - $contador;
while ($celdas_falt <= $num_col){
echo "<td>$nbsp</td>";
$celdas_falt++;
}
echo "</tr>";
}
$x++;
}
}

if (isset($cart->contents[$HTTP_GET_VARS['products_id']]['attributes'][$products_options_name['products_options_id']])) {
$selected_attribute = $cart->contents[$HTTP_GET_VARS['products_id']]['attributes'][$products_options_name['products_options_id']];
} else {
$selected_attribute = false;
}

/* ?>
<tr>
<td class="main"><?php echo $products_options_name['products_options_name'] . ':'; ?></td>
<td class="main"><?php echo tep_draw_pull_down_menu('id[' . $products_options_name['products_options_id'] . ']', $products_options_array, $selected_attribute); ?></td>
</tr>
<?php */
}
?>
  #21 (permalink)  
Antiguo 17/11/2010, 18:11
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 13 años, 7 meses
Puntos: 45
Respuesta: tablas y while problemas...

esa linea tendrias que modificarla dependiendo como se llame lavariable que contenga el resultado de tu SQL... (eso quiere decirque no he leido tu codigo)

ademas aconsejo que identes!!! usa el highlight del foro..empiezo a leer y es mucho desorden...
me gustaria a yudarte pero por favor identa!! que parami leer un codigo asi es fatal..
es solo un consejo..
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #22 (permalink)  
Antiguo 17/11/2010, 20:09
 
Fecha de Ingreso: febrero-2010
Ubicación: cba
Mensajes: 203
Antigüedad: 14 años, 2 meses
Puntos: 16
Respuesta: tablas y while problemas...

a donde dice while ($row=mysql_fetch_assoc($resultados)), esto era parte de mi codigo anterior, tu lo tienes que sacar, y me parece que tienes que poner todo tu codigo a donde dice AQUI PONES LOS DATOS QUE QUIERAS QUE SE CARGUEN. dime como te fue
  #23 (permalink)  
Antiguo 21/11/2010, 15:27
 
Fecha de Ingreso: noviembre-2010
Mensajes: 4
Antigüedad: 13 años, 5 meses
Puntos: 0
tablas y while problemas...

Gracias por responder ya casi se parece a lo que estaba buscando. Lo siento por no decir nada antes pero he tenido una avería en el ordenador y los ratos que tenía lo he dedicado a eso y dejé esto aparcado. Bueno, lo que parere que le falta es que las columnas sean las que yo quiera, por que si varío el número que hay detras de num_col=, con un 0 sale como una lista en horizontal sin fin y si pongo un 7 me sale en 2 columnas.

Código PHP:
Ver original
  1. <table border="0" cellspacing="0" cellpadding="2">
  2.             <tr>
  3.           <td class="main" align="center"><?php echo QUANTITY; ?></td>
  4.               <td class="main" align="center"><?php echo OPTION; ?></td>
  5.           <td class="main" align="center"><?php /*  uncomment if you want to show the model number echo TEXT_PRODUCT_MODEL; */ ?></td>
  6.           <td class="main" align="center"><?php /*  descomentar para mostrar el texto de precio echo TEXT_PRODUCT_PRICE; */?></td>
  7.  
  8.      </tr>
  9.     <?php
  10.          $X=0;
  11.       $products_options_name_query = tep_db_query("select distinct popt.products_options_id, popt.products_options_name from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$languages_id . "' order by popt.products_options_name");
  12.  
  13.  
  14.       while ($products_options_name = tep_db_fetch_array($products_options_name_query)) {
  15.  
  16.         $products_options_array = array();
  17.         $products_options_query = tep_db_query("select pov.products_options_values_id, pov.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov where pa.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pa.options_id = '" . (int)$products_options_name['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . (int)$languages_id . "'");
  18.  
  19. $contador =1;
  20.       $num_col=0;
  21.       echo "<tr>";
  22.  
  23.  
  24.         while ($products_options = tep_db_fetch_array($products_options_query)) {
  25. echo "<td>";
  26.           $products_options_array[] = array('id' => $products_options['products_options_values_id'], 'text' => $products_options['products_options_values_name']);
  27.           if ($products_options['options_values_price'] != '0') {
  28.             $products_options_array[sizeof($products_options_array)-1]['text'] .= ' (' . $products_options['price_prefix'] . $currencies->display_price($products_options['options_values_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) .') ';
  29. if ($products_options['price_prefix'] == '+') {
  30.            $price_with_attribute = ($product_info['products_price'] + $products_options['options_values_price']);
  31.     } else {
  32.        $price_with_attribute = ($product_info['products_price'] - $products_options['options_values_price']);
  33.        }
  34.  
  35.                 echo tep_draw_input_field('quantity[]',$value = '0',"size=2");
  36.                 echo $products_options['products_options_values_name'];
  37.             echo tep_draw_hidden_field('a[]', $products_options['products_options_values_id']);
  38.                 echo tep_draw_hidden_field('b[]',$products_options_name['products_options_id']);  /* uncomment if you want to show the model number
  39.               echo $product_info['products_model']; */
  40.         echo "</td>";
  41.  
  42.         if ($contador == $num_col){
  43.           echo "</tr><tr>";
  44.           $contador=0;
  45.         }
  46.         $contador++;
  47.      
  48.       //terminar de rellenar tablacon celdas...
  49.       if ($contador < $num_col){
  50.         $celdas_falt=$num_col - $contador;
  51.         while ($celdas_falt <= $num_col){
  52.     echo "<td>$nbsp</td>";
  53.           $celdas_falt++;
  54.         }
  55.         echo "</tr>";
  56.      
  57.  }
  58.       $x++;
  59.           }
  60.         }
  61.         if (isset($cart->contents[$HTTP_GET_VARS['products_id']]['attributes'][$products_options_name['products_options_id']])) {
  62.           $selected_attribute = $cart->contents[$HTTP_GET_VARS['products_id']]['attributes'][$products_options_name['products_options_id']];
  63.         } else {
  64.           $selected_attribute = false;
  65.         }
  66.       }
  67. ?>
  68.           </table>
  #24 (permalink)  
Antiguo 22/11/2010, 11:01
 
Fecha de Ingreso: febrero-2010
Ubicación: cba
Mensajes: 203
Antigüedad: 14 años, 2 meses
Puntos: 16
Respuesta: tablas y while problemas...

prueba de esta forma:

Código PHP:
  <table border="0" cellspacing="0" cellpadding="2">
   
                  <tr>
   
                <td class="main" align="center"><?php echo QUANTITY?></td>
   
                    <td class="main" align="center"><?php echo OPTION?></td>
   
                <td class="main" align="center"><?php /*  uncomment if you want to show the model number echo TEXT_PRODUCT_MODEL; */ ?></td>
   
                <td class="main" align="center"><?php /*  descomentar para mostrar el texto de precio echo TEXT_PRODUCT_PRICE; */?></td>
   
       
   
           </tr>


   
    

          <?php
            $contador 
=1;
  
            
$num_col=7;
  
            echo 
"<tr>";
  
               
$X=0;
  
            
$products_options_name_query tep_db_query("select distinct popt.products_options_id, popt.products_options_name from " TABLE_PRODUCTS_OPTIONS " popt, " TABLE_PRODUCTS_ATTRIBUTES " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$languages_id "' order by popt.products_options_name");
  
       
  
       
  
            while (
$products_options_name tep_db_fetch_array($products_options_name_query)) {
  
       
  
              
$products_options_array = array();
  
              
$products_options_query tep_db_query("select pov.products_options_values_id, pov.products_options_values_name, pa.options_values_price, pa.price_prefix from " TABLE_PRODUCTS_ATTRIBUTES " pa, " TABLE_PRODUCTS_OPTIONS_VALUES " pov where pa.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pa.options_id = '" . (int)$products_options_name['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . (int)$languages_id "'");
  
       
  
    
  
       
  
       
  
              while (
$products_options tep_db_fetch_array($products_options_query)) {
  
      echo 
"<td>";
  
                
$products_options_array[] = array('id' => $products_options['products_options_values_id'], 'text' => $products_options['products_options_values_name']);
  
                if (
$products_options['options_values_price'] != '0') {
  
                  
$products_options_array[sizeof($products_options_array)-1]['text'] .= ' (' $products_options['price_prefix'] . $currencies->display_price($products_options['options_values_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) .') ';
  
      if (
$products_options['price_prefix'] == '+') {
  
                 
$price_with_attribute = ($product_info['products_price'] + $products_options['options_values_price']);
  
          } else {
  
             
$price_with_attribute = ($product_info['products_price'] - $products_options['options_values_price']);
  
             }
  
       
  
                      echo 
tep_draw_input_field('quantity[]',$value '0',"size=2");
  
                      echo 
$products_options['products_options_values_name'];
  
                  echo 
tep_draw_hidden_field('a[]'$products_options['products_options_values_id']);
  
                      echo 
tep_draw_hidden_field('b[]',$products_options_name['products_options_id']);  /* uncomment if you want to show the model number
  
                    echo $product_info['products_model']; */
  
              
echo "</td>";
  
       
  
              if (
$contador == $num_col){
  
                echo 
"</tr><tr>";
  
                
$contador=0;
 
              }

              
$contador++;

           }
           }

            
//terminar de rellenar tablacon celdas...

            
if ($contador $num_col){
 
              
$celdas_falt=$num_col $contador;

              while (
$celdas_falt <= $num_col){

          echo 
"<td>$nbsp</td>";

                
$celdas_falt++;
  
              }
  
              echo 
"</tr>";

           
 
       }
 
            
$x++;

                
  
              
  
              if (isset(
$cart->contents[$HTTP_GET_VARS['products_id']]['attributes'][$products_options_name['products_options_id']])) {
  
                
$selected_attribute $cart->contents[$HTTP_GET_VARS['products_id']]['attributes'][$products_options_name['products_options_id']];
  
              } else {
  
                
$selected_attribute false;
  
              }
  
            }

      
?>
  
                </table>

Etiquetas: tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:52.