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

    come rappresentare 'qualsiasi carattere' in una query

    Devo effettuare una query, il cui risultato dipende dall'incrocio di tre diverse variabili (chiamiamole $loc, $tag e $kind), di cui una può avere 7 diversi valori, e le altre due tre valori ciascuna. Insomma, un totale di 63 possibili combinazioni diverse...
    Decisamente troppe per mettersi a costruire una serie di if... else!
    Per fare un esempio più chiaro, definisco un caso-tipo:
    la mia query deve richiamare dalla tabella 'news' tutti i record che corrispondono a queste occorrenze
    Codice PHP:
    WHERE location '$europa' AND tag '$art' AND kind '$exhibit' 
    Le tre variabili (che qui ho nominato diversamente, solo per far capire il genere di categorie che definiscono) sono ricavate dinamicamente attraverso un'altra query precedente.
    Insomma, se l'utente Tizio si è registrato per conoscere solo le news relative a mostre d'arte in Europa, la mia query deve restituire solo queste.
    Francamente, non riesco ad immaginare un sistema che possa evitare di creare 63 query diverse, una alternativa all'altra, quante sono le combinazioni possibili...
    Salvo che questa.
    Poiché i campi di tabella relativi a queste variabili possono contenere o meno un dato (dipende se l'utente ha esercitato un'opzione di scelta o no), potrebbe - ad esempio - darsi una row in cui i tre campi siano pieni (europe / art / exhibit), ma in un'altra potrebbero essere vuoti ; in tal caso, devo considerare la condizione come equivalente ad una scelta di vedere tutto.
    Quindi, pensavo di creare una query più o meno, così:
    Codice PHP:
    "SELECT * FROM news WHERE $location AND $taggation AND $kindation
    (non so se la sintassi è corretta e funzionerebbe)
    laddove, in base ai risultati della query precedente, definisco tre variabili in questo modo:
    Codice PHP:
    if ($row[loc] == "") {
    $location "dove = '???????????'";
    } else {
    $location "dove = $row[loc]";

    stessa cosa per le altre due. Ovvero, se c'è un valore, lo attribuisco alla variabile, altrimenti quello che mi occorre è poter definire quest'altra eventualità in modo tale che nella query vengano richiamati tutti i record, qualunque sia il valore del campo considerato.
    Insomma, sempre per fare un esempio, se le news hanno come valore del campo dove USA, Italy, France, Spain, China, e nel campo dove della tabella utenti non è indicato nulla, la query di quell'utente deve mostrare tutte le news.
    Spero di essere riuscito a non essere (troppo) involuto nel discorso!
    metatad
    graphic & web design

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Non si capisce una fava.

    Dovresti postare almeno la struttura delle tue tabelle

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.