Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074

    query con 18 possibili combinazioni

    Sto realizzando un motore di ricerca interno, che consenta all'utente di cercare tra le news presenti nel db.
    Ciascuna news ha quattro tipologie di attribuiti possibili:
    - area
    - tag
    - kind
    - deadline
    Io vorrei quindi dare la possibilità di effettuare ricerche, combinando variamente questi attributi, scelti attraverso quattro select; ad esempio, l'utente può fare una ricerca impostando come valore Europa (area) e Festival (kind), e così via.
    Il problema è la costruzione della query. Le combinazioni possibili, infatti, sono tante:
    4, se sceglie un solo attributo, + altre 6 se ne sceglie due, + altre 4 se ne sceglie 3, + una se sceglie tutti gli attributi possibili.
    Risultato, 18 possibilità diverse.
    Ovviamente, posso realizzare un costrutto con 18 if, e conseguenti 18 diverse query, però prima di farlo vorrei capire se c'è modo di ottenere lo stesso risultato senza questo... sperpetuo!
    Qualche idea e/o suggerimento?
    metatad
    graphic & web design

  2. #2
    ammesso che i valori li prendi in post

    Codice PHP:
    $area="";
    $tag="";
    $kind="";
    $deadline="";
    $area=$_POST['area'];
    $tag=$_POST['tag'];
    $kind=$_POST['kind'];
    $deadline=$_POST['deadline'];
    if (
    $area!=""$temparea="WHERE area='$area'";
    if (
    $tag!=""$temptag="WHERE tag='$tag'";
    if (
    $kind!=""$tempkind="WHERE kind='$kind'";
    if (
    $deadline!=""$tempdeadline="WHERE deadline='$deadline'";
    $query=mysql_query("SELECT * FROM tuatabella $temparea $temptag $tempkind $tempdeadline"); 
    c'è da provarlo.

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013

    Re: query con 18 possibili combinazioni

    Originariamente inviato da metatad
    Sto realizzando un motore di ricerca interno, che consenta all'utente di cercare tra le news presenti nel db.
    Ciascuna news ha quattro tipologie di attribuiti possibili:
    - area
    - tag
    - kind
    - deadline
    Io vorrei quindi dare la possibilità di effettuare ricerche, combinando variamente questi attributi, scelti attraverso quattro select; ad esempio, l'utente può fare una ricerca impostando come valore Europa (area) e Festival (kind), e così via.
    Il problema è la costruzione della query. Le combinazioni possibili, infatti, sono tante:
    4, se sceglie un solo attributo, + altre 6 se ne sceglie due, + altre 4 se ne sceglie 3, + una se sceglie tutti gli attributi possibili.
    Risultato, 18 possibilità diverse.
    Ovviamente, posso realizzare un costrutto con 18 if, e conseguenti 18 diverse query, però prima di farlo vorrei capire se c'è modo di ottenere lo stesso risultato senza questo... sperpetuo!
    Qualche idea e/o suggerimento?
    codice:
    <?php
      $where_clause = "";
      $where_clause .= ((isset($_POST['area']) && $_POST['area'] != "") ? ($where_clause != "" ? " AND area={'$_POST[area]'}" : "area={'$_POST[area]'}") : "");
    ?>
    poi potresti anche creare sta cosa dentro un foreach su $_POST oppure, se la struttura del form non lo dovesse consentire, su un array contenente i nomi delle colonne in cui cercare.

    La query poi sarà una cosa del genere:
    Codice PHP:
    $sql "SELECT * FROM tabella_eventi".(($where_clause != "") ? " WHERE ".$where_clause ""
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

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 © 2024 vBulletin Solutions, Inc. All rights reserved.