Avatar billede jammerlab Nybegynder
02. september 2003 - 21:38 Der er 10 kommentarer og
1 løsning

Avanceret sql query

Ok den følgende sql sætning skal laves om så den virker for det gør den ikke pt.

$query = mysql_query("select * from forum_ind WHERE forum_id = '$forum' && topic and tekst LIKE '%$ord%' && opretter = '$bruger'") or die(mysql_error());

Den skal søge i topic OG tekst men på den måde dutter det ikk... yderligere hvis $bruger ikke er sat så kan den heller ikke finde ud af det...
Avatar billede jammerlab Nybegynder
02. september 2003 - 21:41 #1
Yderligere ville jeg faktisk også gerne have at den skal søge i både forum_ind OG forum_svar
Avatar billede bo.morville Nybegynder
02. september 2003 - 21:43 #2
Hvordan er relationen mellem forum_ind og forum_svar?

$query = mysql_query("select * from forum_ind WHERE forum_id = '$forum' && (topic LIKE '%$ord%' OR tekst LIKE '%$ord%') && opretter = '$bruger'") or die(mysql_error());

Skulle søge i både topic og tekst i forum_ind.
Avatar billede jammerlab Nybegynder
02. september 2003 - 21:46 #3
Jep du har ret det fungere fint... næste problem er at hvis $bruger ikke er sat... altså null så tar den det som om der intet resultater :| den skulle gerne (hvis ikke er sat) bare lede efter de andre kriterier...

Relationen mellem forum_ind og forum_svar er at forum_ind er tråde og forum_svar er svar til disse... når jeg tænker mig om så kunne man godt smide begge under en right?
Avatar billede bo.morville Nybegynder
02. september 2003 - 21:54 #4
Hvad er formålet med "&& opretter = '$bruger'"?

Du kan jo evt. ændre den til:
$SQL = "SELECT * FROM forum_ind WHERE forum_id = '$forum' && (topic LIKE '%$ord%' OR tekst LIKE '%$ord%')";

if ($bruger) $SQL .= " && opretter = '$bruger'";
$query = mysql_query($SQL);

Så får du kun sidste led med, hvis $bruger findes.

Umiddelbart tror jeg at jeg ville lave en søgning i forum_ind og en i forum_svar - men det er muligvis fordi jeg ikke kan gennemskue dit database design.
Avatar billede jammerlab Nybegynder
02. september 2003 - 21:58 #5
ja den mulighed havde jeg også tænkt på :) meningen er at man skal kunne søge på ord hvor det er bruger der har oprettet denne tråd...

altså hvis man kan selecte noget fra 2 tables så er det lige meget om du forstår hvordan den er bygget op jo hehe :P
Avatar billede bo.morville Nybegynder
02. september 2003 - 22:02 #6
Tjoo - det har du måske nok ret i - men for at man kan selecte fra to tables er det nødvendigt med et join mellem de to tables. Og jeg kan ikke se hvad der skal joines på.

Se evt. på http://www.mysql.com/doc/en/JOIN.html
Avatar billede jammerlab Nybegynder
02. september 2003 - 22:05 #7
Fattede jeg så desværre ik :/ ellers skal der laves 2 sql querys... blir jeg vel nød til...
Avatar billede jammerlab Nybegynder
03. september 2003 - 13:31 #8
Hm det ser faktisk ikke ud som om din sql virker :/
Avatar billede jammerlab Nybegynder
03. september 2003 - 13:34 #9
http://212.242.60.87/modern/forum/test.php

see... når jeg søger på la i Test burde den give et resultat... det gør den ik!
Avatar billede jammerlab Nybegynder
07. september 2003 - 13:10 #10
Mester tjekker du ikke lige engang ellers bliver jeg nød til at lukke det :/
Avatar billede jammerlab Nybegynder
09. september 2003 - 17:02 #11
intet svar stadig? :|
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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