Gå til innhold

Hjelp med forumsøk og "Mine innlegg"


Anbefalte innlegg

Har laget et forum basert på mysql, forumet består av 3 tabeller i databasen.

 

kategorier

emner

innlegg

 

I kategorier ligger det hovedkategorier og underkategorier (underkategoriene har "uid" satt til hovedkategoriens id)

I emner ligger første innlegg i alle emner, tittel, brukerid, kategori id osv.

I innlegg ligger alle innleggene som blir skrevet i et emne, sammen med id til emnet.

 

 

Jeg lurer på hvordan jeg skal lage en søkemotor til forumet, slik at man kan søke i hele forumet eller bare deler av forumet.

Jeg lurer også på hvordan jeg kan få til noe lignende "Mine innlegg", hvor brukere kan se de emnene de har svart i og siste oppdaterte emne (nye innlegg osv) blir sortert øverst.

 

Jeg har lagt til "stimestamp" (siste) slik at når man skriver innlegg, blir stimestamp oppdatert for å kunne sortere emnene etter siste innlegg i kategoriene.

 

 

For å se forumet (krever registrering) kan man gå inn på www.nordsialan.net

 

Takk for at du tok deg tid til å lese dette :)

Endret av Goggen90
Lenke til kommentar
Videoannonse
Annonse

eksempel-Søk:

<?php


$raw_query = $_GET['search']; //raw input fra bruker
$safe_query = stripslashes($raw_query); //Tar bort alle slashes (/)
$safe_query_tags = strip_tags($safe_query); //tar bort html php etc. tagger

if($raw_query == ''){
echo "Du må søke på noe for og få et resultat";
} else {
$query = $safe_query_tags; //for og gjøre det enklere
include_once("db_connect.php"); //database-tilkobling
$sql = mysql_query("SELECT * FROM nyheter WHERE overskrift LIKE '%$query%'"); //sql-query
$count = mysql_num_rows($sql);
echo "Det fantes $count treff på søkeordet: <b>$query</b><br><br>";
while($row = mysql_fetch_array($sql)){

$tittel = $row['overskrift'];

echo "<a href='din-sti-til-visning'>$tittel</a>";
}
}
?>

søke-felt:

<form action='søke-script' method='get'>
Skriv her hva du vil søke etter:<br>
<input type='text' name='query'><br>
<input type='submit'>
</form>

utestet, men burde fungere

 

EDIT: Liten feil, men er rettet nå

Endret av Famen
Lenke til kommentar

Nå antageligvis joine både emner og kategorier for å få frem navnet på tråden, og navnet på kategorien.

 

SELECT * (Seriøst, spesifiser det du trenger) FROM innlegg i
LEFT JOIN emner e ON (i.topic_id=e.tid)
LEFT JOIN kategori k ON (k.cat_id=e.category_id)

WHERE i.author_id = {$id} AND `date` > {$somesortofthing}

Lenke til kommentar

Takk for alle svar :)

 

I mine innlegg vil man helst ha emnene og ikke selve innleggene, slik som her..

 

På søkingen leter jeg etter noe mer "avansert" som søker i både innlegg og emner og legger de innleggene som søket passer til under hvert emne nedover. (kan spesifisere mer om ønskelig.)

Lenke til kommentar

Om du vil ha slik det er her, trenger du kun en liten GROUP BY :)

 

SELECT * (Seriøst, spesifiser det du trenger) FROM innlegg i
LEFT JOIN emner e ON (i.topic_id=e.tid)
LEFT JOIN kategori k ON (k.cat_id=e.category_id)

WHERE i.author_id = {$id} AND `date` > {$somesortofthing}
GROUP BY e.tid
ORDER BY date DESC;

Lenke til kommentar

while( $row = mysql_fetch_assoc( $res ) )
{
echo "<tr><td>{$row['trådtittel']}</td><td>{$row['username']}</td><td>{$row['forumnavn']}</td></tr>";
}

"Username" må du finne ut ved å joine tabellen du har brukerne dine.

LEFT JOIN brukere b ON (e.starter_id=b.uid)

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...