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

    mostrare prodotti contenuti in più categorie con una select

    avendo una struttura del database come questa

    codice:
    NOME PRODOTTO   || CATEGORIE DI RIFERIMENTO
    --------------------------------------------
    nome_prodotto_1 || 1
    nome_prodotto_2 || 1,15
    nome_prodotto_3 || 1,37,42
    nome_prodotto_4 || 51
    come posso fare a recuperare tutti i prodotti di una categoria ben precisa?

    nella pagina che mostra i risultati ho inserito una select come questa ma, ovviamente, mostra i prodotti che hanno solamente quella categoria (nel caso dell'esempio, "nome_prodotto_1").

    Codice PHP:
    $categoria_id $_REQUEST['id'];

    $sql "SELECT * FROM tabella WHERE categoria_di_riferimento = '$categoria_id';"
    se "$categoria_id = 1;", mostra infatti solamente il primo prodotto, e non anche il secondo ed il terzo. qual è, quindi, il modo corretto per scrivere questa select?

    grazie in anticipo

  2. #2
    Studio php da pochi mesi, pertanto spero di non dire una stupidata . Penso che prima di tutto dovresti utilizzare la funzione fetch array per inglobare il risultato ottenuto dalla select in un array; dopo dovresti utilizzare un ciclo: while, for ecc ecc per permettere di visualizzare tutti i risultati.

    while ($risultati = mysql_fetch_array($select)) {
    echo $risultati['nome'];
    echo "
    ";
    echo $risultati['descrizione'];
    echo "
    ";
    }

    oppure


    $risultato = mysql_query("select * from tabella");
    $j=0;
    while ($riga[$j] = mysql_fetch_array($risultato)) {
    echo $riga[$j]['campo1'];
    echo $riga[$j]['campo2'];
    //etc...
    $j++;
    }

  3. #3
    la funzione "mysql_fetch_array" la uso esattamente dopo con un ciclo while per mostrare tutti gli articoli di quella categoria.

    il problema però è a monte. quando faccio la select, io dico di prelevare tutti gli elementi che hanno come categoria un determinato valore. alcuni prodotti, però, si appoggiano a più categorie differenti e qui scatta il problema.

    se, come nell'esempio precedente, l'id della categoria è 1, dovrebbe mostrarmi "nome_prodotto_1", "nome_prodotto_2" e "nome_prodotto_3". se l'id è 51 dovrebbe mostrarmi solo "nome_prodotto_4" o se l'id è 37 dovrebbe mostrare solo "nome_prodotto_3".

    questo però non avviene perchè così com'è scritta la select, se l'id è 1 mi mostra solo il primo prodotto ("nome_prodotto_1").

    come posso fare?

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.