Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Eccezione foreach

  1. #1

    Eccezione foreach

    Buongiorno,

    Stavo provando a creare una piccola funzione che mi esegua in automatico una query di mysql, quando mi sono trovato di fronte ad un dilemma.
    La query che io voglio eseguire è di tipo SELECT e gli argomenti che passo alla funzione (chiamiamola query_select) sono: il nome della tabella, la selezione, le condizioni WHERE (in formato array) e, opzionalmente, il criterio (ORDER BY).
    Ora, se l'array contiene più di una coppia chiave/valore, come faccio a imporre l'eccezione per cui la prima coppia non deve iniziare con AND (o l'ultima non deve finire con AND)?

    Codice PHP:
    $condizione = array(
    'marca' => 'opel',
    'modello' => 'zafira');

    foreach(
    $condizione as $chiave => $valore){
    $cond_esplicita .= $chiave "='"$valore "' AND ";
    }
    query "SELECT * FROM tabella WHERE " $cond_esplicita
    Devo fare in modo, in questo caso che dopo l'ultimo valore della chiave non venga scritto anche AND.
    Spero di essere stato abbastanza chiaro! Grazie!

  2. #2
    Codice PHP:
    $condizione = array(
    'marca' => 'opel',
    'modello' => 'zafira');

    foreach (
    $condizione as $chiave => $valore) {
        
    $cond_esplicita .= " AND ".$chiave "='"$valore "'";
    }
    query "SELECT * FROM tabella WHERE 1" $cond_esplicita
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Apperò. Grazie!

  4. #4
    In questo modo non devi preoccuparti di rimuovere nessun operatore booleano e puoi utilizzarlo in qualsiasi contesto di composizione dinamica di query.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    Sì, poi mi sono informato. Infatti non trovavo una soluzione su internet perché cercavo eventuali eccezioni del foreach. Sembra una porcata ma credo sia l'unica soluzione

  6. #6
    Non è affatto una porcata.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

Tag per questa discussione

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.