Seite 1 von 1

[Erledigt, Danke] News Beiträge im Admin Bereich löschen!?

Verfasst: 17.10.2006 13:48
von Stella-Max
Hallo,

also vorne weg ich bin keine Programmiermaschine ;) ich fange gerade erst an damit ;) also nun auch schon das erste Problem.

Ich habe nach einer Möglichkeit gesucht die Newsbeiträge zu löschen, und auch gefunden aber es will einfach nichts löschen?

Hier der Code:

Code: Alles auswählen

<?php 
/***************************************************************************
 *                              admin_news_show.php
 *                            -------------------
 *   begin                : Thursday, Apr 3, 2006
 *   copyright            : (C) 2006 by Stella-Max
 *   email                : xxxxxxxxxxxxxxx
 *   home  		     : xxxxxxxxxxxxxxxxxxx
 *
 *
 *
 ***************************************************************************/



if($setmodules == 1)
{
	$file = basename(__FILE__);
	$module['News  Center']['löschen_news'] = "$file?mode=config";
	return;
}
define('IN_PHPBB', 1);
//
// Let's set the root dir for phpBB
//
$phpbb_root_path = "./../";
require($phpbb_root_path . 'extension.inc');
require('./pagestart.' . $phpEx);
//include($phpbb_root_path . 'includes/functions_selects.'.$phpEx);
//require($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_main.'.$phpEx); 

// ===========================================================================================
// Loesch mich :)

if($submit) {
// Wenn der Submit-Button geklickt wurde ...

// die Anzahl der markierten Datensaetze ermitteln
$y=count($loeschen);
echo "$y Datensaetze werden geloescht.<br><br>";

    // F&uuml;r jeden markierten Datensatz
    // den delete-Befehl aufrufen.
    for($x=0;$x<$y;$x++) {
    mysql_query("delete from phpbb_news where
                     ID='$loeschen[$x]'");
    echo "Geloescht: $loeschen[$x]<br>";
    }
}

// Die vorhandenen Datensätze abrufen
$result=mysql_query("select * from phpbb_news");

// Nur wenn Daten gefunden wurden,
// wird das Formular angezeigt.
if(mysql_num_rows($result)) {
?>
<form method="post" target="main" action="<?php echo append_sid("admin_news_show.$phpEx") ?>">
  <table width="300" border="0" cellspacing="0" cellpadding="0">
  <?
  // Daten anzeigen
  while($row=mysql_fetch_array($result,MYSQL_ASSOC)) {
  $id=$row["id"];
  $beitrag=$row["beitrag"];
  $feld=$row["feld"];
  ?>
    <tr>
      <td width="30">
        <input type="checkbox" name="loeschen[]" value="<? echo $id ?>">
      </td>
      <td><? echo $beitrag ?></td><tr><td><? echo $feld ?></td></tr>
  </tr>
  <? } ?>
</table>
  <br>
  <input type="submit" name="submit" value="Löschen">
</form>
<?
} else {
echo "Keine Daten gefunden.";
}
?>
Ich kann die News anklicken und auf den Button (löschen) klicken aber nichts passiert ?

Ich weis nicht mehr weiter und eh ich sinnlos weiter Teste ;)

Die Webseite um die es geht! www.stella-max.dyndns.org/Versuche im Index erscheint das NewsCenter ! Es wird komplett vom Adminbereich aus gesteuert. Halt nur das löschen nicht ;)

MfG Frank
:o :lol:

Verfasst: 17.10.2006 19:24
von Miriam
$loeschen ist nicht per default ein Array und schon garkeins mit Daten drin....

Ergo: Vor dem Aufruf von $loeschen, dieses initialisieren --->

Code: Alles auswählen

$loeschen = $_POST['loeschen'];

Habe es so versucht ?

Verfasst: 17.10.2006 20:24
von Stella-Max
Ich habe es so versucht, aber auch kein Erfolg ;(

Code: Alles auswählen

<?
$db=@mysql_connect("localhost","xxxxxxx","xxxxxxx");
$select=@mysql_select_db("xxxxxxx",$db);
?>
<body bgcolor="#FFFFFF" text="#000000">
<h1>Datensätze markieren und löschen </h1>
<?
if($submit) {
// Wenn der Submit-Button geklickt wurde ...

// die Anzahl der markierten Datensaetze ermitteln

$y=count($loeschen);
echo "$y Datensaetze werden geloescht.<br><br>";

    // F&uuml;r jeden markierten Datensatz
    // den delete-Befehl aufrufen.
    for($x=0;$x<$y;$x++) {
    mysql_query("delete from phpbb_news where
                     news_id='$loeschen[$x]'");   // so oder so: id=...... egal es wird nicht gelöscht?
    echo "Geloescht: $loeschen[$x]<br>";
    }
}

// Die vorhandenen Datensätze abrufen
$result=mysql_query("select * from phpbb_news");

// Nur wenn Daten gefunden wurden,
// wird das Formular angezeigt.
if(mysql_num_rows($result)) {
?>
<form method="post" target="main" action="<?php echo append_sid("admin_news_show.$phpEx") ?>">
  <table width="300" border="0" cellspacing="0" cellpadding="0">
  <?
  // Daten anzeigen
  while($row=mysql_fetch_array($result,MYSQL_ASSOC)) {
  $id=$row["id"];
  $beitrag=$row["beitrag"];
  $feld=$row["feld"];
  $loeschen = $_POST['loeschen']; 
  ?>
    <tr>
      <td width="30">
        <input type="checkbox" name="loeschen[]" value="<? echo $id ?>">
      </td>
      <td><? echo $beitrag ?></td><td><? echo $id ?></td><td><? echo $feld ?></td><td><? echo $loeschen ?></td> 
  </tr>
  <? } ?>
</table>
  <br>
  <input type="submit" name="submit" value="Löschen">
</form>
<?
} else {
echo "Keine Daten gefunden.";
}
?>
Siehe in den Tabellen ! Habe es mal aus Spass an der Freude mit rein gesetzt und was kommt, ;) array ?

Code: Alles auswählen

      <td><? echo $beitrag ?></td><td><? echo $id ?></td><td><? echo $feld ?></td><td><? echo $loeschen ?></td> // habe das hier mal eingebaut um zu sehen was passiert es wird (array) angezeit wenn ich auf löschen gehe
Es will nicht ? Die Daten bleiben ?

MfG Frank

PS: erledigt habe es jetzt anderst gemacht ;) dieser script will nicht ;) ich werde den neuen der geht hier mal Posten !

Verfasst: 19.10.2006 20:01
von Miriam
Das Script will schon... Kann aber nicht. Der von mir vorgeschlagene Code hätte vor

Code: Alles auswählen

$y=count($loeschen);
eingebaut werden müssen. :)

Wo auch anders? Im Formular wird das Array $loeschen aufgebaut und dann abgeschickt. Also muss das Script Das (neue) Array $loeschen mit den POST-Variablen, die an die Datei übergeben wurden füllen.... Also jene, welche nach dem Abschicken mit SUBMIT in $_POST['loeschen'] gespeichert werden.

Hatte ich ja !

Verfasst: 19.10.2006 23:20
von Stella-Max
Hallo
hatte es oben über

Code: Alles auswählen

$y=count($loeschen); 
Eingehämmert aber nix, auch unlogisches versucht aber NIX er will einfach net, naja egal jetzt habe ich es mit einem anderen und es geht perfekt ;)

MfG Frank