Visualizzazione dei risultati da 1 a 10 su 17

Hybrid View

  1. #1
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Per esempio

    Codice PHP:
    $sql ="SELECT * FROM colori where ";

    foreach( 
    $arrayColore as $ValoreColore)
    {
        
    $sql .= " colore<>'" $ValoreColore "' and ";
    }

    $sql substr($sql0, -4);

    echo 
    $sql

  2. #2
    Utente di HTML.it L'avatar di Luca1317
    Registrato dal
    Dec 2001
    Messaggi
    1,258
    ah ok, ancora non conoscevo substr; quindi elimini gli ultimi 4 caratteri (-4) per non far comparire l'ultmo and.

    Grazie mille.

  3. #3
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Per esempio

    Codice PHP:
    $sql ="SELECT * FROM colori where ";

    foreach( 
    $arrayColore as $ValoreColore)
    {
        
    $sql .= " colore<>'" $ValoreColore "' and ";
    }

    $sql substr($sql0, -4);

    echo 
    $sql
    Questa query andrà in errore se $arrayColore è vuoto. Se poi $arrayColore non è mai vuoto, puoi anche usarla.



    Un'alternativa, che non richiede substr(), potrebbe essere:
    Codice PHP:
    $sql ="SELECT * FROM colori where 1=1 ";

    foreach( 
    $arrayColore as $ValoreColore)
    {
        
    $sql .= " and colore!='" addslashes($ValoreColore) . "' ";
    }

    echo 
    $sql

  4. #4
    Utente di HTML.it L'avatar di Luca1317
    Registrato dal
    Dec 2001
    Messaggi
    1,258
    In questo modo però avrò l'and all'inizio che non mi fa funzionare la query, giusto?

    così:

    codice:
    SELECT * FROM colori where and colore<>'rosso'...

  5. #5
    Quote Originariamente inviata da Luca1317 Visualizza il messaggio
    In questo modo però avrò l'and all'inizio che non mi fa funzionare la query, giusto?

    così:

    codice:
    SELECT * FROM colori where and colore<>'rosso'...
    Non proprio.

    Avrai:
    codice:
    SELECT * FROM colori where 1=1 and colore<>'rosso'...
    E se l'array dei colori sarà vuoto, perché magari in taluni casi non vuoi escludere nessun colore, la query diventerà:
    codice:
    SELECT * FROM colori where 1=1
    Che resta una query sintatticamente corretta, a differenza della query:
    codice:
    SELECT * FROM colori where
    Che invece genererebbe un errore.

  6. #6
    Utente di HTML.it L'avatar di Luca1317
    Registrato dal
    Dec 2001
    Messaggi
    1,258
    Ah giusto, non avevo visto il where 1=1

    Ho da poco cominciato a programmare in PHP dopo anni di ASP e, a differenza di quando iniziai dove il motto era "basta che funzioni", sto cercando di fare le cose per bene già dall'inizio.

    Quindi, non è per criticare eh, se qualcuno vedesse il codice potrebbe essere oggetto di critica?

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.