Hallo,
ich bin PHP/MySQL Anfänger und probiere mich gerade an meinen ersten Skripten.
Ich komme gerade nicht weiter, vielleicht könnt ihr helfen.
Aufgabenstellung:
Ich möchte, dass aus einer Liste von Texten in der Datenbank nur einer angezeigt wird.
Als Beispiel vielleicht Witze.
Für diesen Text ist im Datensatz ein ENUM-Wert gesetzt.
(ENUM: Datentyp, der nur zwei Werte haben kann, wovon nur einer aktiv gesetzt ist)
Mein Problem liegt im Skript für den Administrationsbereich.
Auf einer Adminseite sollen alle Texte der Datenbank mit einem Radiobutton angezeigt werden.
Markiert man einen Radiobutton und klickt den Submitbutton, wird der ENUM-Wert verändert.
Damit ist nun dieser Text der angezeigte.
Problem:
Die Liste mit den Texten und den dazugehörigen Radiobuttons kann ich auslesen und anzeigen.
Der Radiobutton des zur Zeit aktiven Textes ist mit checked auch optisch angezeigt.
So weit, so gut.
Jetzt das Problem:
Klicke ich den Submitbutton, wird die Seite nach seinem Selbstaufruf nur noch ohne die
Radiobuttons angezeigt. Der ENUM-Wert ist auch nicht verändert.
Was mache ich falsch?
Hier die while Schleife zum anzeigen der Texte mit Radiobutton:
$textlist = @mysql\_query("select ID, SpruchText, Sichtbar, date\_format(Datum, '%d.%m.%Y')
from Witze order by Datum desc");
echo("
");
while ($anews = mysql_fetch_array($textlist))
{
$text = nl2br(htmlspecialchars($anews[„SpruchText“]));
$id = $anews[„ID“];
$datum = $anews[„date_format(Datum, ‚%d.%m.%Y‘)“];
$janein = $anews[„Sichtbar“];
if($janein == ‚J‘){
echo("$id $datum $janein
$text
".
„“ .
"löschen " .
"bearbeiten
„);
}
if($janein == ‚N‘){
echo(“$id $datum $janein
$text
".
„“ .
"löschen " .
"bearbeiten
„);
}
}
echo(“
„);
echo(“");
Eventuell liegt es aber auch an anderen Teilen des Skriptes.
Darum hier der Rest.
Im Skript sind sicherlich mehrere Fehler. Wer Lust hat, kann mir gerne
Verbesserungsvorschläge machen, aber wer wenig Zeit hat, bitte erst mal
obige Frage beantworten.
Skript enthält zwei Formulare.
-
Formular: Eingabe neuer und Bearbeiten alter Texte ( funktioniert soweit gut)
-
Formular: Anzeige aller Texte mit Radiobutton je Text (funktioniert nicht richtig)
leerZurück zur Hauptverwaltungsseite
<?php include("../zugang.inc.php");
?\><?php // altes ab hier
if (isset($bearbeitenid)) { $bearbeitentext = "select SpruchText,ID from Witze where ID='$bearbeitenid'"; $hinein = mysql\_query($bearbeitentext); while ($bingo = mysql\_fetch\_array($hinein)) { $bearbeit = $bingo["SpruchText"]; $bearbeitenid = $bingo["ID"]; //$bid = $bingo[""]; } } ?\>
{ $text = $\_POST['spruchtext']; // $ueber = $\_POST['kubueber']; // Daten jetzt in Datenbank eingeben $sql = "insert into Witze set SpruchText='$text'," . "Datum=now()"; mysql\_query($sql); } if ($\_POST['beasubmit']) { $text = $\_POST['spruchtext']; // $ueber = $\_POST['kubueber']; // $id = $\_POST['beaid']; // $bd = $\_POST['bida']; // Daten jetzt in Datenbank eingeben $sqla = "update Witze set SpruchText = '$text' where ID='$beaid'"; mysql\_query($sqla); } // Wenn ein Witz gelöscht werden soll, wird dies ausgeführt if (isset($deletetermin)) { $sql = "delete from Witze where ID='$deletetermin'"; mysql\_query($sql); } if (!$submitsichtbar) { $sqls = "update Witze set Sichtbar='J' where $sichtbar='$id'"; mysql\_query($sqls); } ?\> Und so wie hier unter sehen die Einträge aus: <?php $textlist = @mysql_query("select ID, SpruchText, Sichtbar, date_format(Datum, '%d.%m.%Y')
from Witze order by Datum desc"); if (!$textlist) { echo(" Fehler bei der Ausführung der Abfrage: " . mysql\_error() . ""); exit(); } // Jetzt kommt der problematische Teil echo(""); while ($anews = mysql\_fetch\_array($textlist)) { $text = nl2br(htmlspecialchars($anews["SpruchText"])); $id = $anews["ID"]; $datum = $anews["date\_format(Datum, '%d.%m.%Y')"]; $janein = $anews["Sichtbar"]; if($janein == 'J'){ echo("$id $datum $janein $text ". "" . "[löschen](%2524PHP_SELF?deletetermin=%2524id) " . "[bearbeiten](%2524PHP_SELF?bearbeitenid=%2524id) "); } if($janein == 'N'){ echo("$id $datum $janein $text ". "" . "[löschen](%2524PHP_SELF?deletetermin=%2524id) " . "[bearbeiten](%2524PHP_SELF?bearbeitenid=%2524id) "); } } echo(" "); echo(""); ?\>