Visualizzazione risultati 1 fino 6 di 6

Discussione: evitare array doppioni

  1. #1
    Guest

    Predefinito evitare array doppioni

    Una volta estratti una serie di array da una query, avrei bisogno di eliminare gli array che hanno uno stesso elemento in comune, il tutto dentro ad un ciclo while.

    Codice PHP:
    <?php
    $f
    =0;
    while (
    $f < $numprod) {
    $listap=mysql_fetch_assoc($prod);
    echo
    $listap['modello'];
    $f++;
    }
    ?>
    Non so se mi sono spiegato

  2. #2
    Guest

    Predefinito

    Spiegati meglio per favore

  3. #3
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Sarebbe meglio assicurarsi che la query che esegui sul database non ti restituisca i doppioni. Hai fatto tutti i controlli necessari in SQL?

    Altrimenti, puoi usare array_unique() per i casi semplici o array_filter per quelli più complessi.

  4. #4
    Guest

    Predefinito

    Citazione Originalmente inviato da federlest Visualizza messaggio
    Spiegati meglio per favore
    Allora, ecco quello che ho fatto:
    1. eseguo la query
    Codice PHP:
    $prod=mysql_query("SELECT * FROM prodotto WHERE marca='$vero' ORDER BY modello ASC") or die(mysql_error());
    su una tabella che contiene id, marca, modello, nome, ecc ecc.

    2. conto i record estratti
    Codice PHP:
    $numprod=mysql_numrows($prod);
    3. creo un ciclo while e creo gli array dalla query con mysql_fetch-assoc
    Codice PHP:
    <?php
    $f
    =0;
    while (
    $f < $numprod) {
    $listap=mysql_fetch_assoc($prod);
    echo
    $listap['modello'];
    $f++;
    }
    ?>
    Ora il problema è che potrebbero esserci più $listap['modello'] uguali fra di loro, mentre io voglio che vengano stampati solo una volta per ognuno. Usando array_unique() con $listap['modello'] credo che elimini quelli identici in ogni campo, o no?

  5. #5
    Guest

    Predefinito

    Ciao, ti basta fare come ti ha detto dreadnaut. Se nel tuo while hai bisogno di sapere solo il modello, puoi usare il SELECT DISTINCT:
    Codice:
    SELECT DISTINCT modello FROM prodotto WHERE marca='$vero' ORDER BY modello ASC

  6. #6
    Guest

    Predefinito

    Citazione Originalmente inviato da noktalk Visualizza messaggio
    Ciao, ti basta fare come ti ha detto dreadnaut. Se nel tuo while hai bisogno di sapere solo il modello, puoi usare il SELECT DISTINCT:
    Codice:
    SELECT DISTINCT modello FROM prodotto WHERE marca='$vero' ORDER BY modello ASC
    Mi era sufficiente sapere solo il modello, quindi è bastato usare SELECT DISTINCT che non conoscevo, grazie mille

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •