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

    Query a selezione multipla

    Salve, chiedo aiuto perchè ho esaurito ogni neurone del mio piccolo cervello :|

    ho una pagina con selezione multipla di criteri di ricerca incrociati (attraverso spunta di box), il problema chiaramente lo ho quando devo andare in select per sviluppare la query in base ai criteri forniti dall apagina precedente.

    ho provato a fare una roba del genere:

    $a= " AND ";
    $b= " AND ";


    if (isset($_GET['xxx'])==1) {
    $xxx_new=" table LIKE '%###%' ";
    } else { $xxx_new=""; }

    if (isset($_GET['yyy'])==1) {
    $yyy_new=" table LIKE '%###%' ";
    } else { $yyy_new=""; }

    if (isset($_GET['zzz'])==1) {
    $zzz_new=" table LIKE '%###%' ";
    } else { $zzz_new=""; }

    $query="Select * from DB where ".$xxx_new.$a.$yyy_new.$b.$zzz_new;

    chiaramente è un esempio, la selezione va oltre 8 box.

    il problema è che trovo sempre un AND di troppo e salta la query, certo su 3 variabili mi viene anche semplice, ma su 8/9 no.

    sicuramente esiste una soluzione che io, poco esperto ed autodidatta, non sono riuscito a trovare.

    spero molto in un generoso aiuto da parte vostra e vi ringrazio anticipatamente.

    Mick

  2. #2
    proprio nessuno riesce ad aiutarmi?

  3. #3

    Re: Query a selezione multipla

    Originariamente inviato da poveraitalia
    Salve, chiedo aiuto perchè ho esaurito ogni neurone del mio piccolo cervello :|

    ho una pagina con selezione multipla di criteri di ricerca incrociati (attraverso spunta di box), il problema chiaramente lo ho quando devo andare in select per sviluppare la query in base ai criteri forniti dall apagina precedente.

    ho provato a fare una roba del genere:

    $a= " AND ";
    $b= " AND ";


    if (isset($_GET['xxx'])==1) {
    $xxx_new=" table LIKE '%###%' ";
    } else { $xxx_new=""; }

    if (isset($_GET['yyy'])==1) {
    $yyy_new=" table LIKE '%###%' ";
    } else { $yyy_new=""; }

    if (isset($_GET['zzz'])==1) {
    $zzz_new=" table LIKE '%###%' ";
    } else { $zzz_new=""; }

    $query="Select * from DB where ".$xxx_new.$a.$yyy_new.$b.$zzz_new;

    chiaramente è un esempio, la selezione va oltre 8 box.

    il problema è che trovo sempre un AND di troppo e salta la query, certo su 3 variabili mi viene anche semplice, ma su 8/9 no.

    sicuramente esiste una soluzione che io, poco esperto ed autodidatta, non sono riuscito a trovare.

    spero molto in un generoso aiuto da parte vostra e vi ringrazio anticipatamente.

    Mick
    Ciao,
    facendo così
    Codice PHP:
    if (isset($_GET['zzz'])==1) {     $zzz_new=" table LIKE '%###%' ";  } 
    e lasciando in alto (ad esempio)
    Codice PHP:
    $a" AND "
    ti viene mantenuta sempre la variabile $a o $b settata su " AND " anche quando la stringa concatenata è vuota.
    Prova a fare così:
    Codice PHP:
    if (isset($_GET['zzz'])==1) {     $zzz_new=" table LIKE '%###%' "$a=" AND "; }  
    else { 
    $zzz_new=""$a=""; } 
    Con questa soluzione, però, devi impostare però le variabili all'inizio tante quante sono i $_GET che fai, cioè se hai XXX, YYY e ZZZ devi impostare
    Codice PHP:
    $a="";$b="";$c=""
    Spero di esserti stato d'aiuto.
    --Cosimo
    MAIL: cosimo.g18@gmail.com

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.