Avatar billede Slettet bruger
05. juni 2003 - 23:16 Der er 11 kommentarer og
1 løsning

To forskellige søgninger i samme SQL

Jeg har flg. to felter i en form som bruges til at søge i database (forenklet):

<input name="search1" type="text">
<input name="search2" type="text">


Databasen indeholder flg. tabeller (forenklet): produkt og prod_gruppe

produkt indeholder felterne produktnr og prod_gruppe_id, hvor prod_gruppe_id er identisk med prod_gruppe_id i prod_gruppe


Brugeren skal indtaste enten et gruppe ($search1) eller et produktnr ($search2). Men jeg kan kun få $search1 til at fungere!? Hvad skal jeg tilføje til sql'en for at få $search2 med?


"SELECT produkt.produktnr FROM prod_gruppe, produkt WHERE prod_gruppe.gruppe like '%$search1%' AND prod_gruppe.prod_gruppe_id = produkt.prod_gruppe_id (her skal tilføjes et eller andet fx. noget med OR WHERE produkt.produktnr LIKE '%$search2%')"
Avatar billede ahv Nybegynder
05. juni 2003 - 23:17 #1
"SELECT produkt.produktnr FROM prod_gruppe, produkt WHERE (prod_gruppe.gruppe like '%$search1%' OR produkt.produktnr LIKE '%$search2%') AND prod_gruppe.prod_gruppe_id = produkt.prod_gruppe_id)"

?
Avatar billede tonnybrandt Nybegynder
05. juni 2003 - 23:18 #2
Det lyder som om det du søger er union
http://www.helpfixmypc.com/sql/union.htm
Avatar billede ahv Nybegynder
05. juni 2003 - 23:18 #3
"SELECT produkt.*, prod_gruppe.* FROM prod_gruppe, produkt WHERE (prod_gruppe.gruppe like '%$search1%' OR produkt.produktnr LIKE '%$search2%') AND prod_gruppe.prod_gruppe_id = produkt.prod_gruppe_id)"
Avatar billede webcreator Nybegynder
05. juni 2003 - 23:19 #4
Du kunne vel blot lave et tjek på, hvilken af felterne der er blevet skrevet i, og efterfølgende, vha. variabler, fylde dette i din SQL streng ?
Avatar billede ahv Nybegynder
05. juni 2003 - 23:29 #5
"SELECT produkt.*, prod_gruppe.* FROM prod_gruppe, produkt WHERE (prod_gruppe.gruppe like '%$search1%' OR produkt.produktnr LIKE '%$search2%') AND prod_gruppe.prod_gruppe_id = produkt.prod_gruppe_id"
Avatar billede Slettet bruger
05. juni 2003 - 23:38 #6
-> ahv Desværre, det virker ikke (får fejlen Query is empty!)

-> tonnybrandt Har prøvet UNION, men virker ikke i dette tilfælde

-> webcreator Er det noget a la dette du mener:
if (!$search1){
$mquery    = "SELECT produktnr FROM produkt WHERE produktnr like '%$search2%' "; 
}
else {
$mquery    = "SELECT produkt.produktnr FROM prod_gruppe, produkt WHERE prod_gruppe.gruppe like '%$search1%' and prod_gruppe.prod_gruppe_id = produkt.prod_gruppe_id or WHERE produktnr like '%$search2%'";
}
Avatar billede proaccess Nybegynder
25. juli 2003 - 13:17 #7
PRØV MED:

SELECT produkt.produktnr FROM produkt INNER JOIN prod_gruppe ON produkt.prod_gruppe_id=prod_gruppe.prod_gruppe_id WHERE prod_gruppe.gruppe LIKE '%$search1%' OR produkt.produktnr LIKE '$search2%'
Avatar billede Slettet bruger
25. juli 2003 - 13:21 #8
Jeg klarede mit problem ved at benytte flg. fremgangsmåde:

// Forespørgsel vedr. produktgruppe og leverandører
if(!empty($groups) && ($supp)) {
$sql = "SELECT product.photo, product.productnr FROM productgroup, product, pkd_supp WHERE productgroup.groups = '$groups' AND productgroup.group_id = product.group_id AND pkd_supp.name = '$supp' AND pkd_supp.supp_id = product.supp_id";
}
// Forespørgsel vedr. produktgruppe
if((!empty($groups)) && (!($supp))) {
$sql = "SELECT product.photo, product.productnr FROM productgroup, product WHERE productgroup.groups = '$groups' AND productgroup.group_id = product.group_id";
}
// Forespørgsel vedr. leverandør
if((!empty($supp)) && (!($groups))) {
$sql = "SELECT product.photo, product.productnr FROM pkd_supp, product WHERE pkd_supp.supp_name = '$supp' AND pkd_supp.supp_id = product.supp_id";
}

Men ellers mange tak for hjælpen (til jer alle)

PS! Hvordan afslutter jeg dette spørgsmål?
Avatar billede proaccess Nybegynder
25. juli 2003 - 13:26 #9
Du skal bare acceptere et svar...
Avatar billede Slettet bruger
25. juli 2003 - 13:27 #10
Tillykke med de 100! ;-)
Avatar billede proaccess Nybegynder
25. juli 2003 - 13:27 #11
Det var nu ikke min mening, vil du have dem igen?
Avatar billede proaccess Nybegynder
25. juli 2003 - 13:30 #12
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester