Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    234

    Ordinare array in una query

    Ciao a tutti..sto cercando di ordinare un array di valori in base al valore di un campo di una tabella..

    Codice PHP:
    $link=array($d1,$d2,$d3,$d4,$d5,$d6,$d7,$d8,$d9,$d10);

    foreach (
    $link as $a){
        
    $q3"SELECT * FROM table WHERE nome = '$a' ORDER BY ordine ASC";
        
    $r3 MYSQL_QUERY($q3);
        while (
    $row3 mysql_fetch_array($r3)){
            print 
    "[*]$a";
        }
    }; 
    ma in questo modo continua ad ordinarmeli per come sono elencati nell'array..fregandosene dell'order by..
    Dove sabaglio?

  2. #2
    Ciao, con il tuo codice effettui n query quanti sono i valori dell'array...
    prova così:
    Codice PHP:
    $link=array($d1,$d2,$d3,$d4,$d5,$d6,$d7,$d8,$d9,$d10);

        
    $q3"SELECT * FROM table WHERE nome IN ('".implode("', '"$a)."')  ORDER BY ordine ASC";
        
    $r3 MYSQL_QUERY($q3);
        while (
    $row3 mysql_fetch_array($r3)){
            print 
    "[*]$a";
        }; 
    In questo modo tu effettui una sola query dove il campo nome è uguale ad ognuno dei volori dell'array $link

    Spero che questo ti sia di aiuto.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    234
    ciao testapazza!
    grazie dell'intervento..
    così però mi da errore sull'implode()

  4. #4
    hai ragione...
    aggiustato...
    Codice PHP:
    $link=array($d1,$d2,$d3,$d4,$d5,$d6,$d7,$d8,$d9,$d10);

        
    $q3"SELECT * FROM table WHERE nome IN ('".implode("', '"$link)."')  ORDER BY ordine ASC";
        
    $r3 MYSQL_QUERY($q3);
        while (
    $row3 mysql_fetch_array($r3)){
            print 
    "[*]$row3['NOME CAMPO']";
        }; 
    cambia NOME CAMPO con il campo che vuoi che venga stampato...

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    234
    Perfetta
    Grazie mille!!!

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    234
    Torno sull'argomento perchè vorrei associare i valori di due array..
    $namelink=array($d1,$d2,$d3,$d4,$d5,$d6,$d7,$d8,$d 9,$d10);
    $link=array($l1,$l2,$l3,$l4,$l5,$l6,$l7,$l8,$l9,$l 10);

    vorrei associare il valore del link a quello del nome

    Codice PHP:
    $q3"SELECT * FROM table WHERE nome IN ('".implode("', '"$link)."') ORDER BY ordine ASC";
    $r3 MYSQL_QUERY($q3);
    while (
    $row3 mysql_fetch_array($r3)){
        print 
    "[*]<a href=\"[B]?[/B]\" target=\"_blank\">$row3[nome]";
    }; 

  7. #7
    arieccomi...
    solo se i due array hanno sempre lo stesso ordine:
    Codice PHP:
    $namelink=array($d1,$d2,$d3,$d4,$d5,$d6,$d7,$d8,$d9,$d10);
    $link=array($l1,$l2,$l3,$l4,$l5,$l6,$l7,$l8,$l9,$l10);

    $q3"SELECT * FROM table WHERE nome IN ('".implode("', '"$namelink)."') ORDER BY ordine ASC"
    $r3 MYSQL_QUERY($q3); 
    while (
    $row3 mysql_fetch_array($r3)){ 
        
    $l array_keys($namelink,$row3['nome']);
        print 
    '[*][url="'.$link[$l].'"]'.$row3['nome'].'[/url]'
    }; 

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    234
    Ciao testapazza!
    In questo modo mi da errore: Warning: Illegal offset type

    mi sembra di aver capito che array ed oggetti non possono essere usati come keys!?
    non so se può aiutare ma se stampo gli array ho una possibile combinazione di questo tipo:

    codice:
    $namelink=array($d1,$d2,$d3,$d4,$d5,$d6,$d7,$d8,$d9,$d10);
    $link=array($l1,$l2,$l3,$l4,$l5,$l6,$l7,$l8,$l9,$l10);
    ksort($namelink);
    print_r($namelink);
    ksort($link);
    print_r($link);
    
    Array ( [0] => YouTube [1] => Facebook [2] => iTunes [3] => Trackitdown [4] => [5] => [6] => [7] => [8] => [9] => )
    Array ( [0] => http://www.youtube.com [1] => http://www.facebook.com [2] => http://www.yahoo.com [3] => http://www.google.com [4] => [5] => [6] => [7] => [8] => [9] => )

  9. #9
    o cambi la variabile $l con questa:
    Codice PHP:
    $l array_search($row3['nome'], $namelink); 
    oppure cambi l'array del link con questo...

    Codice PHP:
    print '[*][url="'.$link[$l[0]].'"]'.$row3['nome'].'[/url]'

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    234
    Grazie, gentilissimo!

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.