#1 2. November 2008 Hallo, ich habe letztens bei mir auf der Platte ein unfertiges Newssystem gefunden, welches ich gerne erweitern würde! Das Newssystem hat eine Kommentarfunktion, wobei diese jedoch sofort erstellt werden. Ohne jede Moderation. Das habe ich geändert und ich kann in der DB auch den freigabewert auf 1 stellen und schon wird dieser freigegeben. Jetzt möchte ich dies auch in die Adminoberfläche einbinden. Ich lass mir also nun alle Kommentare mit dem freigabewert 0 anzeigen und hänge 2 Buttons hinten dran: Löschen und Freigeben. Die Namen der Buttons haben folgende Syntax: kommentarID.newsID Somit ist eine Eindeutigkeit gewährleistet. Wie kann ich jetzt abfragen, welcher Button gedrückt wurde, da ich ja nicht weiß wie dieser heißt??? Hier mal mein Script: freigabe.php: PHP: <?php require( "config.inc.php" ); require( "login.inc.php" ); require( "kopf.php" ); require( "adminkopf.inc.php" ); require( "function.inc.php" ); echo "<table border=0 cellspacing=1 cellpadding=3 width=\"100%\">" ; echo "<tr><th class=head colspan=3 bgcolor= $c_header > $f_titel Kommentare zur News</th></tr>" ; echo "<form method=\"post\" action= $PHP_SELF >" ; $ergebnis = mysql_query ( "Select * FROM $tab_newskom ORDER BY time DESC" , $serverid ); while ( $kom = mysql_fetch_array ( $ergebnis ) ) { if( $kom [ freigabe ] == 0 ){ echo "<tr>" ; //Autor: echo "<td valign=top class=\"left\" bgcolor=\" $c_left \"><table $glowstyle ><tr><td> $f_author <nobr>" ; echo formatkom ( $kom [ author ]); echo "</nobr></tr></td></table><nobr><font size=1>" ; echo date ( "d.m.Y, H:i" , $kom [ time ]+ $time_offset ); echo "</nobr></td>" ; //Kommentar: echo "<td class=\"right\" width=\"100%\" bgcolor= $c_right > $f_news " ; echo formatkom ( $kom [ text ]); echo "</td>" ; echo "<td class=\"right\"bgcolor= $c_right >" ; echo "NewsID: $kom [ newsid ] <br> KomID: $kom [ id ] " ; echo "</td>" ; echo "<td class=\"left\" bgcolror= $c_right align=\"right\">" ; echo "<input type=\"submit\" name=\"f $kom [ id ] . $kom [ newsid ] \" value=\"Freigeben\">" ; echo "</td>" ; echo "<td class=\"left\" bgcolror= $c_right align=\"right\">" ; echo "<input type=\"submit\" name=\"l $kom [ id ] . $kom [ newsid ] \" value=\"Löschen\">" ; echo "</td>" ; echo "</tr>" ; } } echo "</table>" ; echo "</form>" ; if(isset( $_REQUEST [ 'f$kom[id].$kom[newsid]' ])){ mysql_query ( "UPDATE $tab_newskom SET freigabe = '1' WHERE id = ' $kom [ id ] ' AND newsid = ' $kom [ newsid ] ' LIMIT 1;" , $serverid ); } if(isset( $_REQUEST [ 'l$kom[id].$kom[newsid]' ])){ mysql_query ( "DELETE $tab_newskom WHERE id = ' $kom [ id ] ' AND newsid = ' $kom [ newsid ] ' LIMIT 1;" , $serverid ); } ?> Der Teil mit den 2 Ifabfragen und dem $_REQUEST muss ich so ändern, dass es funktioniert. Ich glaube es liegt daran, dass die Variable $kom nur in der Schleife sichtbar ist. Vll hat ja jemand ne Idee Danke schonmal im vorraus. P.S.: Ich hoffe man kann mein Anliegen verstehen + Multi-Zitat Zitieren
#2 2. November 2008 AW: Kommentare freigeben bzw. Löschen erstmal musst du zu jedem kommentar ein form machen, die ID überträgst du als verstecktes feld die buttons brauchen feste namen, dann kannst du sie mit if(isset($_REQUEST['button1'])) o.ä. abfragen + Multi-Zitat Zitieren
#3 2. November 2008 AW: Kommentare freigeben bzw. Löschen Ok, vielen Dank. Ich werde mal probieren, ob ich es hinkriege^^ \\EDIT: Ich habe das Script nun angepasst und das Freigeben Funktioniert auch :] Nur das Löschen nicht ?( Hier mal der Code, wie er jetzt ist: PHP: <? php require( "config.inc.php" ); require( "login.inc.php" ); require( "kopf.php" ); require( "adminkopf.inc.php" ); require( "function.inc.php" ); if(isset( $_POST [ 'freigabe' ])){ $komid = $_POST [ id ]; $newsid = $_POST [ newsid ]; mysql_query ( "UPDATE $tab_newskom SET freigabe = '1' WHERE id = ' $komid ' AND newsid = ' $newsid ' LIMIT 1;" , $serverid ); } if(isset( $_POST [ 'delete' ])){ $komid = $_POST [ id ]; $newsid = $_POST [ newsid ]; mysql_query ( "DELETE $tab_newskom WHERE id = ' $komid ' AND newsid = ' $newsid ' LIMIT 1;" , $serverid ); } echo "<table border=0 cellspacing=1 cellpadding=3 width=\"100%\">" ; echo "<tr><th class=head colspan=3 bgcolor= $c_header > $f_titel Kommentare zur News</th></tr>" ; $ergebnis = mysql_query ( "Select * FROM $tab_newskom ORDER BY time DESC" , $serverid ); while ( $kom = mysql_fetch_array ( $ergebnis ) ) { if( $kom [ freigabe ] == 0 ){ echo "<tr>" ; //Autor: echo "<form method=\"post\" action= $PHP_SELF name=\" $kom [ id ] . $kom [ newsid ] \">" ; echo "<input type=\"hidden\" name=\"id\" value=\" $kom [ id ] \">" ; echo "<input type=\"hidden\" name=\"newsid\" value=\" $kom [ newsid ] \">" ; echo "<td valign=top class=\"left\" bgcolor=\" $c_left \"><table $glowstyle ><tr><td> $f_author <nobr>" ; echo formatkom ( $kom [ author ]); echo "</nobr></tr></td></table><nobr><font size=1>" ; echo date ( "d.m.Y, H:i" , $kom [ time ]+ $time_offset ); echo "</nobr></td>" ; //Kommentar: echo "<td class=\"right\" width=\"100%\" bgcolor= $c_right > $f_news " ; echo formatkom ( $kom [ text ]); echo "</td>" ; echo "<td class=\"right\"bgcolor= $c_right >" ; echo "NewsID: $kom [ newsid ] <br> KomID: $kom [ id ] " ; echo "</td>" ; echo "<td class=\"left\" bgcolror= $c_right align=\"right\">" ; echo "<input type=\"submit\" name=\"freigabe\" value=\"Freigeben\">" ; echo "</td>" ; echo "<td class=\"left\" bgcolror= $c_right align=\"right\">" ; echo "<input type=\"submit\" name=\"delete\" value=\"Löschen\">" ; echo "</td>" ; echo "</tr>" ; echo "</form>" ; } } echo "</table>" ; ?> + Multi-Zitat Zitieren
#4 3. November 2008 AW: Kommentare freigeben bzw. Löschen Ich habe auch mal "DELETE * FROM....." und "DELETE FROM....." Probiert! Aber es tut sich einfach nix.... Wenn ich den Befehl: DELETE FROM $tab_newskom WHERE id = '$komid' AND newsid = '$newsid' mit passenden Werten in der Datenbank ausführe funktioniert er...Auf der Seite tut sich nichts.... + Multi-Zitat Zitieren