nree Skrevet 29. mars 2008 Skrevet 29. mars 2008 (endret) 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 30. mars 2008 av Goggen90
Danny92 Skrevet 29. mars 2008 Skrevet 29. mars 2008 (endret) Bumper jeg... Jeg driver med forum jeg og, mangler søke og mine innlegg funksjonen.. Endret 29. mars 2008 av dannyboy_1992_
nree Skrevet 30. mars 2008 Forfatter Skrevet 30. mars 2008 Bumper tråden, håper fremdeles noen kreative personer har et forslag
Wackamole Skrevet 30. mars 2008 Skrevet 30. mars 2008 (endret) 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 30. mars 2008 av Famen
Garanti Skrevet 30. mars 2008 Skrevet 30. mars 2008 Mine innlegg: $userid = Brukerens id mysql_query("SELECT * FROM innlegg WHERE 'id' = $userid ORDER BY `timestamp` DESC) Tror dette skal virke
Martin A. Skrevet 31. mars 2008 Skrevet 31. mars 2008 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}
nree Skrevet 31. mars 2008 Forfatter Skrevet 31. mars 2008 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.)
Martin A. Skrevet 31. mars 2008 Skrevet 31. mars 2008 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;
nree Skrevet 31. mars 2008 Forfatter Skrevet 31. mars 2008 (endret) Åj, avansert spørring Kan du gi meg eksempel på hvordan en slik printes ut? Edit: Glemte et vesentlig tegn.. Endret 31. mars 2008 av Goggen90
Martin A. Skrevet 31. mars 2008 Skrevet 31. mars 2008 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)
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å