• User Newbie

    Aiuto per un form in php

    Buongiorno a tutti!
    vengo subito al mio problema...
    ho un form che preleva dati dal DB in due tabelle, in una ci sono i nomi delle specifiche di alcuni prodotti e nell'altra le specifiche vere e proprie... ad esempio nome_specifiche = Colore e specifica = rosso, ora il problema è che quando ho due prodotti a confronto i nomi delle specifiche possono essere uguali e io dovrei visualizzarli una sola volta, nella prima colonna e le specifiche invece dovrebbe andarsi a posizionare nelle colonne accanto

             Prodotto 1       Prodotto2
    

    Colore Rosso Verde

    Come posso fare?
    grazie mille a tutti e buon pranzo o digestione! 🙂
    :ciauz:


  • User

    Ciao reeda80 perche non provi a postarci la query cosi magari vediamo come la hai istrutturata?


  • User Newbie

    Eccolo!

    [PHP]<?php
    $sql = " SELECT

    id_prodotto,
    nome_specifica,
    specifica
    
    FROM prodotti 
    LEFT JOIN specifiche USING(products_id)
    LEFT JOIN nome_specifica ON specifiche.id_specifiche=nome_specifica.id_nome_specifica
    WHERE ";
    

    for ($i=0; $i < sizeof($HTTP_POST_VARS['confronta']); $i++)
    {
    $sql .= "id_prodotto='".$HTTP_POST_VARS['confronta']*."'";
    if (($i + 1) < sizeof($HTTP_POST_VARS['confronta'])){ $sql .= " OR "; }
    }

    $risulta= mysql_query($sql);
    $riga= mysql_fetch_array($risulta);
    $totale= mysql_num_rows($risulta);?>

    <?php do

    { ?>

    <table class="confronta" width="98%" style="margin:auto;" align="right" border="1" cellpadding="2" cellspacing="1" >
    <tr>
    <td width="187.95">
    <table>

    <tr><td width="187.95"><?php echo '<b>'."$riga[nome_specifica]";?>
    </td></tr>

    </table>
    </td>

    <td>
    <table>

    <tr><td><?php echo "$riga[specifiche]";?></td></tr>

    </table>
    </td>
    <?php } while ($riga=mysql_fetch_array($risulta));?>

    <p> </p>
    </tr>
    </table>[/PHP]


  • User

    Ciao reeda80 ci sono un sacco di errori del code io te l'ho semplificato un po' prova cosi se non ti funziona dimmi come hai organizato le tabelle nel database e vediamo, ci sono anche dei errori nella query, quando fai SELECT e scrivi i campi devi mettere prima il nome della tabella dove si trova il campo e poi il campo esempio: nometabella.nomecampo

    [PHP]
    <?php
    $sql = "SELECT id_prodotto, nome_specifica, specifica
    FROM prodotti
    GROUP BY specifica
    LEFT JOIN specifiche USING(products_id)
    LEFT JOIN nome_specifica ON specifiche.id_specifiche=nome_specifica.id_nome_specifica
    WHERE ";

    for ($i=0; $i < sizeof($_POST['confronta']); $i++)
    {
    $sql .= "id_prodotto='".$_POST['confronta']*."'";

    if(($i + 1) < sizeof($_POST['confronta']))
      { 
       $sql .= " OR "; 
      }
    

    }

    $risulta= mysql_query($sql);
    $totale= mysql_num_rows($risulta);

    while($riga=mysql_fetch_array($risulta))
    {
    echo'
    <table class="confronta" width="98%" style="margin:auto;" align="right" border="1" cellpadding="2" cellspacing="1" >
    <tr>
    <td>
    <b>'.$riga['nome_specifica'].'</b>
    </td>
    <td>
    '.$riga['specifiche'].'
    </td>
    </tr>
    </table>';
    }
    ?>
    [/PHP]