Permalänk
Medlem

Eget nyhetsskript

Har börjat mitt skapande av ett eget nyhetsskript, ja jag vet att det finns massor som man kan få gratis, men jag vill lära mig. Jag har skapat två tabeller, news och comments. Allt funkar fint förutom att få kommentarerna till rätt div, dvs. nyhet. Alla kommentarerna hamnar i första nyheten, oavsett i vilken nyhet man kommenterar.

Tabellerna:
http://data.fuskbugg.se/skalman02/comments.PNG
http://data.fuskbugg.se/skalman02/4d81db7041706_news.PNG

Resultatvärdena.

$resultat = mysql_query("SELECT * FROM $function_comments"); $resultat1 = mysql_query("SELECT * FROM $function_news");

Kommentarsystemet.

<?php while ($post = mysql_fetch_assoc($resultat1)) { echo "<div id='left-col'>"; // Right col echo $post["id"]. "<h1><center>" .$post["title"]. "</center</h1><br><div id='text'>" .$post["text"]. "</div><br>"; //$nid = mysql_query("SELECT id FROM $news_table"); $nid = $post["id"]; while ($post = mysql_fetch_assoc($resultat)) { echo "<div id='left-col-text'>#" .$post["id"] . "<div id='left-col-cutter'></div>"; echo "<br>" . $post["text"]. ""; echo "</div>"; } echo " <form method='post'> <div id='text'>Ta bort, id: </div><input id='user_ico' disabled><input id='input_field' name='delid'> <a href='index.php'><input type='submit' name='remid' value='Ta bort'></a><br> </form> <form method='post'> <div id='text'>Text: </div><input id='user_ico' disabled><input name='texta' id='input_field' type='text'> <a href='index.php'><input type='submit' name='postat' value='Kommentera'></a> </form> "; echo "</div>"; //End left Col } ?>

Permalänk
Medlem

<?php while ($post = mysql_fetch_assoc($resultat1)) { echo "<div id='left-col'>"; // Right col echo $post["id"]. "<h1><center>" .$post["title"]. "</center</h1><br><div id='text'>" .$post["text"]. "</div><br>"; //$nid = mysql_query("SELECT id FROM $news_table"); $nid = $post["id"]; while ($post = mysql_fetch_assoc($resultat)) { if( $post["id"] == $nid ) { echo "<div id='left-col-text'>#" .$post["id"] . "<div id='left-col-cutter'></div>"; echo "<br>" . $post["text"]. ""; echo "</div>"; } } echo " <form method='post'> <div id='text'>Ta bort, id: </div><input id='user_ico' disabled><input id='input_field' name='delid'> <a href='index.php'><input type='submit' name='remid' value='Ta bort'></a><br> </form> <form method='post'> <div id='text'>Text: </div><input id='user_ico' disabled><input name='texta' id='input_field' type='text'> <a href='index.php'><input type='submit' name='postat' value='Kommentera'></a> </form> "; echo "</div>"; //End left Col } ?>

Funkar detta då?

Permalänk
Medlem

Problemet är att jag inte kan få $nid att bli samma som nyhetens ID man skriver i....

Jag använder

$nid = $post["id"];

Men då blir $nid antalet nyheter som existerar ist för nyheten kommentaren ligger i...

Permalänk
Medlem

Antar att du vill ha det som skickas från formuläret. Då ska iaf $post['id'] vara $_POST['id'];

Permalänk
Medlem

$result = mysql_query("SELECT * FROM nyhet"); while($row = mysql_fetch_array($result)) { /* skriv ut nyheten */ $result2 = mysql_query("SELECT * FROM kommentar WHERE nid = $row[id]"); while($row2 = mysql_fetch_array($result2)) { /* skriv ut kommentarerna */ } }

Dålig, dålig kod, men jag ville bara visa hur strukturen bör se ut.

Koden ovan kommer att iterera över alla nyheter och för varje nyhet så hämtar den alla kommentarer till just den nyheten och skriver ut. Sedan går den vidare till nästa nyhet, dess kommentarer, nästa nyhet, dess kommentarer, och så vidare.

edit: jag antar att det var så här du ville ha det i alla fall, det vill säga att den skriver ut alla kommentarer till varje nyhet vid den nyheten...

Permalänk
Inaktiv

Du borde sätta ihop frågorna med hjälp av INNER / OUTER JOIN så att kommentarerna hämtas samtidigt som nyheterna.