Hei, jos ajatellaan, että loisin (tai siis luon:)) hakutoimintoa, jolla haetaan tietoa kannata käyttäjän antamien arvojen mukaan miten tämä kannattaisi toteuttaa.
Eli ajatellaan näin. käyttäjällä on 10 eri vaihtoehtoa, joista vaikka kaikki ehdot voi olla käytössä.
Miten rakennan järkevän WHERE kyselyn vai tarkistanko yksinkertaisesti, onko vaihtoehto 1 käytössä, jos on niin ympppään sen muuttujalla kyselyn sekaan?
Voiko kysylyitä tehdä useampia, niin, että se luetaan yhtenä kyselynä?
Oliko tietokantaan valmista funktiota siihen, että verrataan onko arvo taulukossa?
manninen kirjoitti:
Miten rakennan järkevän WHERE kyselyn vai tarkistanko yksinkertaisesti, onko vaihtoehto 1 käytössä, jos on niin ympppään sen muuttujalla kyselyn sekaan?
Juurikin näin, eli generoit sen where osan lomakkeen mukaan. Ei siinä muita vaihtoehtoja ole.
lainaus:
Voiko kysylyitä tehdä useampia, niin, että se luetaan yhtenä kyselynä?
Avainsana on UNION
. Sillä voit hakea useammasta taulusta kerralla tai koota useamman haun tulokset yhteen.
// Laitan tiedot taulukkoon $tyyppi = array(); for($i = 0; $i <= 7; $i++){ if(isset($_REQUEST[$i])){ $tyyppi = $_REQUEST[$i]; } } // Lähetän ne toiselle funktiolle if(!empty($virhe)){ echo $virhe; return; } else{ LuodaanTietokantaKysely($tyyppi); } //Toisella funktiolla niiden arvoista näkyy vain 1. Missä vaiheessa ja //miten minun tulisi laittaa nämä tiedot muotoon, 1,2,3,4,5,6 //jotta voin niitä verrata kyselyssä WHERE tyyppi = ($tyyppi)
manninnen kirjoitti:
Toisella funktiolla niiden arvoista näkyy vain 1. Missä vaiheessa ja miten minun tulisi laittaa nämä tiedot muotoon, 1,2,3,4,5,6
$tyyppi[] = $_REQUEST[$i];
Tiedot eivät tosin nytkään ole esittämässäsi pilkuilla erotetussa muodossa, mutta ne saa siihen implodella.
$tiedot = implode (",", $tyyppi);
Tallennat arvot muuttujaan jolloin vain viimeisin niistä jää voimaan. Käytä kulmasulkuja:
$tyyppi[] = 'tyyppi = ' . $_REQUEST['i'];
Voit sitten muodostaa kyselyn implode-funktiolla tyyliin
$tyyppi = implode (' OR ', $tyyppi);
Muista myön escapettaa käyttäjän syöte.
Aihe on jo aika vanha, joten et voi enää vastata siihen.