Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    problema con query (vetrina articoli)

    Ciao Ragazzi, Sul mio sito ho una pagina di vetrina prodotti, chiedendo categoria e tipo del prodotto con $_REQUEST, le assegno alle variabili php ed eseguo la query.
    Fin qui tutto ok, ho un problema nel ciclo però
    Il seguente ciclo che uso genera un incolonnamento verticale degli articoli elencati, uno per ogni riga, ed è incluso in un div, per intenderci dà un responso del tipo:

    articolo1 - 15,90€
    articolo2 - 25,90€
    articolo3 - 35,90€
    articolo4 - 45,90€

    Io vorrei ottenere una cosa del tipo:

    articolo1 - 15,90€ | articolo2 - 25,90€
    articolo3 - 35,90€ | articolo4 - 45,90€

    Quindi un ciclo con incolonnamento di 2 articoli (anzichè uno) per riga.

    Come fare? chi mi dà una mano?

    Ecco il codice che uso:
    Codice PHP:
    <?php
     $query 
    "select codice from articoli where categoria = '$cat' and tipo = '$tipo' and vetrina='si'";
     
    $dbResult mysql_query($query$conn);
     
    $AffectedRows mysql_affected_rows($conn);
          
          if (
    $AffectedRows==0)
        {
          print(
    "<p align=\"center\">Articolo non disponile.</p>");
        }
        else
        {
        print (
    "<p align=\"center\">$AffectedRows articoli trovati.</p>");
        for (
    $index=$index<$AffectedRows $index++)
            {
            
    $row mysql_fetch_row($dbResult);
            
            foreach (
    $row as $k => $v)
            { 
             print 
    "<div id=\"articolo\">";
             print (
    "<a href=\"dettagli.php?cod=$v\">
             

    <img src=\"img/
    $v.png\"></a></p>
             

    <a href=\"img_big/
    $v.jpg\"><img src=\"img/zoom.png\" border=\"0\"></a>
             <font color=\"#666666\">codice: [b]
    $v[/b]</font></p>");
                                 
            
    $risultato mysql_query("select id,denominazione, prezzo from articoli where codice='$v'");
            if (!
    $risultato) { exit('

    Error performing query: ' 
    mysql_error() . '</p>'); }
            while (
    $dati mysql_fetch_array($risultato))
                { 
                echo 
    '

    [b]_' 
    $dati['denominazione'] . '_[/b]</p>
                    

    [b]_' 
    number_format($dati['prezzo'], 2","".") .'_€_[/b]

                    <a href="carrello.php?action=aggiungi&id='
    .$dati['id'].'" target="corpo">
                    [img]img/carrello.png[/img]</a>
                    </p></div>
    '
    ; }   
                print (
    "");
                }
            print 
    "";
        }    
        print 
    "";
    }
    ?>
    www.gicchesto.com
    Servizi informatici ed elettronici a 360° per aziende e/o privati.

  2. #2
    Codice PHP:
    <?   $prodotti = array('Art1 - 25 euro','Art2 - 25 euro','Art3 - 25 euro','Art4 - 25 euro','Art5 - 56euro''Art6 - 20 euro');
     
    $num_prod count($prodotti);
     echo 
    '<table>';
     
    $i=0;
     
    $w=1;
     while(
    $i<$num_prod)
     {     echo 
    "<tr><td>".$prodotti[$i]."</td>
                          <td>| "
    .$prodotti[$w]."</td> 
                          </tr>"

                           
    $i $i 2;
                           
    $w $w 2; }
     echo 
    '</table>'?>
    Spero ti sia utile

  3. #3
    Yes una cosa del genere Giuse, il problema è che devo adattarlo al mio codice, mmm ci sto provando...
    www.gicchesto.com
    Servizi informatici ed elettronici a 360° per aziende e/o privati.

  4. #4
    Prova a cambiare l'ultima parte de codice così...
    (premetto che non l'ho testata)

    Codice PHP:
        $risultato mysql_query("select id,denominazione, prezzo from articoli where codice='$v'");
        if (!
    $risultato) { exit('

    Error performing query: ' 
    mysql_error() . '</p>'); } 
        
    $count=0;
        echo 
    '<TABLE border="1">';//creiamo una tabella
        
    while ($dati mysql_fetch_array($risultato))
        {
                
    count++; //contiamo
                
    if ($count %2//se è il secondo della coppia
                
    {
                    echo 
    '<TD>

    [b]_' 
    $dati['denominazione'] . '_[/b]</p>
                        

    [b]_' 
    number_format($dati['prezzo'], 2","".") .'_€_[/b]

                        <a href="carrello.php?action=aggiungi&id='
    .$dati['id'].'" target="corpo">
                        [img]img/carrello.png[/img]</a>
                        </p></div>
    '
    ; }   
                    print (
    "");
                    echo 
    '</TD></TR>';//chiudiamo la riga della tabella
            
    }
            else 
            {
                        echo 
    '<TR><TD>

    [b]_' 
    $dati['denominazione'] . '_[/b]</p>
                        

    [b]_' 
    number_format($dati['prezzo'], 2","".") .'_€_[/b]

                        <a href="carrello.php?action=aggiungi&id='
    .$dati['id'].'" target="corpo">
                        [img]img/carrello.png[/img]</a>
                        </p></div>
    '
    ; }   
                    print (
    "");
                    echo 
    '</TD>';
            
            
            
            }
            
        } 
        if (
    $count %2)echo '</TABLE>'
        else 
    '<TD> &nbsp </TD></TR></TABLE>'

    è la soluzione più immediata per non modificare troppo il tuo codice....
    Però ci sarebbero un mare di cose da ottimizzare... soprattutto a livello di select...

  5. #5
    Grazie per le vostre risposte,

    In effetti è la soluzione migliore per non modificare troppo il mio codice,
    Faccio un po di prove con lo snippet che mi hai fornito e vedo di adattarlo e ripulire
    e ottimizzare il codice per un miglior funzionamento dopo.

    mmm non credo di dire nulla di nuovo, se penso che molti programmatori, come me
    vivono di snippet, fare un programma del genere da 0 ha poco senso visto che si trova
    di tutto pronto, e ai fini di tempo è piu facile prendere e adattare che implementare da 0.

    In realtà speravo di avere qualche snippet vetrina da select in db che splittasse i prodotti
    a schermo a 2, 3, o 4 alla volta già pronto, ma comunque vedrò di adattare il mio caso
    al codice da te fornito, Grazie v faccio sapere
    www.gicchesto.com
    Servizi informatici ed elettronici a 360° per aziende e/o privati.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.