Pereiti prie turinio

SQL užklausos rašymas


Rekomenduojami pranešimai

Sveiki,

 

Reikia pagalbos rašant SQL užklausą išvesti duomenims iš DB.

 

DB yra lentelės: Vardas, Miestas, Gimimometai, Lytis, Mokymosiistaiga.

 

$query = "SELECT * FROM mokykla WHERE Vardas='$Vardas' OR Miestas='$Miestas' OR Gimimometai='$Gimimometai' OR Lytis='$Lytis' OR Mokymosiistaiga='$Mokymosiistaiga'"or die (mysql_error());

 

Parašius šią užklausą išveda viską teisingai, tačiau jei Parenku vieną punktą pvz "Vardas". Jei užpildau visus 5 punktus tai išveda viską dubliuotai, t.y. kiekvieną punktą atskirai. Man reikia, kad išvestų vieną bendrą rezultatą, o ne kiekvienam viską.

 

Nes jei dabar įvedu tik vardą išveda viską su tuo vardu, viskas gerai. Tačiau jei papildomai įvedu Miestą (Ar ką kitą) išveda vėl visus vardus. O man reikia, kad išvestų vardus tik iš tų miestų.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Jeigu teisingai suprantu problemą, tai klaida yra užklausos formavime OR.

T.y. vardas = '$vardas' OR miestas = '$miestas' - tai ir išrenka visus kurie arba su tuo vardu, arba iš to miesto. Turėtų būti AND tada jau.

 

Bet tada jei parenktu tik vardą, neišveda vardo. Reikia parinkti abu punktus. Gal kaip nors if else galime užklausoj naudoti?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Bet tada jei parenktu tik vardą, neišveda vardo. Reikia parinkti abu punktus. Gal kaip nors if else galime užklausoj naudoti?

 

daryk dinaminį sql, t.y. sql bus tik sąlygos kurioms pateikiami kriterijai išrinkimo:

if vardas is set

where= vardas='$vardas'

if miestas is set

where= miestas='$miestas'

Redagavo petrask
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tai čia pačioj užklausoj rašyti ją ar kur?

 

php dalyje, kadangi į php gauni visus post/get -> imi perduotas reikšmes, žiūri jų reikšmes -> pagal tai kurie laukai užpildyti kaip paieškos kriterijai (vardas, miestas, ...), formuoji užklausos where sąlygą su "and" operatorium

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...