Anders Moen Skrevet 30. april 2007 Del Skrevet 30. april 2007 (endret) Hei! Driver å mekker et forum på sida mi, selvlagd selvfølgelig, og driver å lager en søkemotor, men jeg har et problem: siden første posten ikke ligger sammen med resten av innleggene til det emnet så må man kunne søke gjennom flere tabeller på et søk. Tabellene heter "topics" og "posts" (uten quotes selvfølgelig). I topics skal man kunne søke for "title" og "content" og i posts bare "content". Koden jeg har skrevet hittil: <form action="" method="get"> <input type="text" name="page" class="form_hidden" value="forum" /><input type="text" name="action" class="form_hidden" value="search" /> <p>Seach for...<br /> <input type="text" name="q" value="<?php echo htmlentities(stripslashes($_GET['q'])); ?>" /></p> <p><input type="submit" value="Search" /></p> </form> <?php if ($_GET['q']) { $q = htmlentities(stripslashes($_GET['q'])); echo '<br />'; echo '<br />'; $abcd = mysql_query("SELECT * FROM posts WHERE content LIKE '%$q%'"); while($row = mysql_fetch_array($abcd)) { echo htmlentities(stripslashes($row['content'])); echo '<br />'; } } ?> Resultatene vil jeg gjerne ha noe ala sånn her hvis noen kan fikse med det og.Det ville vært superdupert Tittel på emneMaks 100 tegn fra innholdet som kommer rett under her www.andersmoen.com/?showtopic=id_til_emnet Takk! Edit: Emnetittel Endret 30. april 2007 av Anders-Moen Lenke til kommentar
Stian Jacobsen Skrevet 30. april 2007 Del Skrevet 30. april 2007 Har sikkert sagt dette mange ganger, men du må slutte å få folk til å gjøre jobben for deg. Det er ikke akkurat å "mekke selv" når du ber andre om å gjøre scriptet ditt ferdig når du ikke klarer mer.. Men, jeg skal hjelpe deg litt.. det du kan gjøre er å kjøre to while løkker å binne resultatet sammens. Noen mener at det er mulig å joine, men vil tro dette tar lengre tid. <?php $query = "SELECT id,tittel FROM tabell1 WHERE tittel LIKE '%".$sokeord."%'" while($r = mysql_fetch_array($ditt_query)) { while($r2 = mysql_fetch_array(mysql_query("SELECT innlegg FROM tabell2 WHERE id='".$r['id']."'")) { $innlegg = substr($r2['innlegg'], 0, 100); } echo "<h3><a href=\"forum.php?innlegg=".$r['id']."\">".$r['tittel']."</a></h3>\n<p>".$innlegg."</p>\n"; } ?> Har ikke testet koden, men tror det skal funke.. Neste gang, bruk google Lenke til kommentar
Gjest Slettet+142 Skrevet 30. april 2007 Del Skrevet 30. april 2007 (endret) har jeg misforstått hvis jeg nevner INNER JOIN? $query = "SELECT t1.id,t1.tittel,t2.innhold FROM tabell1 t1 INNER JOIN tabell2 t2 ON t1.id=t2.id WHERE t1.tittel LIKE '%{$sokeord}%'"; Endret 30. april 2007 av Slettet+142 Lenke til kommentar
Stian Jacobsen Skrevet 30. april 2007 Del Skrevet 30. april 2007 har jeg misforstått hvis jeg nevner INNER JOIN? 8505096[/snapback] Tror dette tar lenger tid.. Men det er en mulighet Lenke til kommentar
Gjest Slettet+142 Skrevet 30. april 2007 Del Skrevet 30. april 2007 skal ikke motsi deg der. har ikke peiling på hva som er kjappest, men det er iallefall mindre kode Lenke til kommentar
Anders Moen Skrevet 30. april 2007 Forfatter Del Skrevet 30. april 2007 MrNeeon, fikk ikke koden din til å fungere. Takk mariyo Fikk til den inner join greia. Har aldri skjønt det før. Prøvde en gang før, men fikk det ikke til å fungere. MrNeeon, hva om jeg har prøvd på Google? Har prøvd Google skjønner du... Lenke til kommentar
Stian Jacobsen Skrevet 30. april 2007 Del Skrevet 30. april 2007 Om du i det hele tatt så på koden, så la du vell merke til at jeg brukte andre navn på tabellen og radene.. Lenke til kommentar
Anders Moen Skrevet 30. april 2007 Forfatter Del Skrevet 30. april 2007 Ja da, og jeg forandra alt det og fiksa de der du hadde glemt ; på slutten og sånn og Lenke til kommentar
Peter Skrevet 30. april 2007 Del Skrevet 30. april 2007 Tipper det er mye raskere å la databasen gjøre jobben enn PHP. En liten tommelfingerregel er å nesten alltid la databasen gjøre så mye som mulig av jobben for å få best mulig ytelse, men dette kan man sjekke med en "profiler". Lenke til kommentar
Gjest Slettet+142 Skrevet 30. april 2007 Del Skrevet 30. april 2007 (endret) Tipper det er mye raskere å la databasen gjøre jobben enn PHP. En liten tommelfingerregel er å nesten alltid la databasen gjøre så mye som mulig av jobben for å få best mulig ytelse, men dette kan man sjekke med en "profiler". 8507078[/snapback] blir det for dumt å spørre hva en "profiler" er? og Anders-Moen... du _må_ ikke (men kan) ha ; på slutten av sql'er i php, med mindre du skal benytte deg av multiquering Edit: aii. det ble for dumt ja. herregud.. Edit2: Eller ikke. Jeg skjønner ikke hva en profiler gjør for en jeg. debugger? Endret 30. april 2007 av Slettet+142 Lenke til kommentar
Anders Moen Skrevet 30. april 2007 Forfatter Del Skrevet 30. april 2007 (endret) og Anders-Moen... du _må_ ikke (men kan) ha ; på slutten av sql'er i php, med mindre du skal benytte deg av multiquering Rart jeg fikk feilmelding på den linja helt til jeg så at det mangla en ; bak der da Edit: Quotinga ble helt merkelig :S Endret 30. april 2007 av Anders-Moen Lenke til kommentar
Gjest Slettet+142 Skrevet 30. april 2007 Del Skrevet 30. april 2007 hmm.. men nå vet jeg hva det var som var feil med MrNeeon sin kode åsså. han hadde ikke mysql_query()... men jeg bruker aldri ; etter sql jeg da men.. ok. Lenke til kommentar
Anders Moen Skrevet 30. april 2007 Forfatter Del Skrevet 30. april 2007 Det er jeg også klar over, og den satte jeg også på selv. Men det er det samme, jeg fikk det til når jeg fikk vite hvordan inner join-koden skal se ut. En ting til: $q = htmlentities(stripslashes($_GET['q'])); WHERE t1.title LIKE '%q%' Åssen får jeg til at man søker i innholdet på en post og innholdet på posten til emnestarter? Jeg trodde jeg skulle gjøre noe sånn her, men får det ikke til å funke: WHERE t1.title LIKE '%q%' OR (eller AND) t2.content LIKE '%$q%' og WHERE t1.title, t2.content LIKE '%q%' Lenke til kommentar
Gjest Slettet+142 Skrevet 30. april 2007 Del Skrevet 30. april 2007 (endret) ok. dette er jeg ikke noe god på, men kan det hjelpe med FULLTEXT? iaf, hvis.. vil du sikkert ha med WITH QUERY EXPANSION i AGAINST-funksjonen? Endret 30. april 2007 av Slettet+142 Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå