Visualizzazione risultati 1 fino 3 di 3

Discussione: Ricerca nel DB help!

  1. #1
    Guest

    Exclamation Ricerca nel DB help!

    Ciao a tutti
    Il problema: ho un form con 6 campi input che vanno a cercare dentro una tabella.
    Tutti i sei campi non sono obbligatori. Come faccio a far comparire ricerche precise, e incrociate ad esempio se l'utente compila solo i campi 2 e 3 io gli devo far eseguire una query del tipo SELECT ...... WHERE campo=2 AND campo2=3, senza scrivere 6*6 = 36 query differenti, per ogni possibilità di compilazione del form??

    rvbc

  2. #2
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Non è molto difficile... basta solo ingegnarsi un pochino a comporre la query:
    Codice PHP:
    <?php
    $and_on
    = false;
    $query = "SELECT ... FROM ...";

    if (isset (
    $_POST['campo1']))
    {
    $query .= " WHERE campo1 = '" . $_POST['campo1'] . "'";
    $and_on = true;
    }

    // questo lo ripeti per tutti i campi successivi al secondo...
    if (isset ($_POST['campo2']))
    {
    if (!
    $and_on) { $and_on = true; $query .= " WHERE " }
    else
    $query .= " AND ";
    $query .= "campo2 = '" . $_POST['campo2'] . "'";
    }

    ...

    $result = mysql_query ($query, $db);
    while (
    $line = mysql_fetch_array ($result))
    {
    // ... elabora i risultati ...
    }
    La query dovrebbe comporsi sulla base dei criteri che stabilisci, in base ai campi compilati del modulo. Se nessun campo è compilato, i risultati non saranno filtrati. Un consiglio: fai qualche prova perché potrei essermi incasinato con gli apici...

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  3. #3
    Guest

    Thumbs up Grazie mille

    Grazie demential, nn ce ne sarei venuto fuori soprattutto xkè quella soluzione in principio la scartai poichè nn sapevo dove mi portava, mi sembrava troppo incasinata e non riuscivo a farla venire....
    Sarei ricorso ad una tabella temporanea o alle 36 QUERY.

    Grazie davvero, rvbc

Regole di scrittura

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