Foros del Web » Programando para Internet » PHP »

carrito compra !

Estas en el tema de carrito compra ! en el foro de PHP en Foros del Web. Saludos! les escribo para ver si pueden darme alguna ayuda para mi carrito de compras, les explico: tengo una tabla en la bd que contiene ...
  #1 (permalink)  
Antiguo 18/04/2011, 08:16
Avatar de rockex  
Fecha de Ingreso: diciembre-2008
Mensajes: 45
Antigüedad: 15 años, 4 meses
Puntos: 0
carrito compra !

Saludos!
les escribo para ver si pueden darme alguna ayuda para mi carrito de compras, les explico:

tengo una tabla en la bd que contiene 3 campos: imagen,nomprod,precio.
Como veran realizo una query y llamo a los datos mostrandolos en una tabla, el problema es que los muestro de la sgte manera.

|imagen | nomproducto | precio |

y yo lo quiero mostrar asi:

|Imagen| |Imagen| |Imagen|
|nomproducto| |nomproducto| |nomproducto|
|precio| |precio| |precio|


con el fin de poder meter mas productos en la pantalla, esto lo recorro con un while y me los va generando.

Código PHP:

<table width="200px" height="200" border="1" align="center">


<?php
//mostramos todos nuestros artículos, viendo si han sido agregados o no a nuestro carro de compra
while($row=mysql_fetch_assoc($qry)){
?>


<?php

if(condicion)
{
echo 
"<tr>";
}
?>


<td height="150" bgcolor="#CCCCCC" align="center">
<?php echo "<img src=\"ver.php?id=".$row['imagen']."\">"  ?>
</td>

<td height="150" bgcolor="#CCCCCC" align="center">
<?php echo $row['producto'?>
</td>

<td height="150" bgcolor="#CCCCCC" align="center">
<?php echo $row['precio'?>
</td>



<?php

if(condicion)
{
echo 
"</tr>";
}
?>




// fin del while
<? php ?>


</table>

ESPERO ME PUEDAN AYUDAR, GRACIAS.
  #2 (permalink)  
Antiguo 18/04/2011, 15:58
 
Fecha de Ingreso: agosto-2010
Mensajes: 100
Antigüedad: 13 años, 7 meses
Puntos: 2
Respuesta: carrito compra !

Bien, en hmtl están los tags <tr> (para filas) y <td> (para columnas de la fila).
Simplemente imprimí:
Código HTML:
Ver original
  1. <tr>
  2.     <td> imagen1 </td>
  3.     <td> imagen2 </td>
  4.     <td> imagen3 </td>
  5. </tr>
  6.     <tr> nomprod1 </td>
  7.     <tr> nomprod2 </td>
  8.     <tr> nomprod3 </td>
  9. </tr>
  10. <tr>
  11.     <td> precio1 </td>
  12.     <td> precio2 </td>
  13.     <td> precio3 </td>
  14. </tr>
Espero haberte ayudado.
  #3 (permalink)  
Antiguo 19/04/2011, 07:19
Avatar de rockex  
Fecha de Ingreso: diciembre-2008
Mensajes: 45
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: carrito compra !

Saludos Ramiromd
te queria agradecer tu respuesta, pero para ser mas explicito
yo quiero eso mismo que tu has puesto pero con datos desde la base de datos,
o sea que un while me llene esos campos y me genere automaticamente los <TR> y los <TD>
espero haberme explicado.
Espero me puedan dar una ayuda, Gracias.
  #4 (permalink)  
Antiguo 19/04/2011, 09:25
 
Fecha de Ingreso: abril-2011
Ubicación: Iquitos, Peru
Mensajes: 113
Antigüedad: 13 años
Puntos: 31
Respuesta: carrito compra !

bueno amigo, cuando haces un carrito de compra no se interactua con base de datos, se trabaja con sesiones, recien utilizas la BD cuando vas a guardar los valores...pero bueno si quieres mostrar todos tus datos de una tabvle te puedo ayudar:

Código PHP:
$sql = ("tu_consulta");

$consulta mysql_query($sql$conexion);
$nfilas mysql_num_rows($consulta);
if(
$nfilas>0)
{
    echo 
"<table>";
    for(
$i=1$i<=$nfilas$i++)
    {
    
$fila mysql_fetch_array($consulta);
        echo 
"<tr>";
        echo(
"    <td><img src='ver.php?id=".$fila['imagen']." '></td>");
        echo(
"    <td>".$fila['producto']."</td>");
        echo(
"    <td>".$fila['precio']."</td>");
        echo 
"<tr>";
        }
    echo 
"<table>";

  #5 (permalink)  
Antiguo 20/04/2011, 07:43
Avatar de rockex  
Fecha de Ingreso: diciembre-2008
Mensajes: 45
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: carrito compra !

Saludos JMSystem
te quiero agradecer por tu respuesta tan veloz!, y probare como me anda el codigo.
Te respondo apenas llege a mi casa, pues ando en el trabajo >_<!
saludos amigo, te pasaste =)
gracias.
  #6 (permalink)  
Antiguo 20/04/2011, 08:44
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: carrito compra !

Ese código no funcionará, al menos no como quiere @rockex, ya que al final obtendrá:

|imagen | nomproducto | precio |
|imagen | nomproducto | precio |
|imagen | nomproducto | precio |

en vez de:

|Imagen| |Imagen| |Imagen|
|nomproducto| |nomproducto| |nomproducto|
|precio| |precio| |precio|

Para lograr lo que quieres es algo como esto, lo hice rapido y no lo probe, puede que tenga errores:

Código PHP:
Ver original
  1. $sql = 'select * from bla bla';
  2. $query = mysql_query($sql);
  3.  
  4. $numItems = mysql_num_rows($query);
  5.  
  6. $rowImagen = array();
  7. $rowProducto = array();
  8. $rowPrecio = array();
  9.  
  10. while($result = mysql_fetch_assoc($query)) {
  11.     $rowImagen[] = $result['imagen'];
  12.     $rowProducto[] = $result['producto'];
  13.     $rowPrecio[] = $result['precio'];
  14. }
  15.  
  16. $imagenes = '';
  17. $productos = '';
  18. $precios = '';
  19.  
  20. for($i=0; $i<$numItems; $i++) {
  21.     $imagenes .= '<td>'.$rowImagen[$i].'</td>';
  22.     $productos .= '<td>'.$rowProducto[$i].'</td>';
  23.     $precios .= '<td>'.$rowPrecio[$i].'</td>';
  24. }
  25.  
  26. echo '<table>';
  27. echo '<tr>';
  28. echo $imagenes;
  29. echo '</tr>';
  30. echo '<tr>';
  31. echo $productos;
  32. echo '</tr>';
  33. echo '<tr>';
  34. echo $precios;
  35. echo '</tr>';
  36. echo '</table>';
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #7 (permalink)  
Antiguo 20/04/2011, 11:06
 
Fecha de Ingreso: abril-2011
Ubicación: Iquitos, Peru
Mensajes: 113
Antigüedad: 13 años
Puntos: 31
Respuesta: carrito compra !

Cita:
Iniciado por Nemutagk Ver Mensaje
Ese código no funcionará, al menos no como quiere @rockex,
amigo yo hize el ejemplo tal como vi en el ejemplo que rockex puso, no como ramiromd hizo, tal como tu pusiste...ahora si rockex lo quiere de esa manera lo puedo modificar y listo
  #8 (permalink)  
Antiguo 20/04/2011, 12:13
(Desactivado)
 
Fecha de Ingreso: enero-2011
Mensajes: 293
Antigüedad: 13 años, 3 meses
Puntos: 4
Respuesta: carrito compra !

¿Y por que lo quiere triplicado ?

Cita:
|Imagen| |Imagen| |Imagen|
|nomproducto| |nomproducto| |nomproducto|
|precio| |precio| |precio|
ç



¿Esta loco?
  #9 (permalink)  
Antiguo 29/04/2011, 12:27
Avatar de rockex  
Fecha de Ingreso: diciembre-2008
Mensajes: 45
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: carrito compra !

Saludos amigos, primero que nada les quiero agradecer por su atencion al responderme mis dudas y ayudarme en especial a JMSystem y Nemutagk.
De todas las soluciones Nemutagk le acerto a lo que apuntaba mi idea, aunque igual le estoy agradecido a JMSystem por su intencion de ayudar :D

Ahora quiero pedir un ultimo aventon que necesito referente a la idea de Nemutagk
el cual consiste en dar un break al listado de productos que apareceran en esta tabla.

Me explico:
El listado me genera productos de esta manera segun cuantos productos tenga,
hasta ahi vamos bien pero, necesito que estos corten de 5 en 5 y sigan generandose normalmente con esa condicion.

Ejemplo:

|Imagen| |Imagen| |Imagen||Imagen| |Imagen|
|nomproducto| |nomproducto| |nomproducto| |nomproducto| |nomproducto|
|precio| |precio| |precio||precio| |precio|


|Imagen| |Imagen| |Imagen||Imagen| |Imagen|
|nomproducto| |nomproducto| |nomproducto| |nomproducto| |nomproducto|
|precio| |precio| |precio||precio| |precio|


etc.... etc...

Todo esto con el fin de ocupar de mejor manera el espacio de la pagina.Asi cupen mas productos en la pantalla.


el codigo es el mismo:


Código PHP:


      $sql 
'select * from bla bla';

      
$query mysql_query($sql);
      

      
$numItems mysql_num_rows($query);

       
      
$rowImagen = array();
      
$rowProducto = array();
      
$rowPrecio = array();
       
        while(
$result mysql_fetch_assoc($query)) {

          
$rowImagen[] = $result['imagen'];
          
$rowProducto[] = $result['producto'];
          
$rowPrecio[] = $result['precio'];

      }

      
$imagenes '';
      
$productos '';
      
$precios '';
       

      for(
$i=0$i<$numItems$i++) {

          
$imagenes .= '<td>'.$rowImagen[$i].'</td>';
  
          
$productos .= '<td>'.$rowProducto[$i].'</td>';

          
$precios .= '<td>'.$rowPrecio[$i].'</td>';

      }
      

      echo 
'<table>';
      echo 
'<tr>';
      echo 
$imagenes;
      echo 
'</tr>';
      echo 
'<tr>';
      echo 
$productos;
      echo 
'</tr>';
      echo 
'<tr>';
      echo 
$precios;
      echo 
'</tr>';
      echo 
'</table>'
Yo trate de colocar unos tr entremedio del for pero no me resulto T_T espero me puedan ayudar. Se agradece su ayuda amigos.

PD: disculpen si demore para responder pero, no tengo internet en mi casa se agradece su ayuda :)
  #10 (permalink)  
Antiguo 29/04/2011, 12:31
Avatar de rockex  
Fecha de Ingreso: diciembre-2008
Mensajes: 45
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: carrito compra !

Cita:
Iniciado por yooom Ver Mensaje
¿Y por que lo quiere triplicado ?

ç



¿Esta loco?


Saludos yooom, no lo quiero triplicado. Entendiste mal al parecer.
Lo que yo quiero y necesito es que la aparicion de productos sea mas compacta para que cupan mas en un mismo espacio, ya que si se listaran hacia abajo
como comunmente se hace , no podria colocar muchos productos y tendria que hacer un tipo de paginacion de productos la cual creo que debe ser mas engorroza.
en fin se agradece el siquiera leer el comentario :)
  #11 (permalink)  
Antiguo 29/04/2011, 12:39
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: carrito compra !

Realmente seria algo muy sencillo, seria algo así...

Código PHP:
Ver original
  1. $sql = 'select * from bla bla';
  2. $query = mysql_query($sql);
  3.  
  4. $rowImagen = array();
  5. $rowProducto = array();
  6. $rowPrecio = array();
  7.  
  8. while($result = mysql_fetch_assoc($query)) {
  9.     $rowImagen[] = $result['imagen'];
  10.     $rowProducto[] = $result['producto'];
  11.     $rowPrecio[] = $result['precio'];
  12. }
  13.  
  14. $imagenes = array();
  15. $productos = array();
  16. $precios = array();
  17.  
  18. $numItemRow = 1;
  19. $indexRow = 0;
  20.  
  21. for($i=0; $i<$numItems; $i++) {
  22.     $imagenes[$indexRow] .= '<td>'.$rowImagen[$i].'</td>';
  23.     $productos[$indexRow] .= '<td>'.$rowProducto[$i].'</td>';
  24.     $precios[$indexRow] .= '<td>'.$rowPrecio[$i].'</td>';
  25.  
  26.     if ($numItemRow == 5) {
  27.         $indexRow++;
  28.         $numItemRow = 1;
  29.     }else {
  30.         $numItemRow++;
  31.     }
  32. }
  33.  
  34. echo '<table>';
  35. for($a=0; $a<$indexRow; $a++) {
  36.     echo '<tr>';
  37.     echo $imagenes[$a];
  38.     echo '</tr>';
  39.     echo '<tr>';
  40.     echo $productos[$a];
  41.     echo '</tr>';
  42.     echo '<tr>';
  43.     echo $precios[$a];
  44.     echo '</tr>';
  45. }
  46. echo '</table>';

De nuevo, no probé el código, pero debería hacer lo que necesitas

Nota: Por cierto, el numero de items por fila se define en esta linea:

Código PHP:
Ver original
  1. if ($numItemRow == 5) {

Por ejemplo, si quisieras 10 items en vez de 5 lo cambias por:
Código PHP:
Ver original
  1. if ($numItemRow == 10) {
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #12 (permalink)  
Antiguo 29/04/2011, 12:42
Avatar de rockex  
Fecha de Ingreso: diciembre-2008
Mensajes: 45
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: carrito compra !

Muchas gracias nuevamente Nemutagk, te agradesco mucho tu ayuda :D
y bueno lo probare al llegar a casa, se agradece nuevamente ^^
  #13 (permalink)  
Antiguo 29/04/2011, 12:47
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: carrito compra !

Solo una cosa, después de analizar el código este es "funcional" mientras no muestres muchos "items" a la vez, ya que recurrimos a bucles (3 para ser exactos), por lo cual, si muestras muchos items puede alentar demasiado la carga de la página, tal como dices puede ayudar a mostrar mas items por pagina, pero definitivamente no es un suplemento para eliminar la paginación.
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #14 (permalink)  
Antiguo 29/04/2011, 12:57
Avatar de rockex  
Fecha de Ingreso: diciembre-2008
Mensajes: 45
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: carrito compra !

Gracias por tu comentario Nemutagk :)
lo tendre en cuenta si la cantidad de productos son demasiados.
Espero que con unos 30 a 40 productos no se comporte mal, de todos modos lo probare y te cuento, gracias :)

Etiquetas: carrito, compra
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 16:11.