Radiobutton im Formular

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.

  1. Formular: Eingabe neuer und Bearbeiten alter Texte ( funktioniert soweit gut)

  2. 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[""]; } } ?\>
<?php if ($bearbeit) echo("$bearbeit"); ?> <?php if (!$bearbeit) echo(""); ?\> <?php if ($bearbeit) echo(""); ?\> <?php if ($bearbeit) echo(""); ?\> <?php if ($_POST['submit'])
{ $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(""); ?\>

Klaus: Probleme mit Vorschau
Ich bin es noch einmal.

Ich wollte die Skriptbereiche in obiger Frage noch optisch verbessern und lesbarer machen.
Leider kam ich nach der ersten Vorschau nicht mehr in den Editierbereich zurück.

Vielen Dank im Voraus

Gruß Klaus

hmm…
ist bissl schwer verständlich für mich der code, aber wenn ich das recht sehe dann machst Du nur sichtbar…

also Du änderst nur die Spalte „Sichtbar“ auf „J“ wenn derjenige angeklickt wird…
Jetzt wirds nämlich lustig… radiobuttons haben nämlich diese dumme eigenschaft, dass sie immer nur einmal aktiv sind wenn sie den gleichen Namen haben… Und Du hast dann aber mehrere „J“'s in Deiner Datenbank…

Als weitere Tips würde ich Dir noch empfehlen, dass Du Dir eine kleine debugausgabe machen lässt bei deinen sqls… Zumindest bis alles rund ist würde sich ein mysql_query($sql) or die("$sql"); anbieten…
dazu noch ein echo „ich hab gerade ein „J“ gesetzt“; damit Du auch siehst ob es am update liegt oder nicht…

Ich würde eigentlich auch nicht unbedingt ein if (!$submitsichtbar) verwenden… in den anderen Formeln hast Du das auch meistens umgeformt und evtl liegts auch daran…
warum überhaupt das „!“? müsste es nicht eher ein if (isset($submitsichtbar) sein??

naja… ich warte erst mal auf Deine Antworten :wink:

danke schon mal,
Hallo MunichFreak,
danke für die Reaktion.

ist bissl schwer verständlich für mich der code, aber wenn ich
das recht sehe dann machst Du nur sichtbar…

also Du änderst nur die Spalte „Sichtbar“ auf „J“ wenn
derjenige angeklickt wird…

Ich weiß, ich muß noch ein SQL-Statement schreiben, dass die vorherige
Zeile mit ‚J‘ auf ‚N‘ verändert wird. Aber ich wollte es erst mal schaffen, überhaupt die ENUM-Spalte über die Radiobuttons zu verändern.

Jetzt wirds nämlich lustig… radiobuttons haben nämlich diese
dumme eigenschaft, dass sie immer nur einmal aktiv sind wenn
sie den gleichen Namen haben… Und Du hast dann aber mehrere
„J“'s in Deiner Datenbank…

Stimmt, und das ist mir auch bewußt. Mit allein dem bisherigen Code könnte ich jedesmal einen ENUM-Wert umsetzen. Aber, wie Du richtig sagtest, ist das öfter möglich. Wie ich oben schon schrieb fehlt noch die Umsetzung des bisherigen ‚J‘ eintrages auf ‚N‘.

Dachte ich mir so:
if ($submitsichtbar){
$sql=„update Witze set Sichtbar=‚N‘ where Sichtbar=‚J‘“; // jetzt sind alle Zeilen der Sichtbarspalte auf ‚N‘ gesetzt

$sql=„update Witze set Sichtbar=‚J‘ where $sichtbar=’$id’“; // jetzt wird die Zeile auf ‚J‘ gesetzt, die mit dem Radiobutton angeklickt wird
mysql_query($sql);
}
Ist das so OK?
Wenn ich hier grundsätzliche Fehler mache, dann sage es mir bitte.

Als weitere Tips würde ich Dir noch empfehlen, dass Du Dir
eine kleine debugausgabe machen lässt bei deinen sqls…
Zumindest bis alles rund ist würde sich ein mysql_query($sql)
or die("$sql"); anbieten…
dazu noch ein echo „ich hab gerade ein „J“ gesetzt“; damit
Du auch siehst ob es am update liegt oder nicht…

Danke für den Tipp,
ich hatte sowas im Text, war mir peinlich. Ich hatte es für die Veröffentlichung herausgenommen.

Ich würde eigentlich auch nicht unbedingt ein if
(!$submitsichtbar) verwenden…

Danke, danke, danke, danke, danke, danke, …!
Danke für den Fehlerhinweis. Trotz stundenlangen auf den Code schauen nach Fehlern, habe ich den nicht gesehen.
kein Wunder, dass ich keine Fehlermeldung bekommen habe. Der Code ist hier ja syntaktisch einigermaßen in Ordnung.

Ich würde eigentlich auch nicht unbedingt ein if
(!$submitsichtbar) verwenden… in den anderen Formeln hast Du
das auch meistens umgeformt und evtl liegts auch daran…
warum überhaupt das „!“? müsste es nicht eher ein if
(isset($submitsichtbar) sein??

Du hast das also sofort erkannt.
Hier bin ich noch etwas unsicher. Das wäre eine meiner nächsten Frage n hier im Forum gewesen.
Ein gutes Buch, mit dem ich gerade unter anderem lerne, benutzt leider noch die globale Variablenübergabe. Ich habe dann versucht, es selbst umzustellen. Da mein Hauptaugenmerk zur Zeit das Erstellen von Formularen nach eigenen Vorstellungen ist, habe ich diese Problematik zurückgestellt, da globale Variablen auf jeden Fall funktionieren.

Ich mach in den nächsten Tagen mal ein extra Posting. Die Frage ist dann größer und würde jetzt zu einer anderen Problematik führen.

Nehme ich?
if ($submitsichtbar) oder
if (isset($submitsichtbar) oder
if ($_POST[‚submitsichtbar‘]) oder
if ("$submitsichtbar" == „sichtbar machen“) oder, oder, …?
Kann ich $_POST nur bei Formularvariablen nehmen, oder bei allen übergebenen Variablen?
Wie gesagt, in Kürze ein neues Posting.

Ich muß erst einmal das jetzige Skript bis zum Wochenende zum Laufen bringen.

Das Skript soll für jeden Laien auf einer Adminseite einfach per Radiobutton einen neuen Text für die Ausgabe aktivieren, der vorherige verschwindet dann automatisch.
Aufgrund der Radiobuttons kann der ungeübte nichts falsch machen, und immer nur einen Text aussuchen.
Jeder Alternativvorschlag ist gerne gesehen.

Danke für das Lesen.
Gruß Klaus

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Skript vereinfacht auf das Notwendige der Frage
Hallo,
ich habe den Code zur besseren Übersicht auf das Notwendige der Fragestellung begrenzt.
Der Code befindet sich weiter unten. Bitte anschauen.

Teilerfolg:
Nach Abschicken des Formulars wird die Zeile mit der Spalte Sichtbar=‚J‘
auf Sichtbar=‚N‘ gesetzt.
Es hat dann kein Radiobutton mehr das markierte Zeichen. Alle
Radiobuttons sind leer.

Das bedeutet schon mal, dass die Bedingung

if (isset($_POST[‚submitsichtbar‘]) && ($submitsichtbar==„sichtbar machen“)
erkannt und teilweise ausgeführt wird. Die beiden Sätze mit dem Befehl
echo()
werden auch ausgeführt.

Leider wird aber kein markiertes Radiobutton übernommen.
Der Wert Sichtbar wird nicht auf ‚J‘ gesetzt.

Frage:
Darf man zwei sql-Statements nacheinander ausführen, so wie ich es getan habe?

Oder ist das Statement falsch.
Ich verstehe das so:
Der Nutzer markiert einen Radiobutton und schickt das Formular ab.
Die obige aufgeführte if Bedingung wird ausgeführt.
Und folgendes Statement soll ablaufen.

$sqls = „update Witze set Sichtbar=‚J‘ where ID=’$id’“;

Die $id - Nummer ist ja jene, die markiert wurde.

Würde dies klappen, so stelle ich mir vor, dass dann die weiter
unten im Skript ausgführte while Schleife dies bereits berücksichtigt
und den markierten Radiobutton auch gleich richtig anzeigt.

Wo ist das Problem?
Was mache ich falsch?

Nachdem bereits alle Werte auf ‚N‘ gesetzt sind, habe ich mal die erste sql-Anweisung auskommentiert.
So, dass nur noch die untere Anweisung alleine ausgeführt werde müßte, leider kein Erfolg.

Unten kommt jetzt das verkürzte Skript
Gruß Klaus

leer[Zurück zur Hauptverwaltungsseite](../index.htm)
<?php include("../zugang.inc.php");<br /> ?\><?php if (isset($_POST['submitsichtbar']) && ($submitsichtbar=="sichtbar machen"))<br /> {
 echo("hallo
");

 $sqla = "update Witze set Sichtbar='N' where Sichtbar='J'";
 mysql\_query($sqla);

 echo("erste Anfrage ausgeführt
");

 $sqls = "update Witze set Sichtbar='J' where ID='$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')<br /> from Witze order by Datum desc");
 if (!$textlist)
 {
 echo("

Fehler bei der Ausführung der Abfrage: " . mysql\_error() . "");  
 exit();  
 }  
 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=$id
$text
".
" ");
}
if($janein == ‚N‘){
echo("ID=$id
$text
".
" „);
}
}
echo(“

");

echo("");
?>

Hallo MunichFreak,
danke für die Reaktion.

gerne doch :wink:

Dachte ich mir so:
if ($submitsichtbar){
$sql=„update Witze set Sichtbar=‚N‘ where Sichtbar=‚J‘“; //
jetzt sind alle Zeilen der Sichtbarspalte auf ‚N‘ gesetzt

$sql=„update Witze set Sichtbar=‚J‘ where $sichtbar=’$id’“;
// jetzt wird die Zeile auf ‚J‘ gesetzt, die mit dem
Radiobutton angeklickt wird
mysql_query($sql);
}
Ist das so OK?
Wenn ich hier grundsätzliche Fehler mache, dann sage es mir
bitte.

hmja… es geht schon so… Gefahr ist bei sowas halt nur, dass die eine sql-abfrage länger dauern kann als die andere und damit die updates nicht korrekt durchgeführt werden… Für eine so simple Tabelle wie Du sie hast sollte das aber kein Problem sein - erst recht nicht, da die Aufrufe aus dem gleichen Script kommen :wink:

Danke für den Tipp,
ich hatte sowas im Text, war mir peinlich. Ich hatte es für
die Veröffentlichung herausgenommen.

sowas ist nie peinlich… es kommt bei mir auch öfter vor, dass ich an code einfach mal verzweifle, weil ich einfach nicht darauf gekommen bin, dass die Schleife garnicht ausgeführt wurde *g*

Danke, danke, danke, danke, danke, danke, …!
Danke für den Fehlerhinweis. Trotz stundenlangen auf den Code
schauen nach Fehlern, habe ich den nicht gesehen.
kein Wunder, dass ich keine Fehlermeldung bekommen habe. Der
Code ist hier ja syntaktisch einigermaßen in Ordnung.

bitte *g* hatte er das sql also garnicht abgesetzt?

Du hast das also sofort erkannt.
Hier bin ich noch etwas unsicher. Das wäre eine meiner
nächsten Frage n hier im Forum gewesen.
Ein gutes Buch, mit dem ich gerade unter anderem lerne,
benutzt leider noch die globale Variablenübergabe. Ich habe
dann versucht, es selbst umzustellen. Da mein Hauptaugenmerk
zur Zeit das Erstellen von Formularen nach eigenen
Vorstellungen ist, habe ich diese Problematik zurückgestellt,
da globale Variablen auf jeden Fall funktionieren.

Ich mach in den nächsten Tagen mal ein extra Posting. Die
Frage ist dann größer und würde jetzt zu einer anderen
Problematik führen.

Nehme ich?
if ($submitsichtbar) oder
if (isset($submitsichtbar) oder
if ($_POST[‚submitsichtbar‘]) oder
if ("$submitsichtbar" == „sichtbar machen“) oder, oder, …?
Kann ich $_POST nur bei Formularvariablen nehmen, oder bei
allen übergebenen Variablen?
Wie gesagt, in Kürze ein neues Posting.

also ich regle es eigentlich immer so, dass ich eine verwende… So kann ich Sinnvollere Texte übergeben, die dann im php-code einfacher zu verstehen sind :wink:
Was Dein $_POST „Problem“ angeht… Nein… Es kommt dabei auf die Methode an mit der Du die Variablen überträgst… Dafür stehen Dir wie Du vermutlich weisst und zur verfügung… Wahrscheinlich bringt es Dich jetzt eh schon auf die richtige Spur :wink:
Wenn Du GET verwendest, dann stehen Deine Variablen in der Adressleiste des Browsers… Mit POST sind sie nicht sichtbar, dafür bekommt man beim reload dann diese Doofe Meldung, ob das alles nochmal geschickt werden soll…
Wenn Du nun GET als methode hast, dann sind Deine Variablen auch in $_GET[’$bezeichnung’] gespeichert… mit POST eben dann in $_POST…
Ich bin mir jetzt nicht ganz sicher ob das auch gemischt sein kann… denke aber schon, wenn Du angibst…
müsste man halt ausprobieren :wink:

Ich muß erst einmal das jetzige Skript bis zum Wochenende zum
Laufen bringen.

viel Erfolg dabei

Das Skript soll für jeden Laien auf einer Adminseite einfach
per Radiobutton einen neuen Text für die Ausgabe aktivieren,
der vorherige verschwindet dann automatisch.
Aufgrund der Radiobuttons kann der ungeübte nichts falsch
machen, und immer nur einen Text aussuchen.
Jeder Alternativvorschlag ist gerne gesehen.

muss doch aber nicht mit radiobutton sein, oder? :wink:
Evtl klappt ja die übergabe der id nicht so ganz… deswegen lass Dir mal den sql-string ausgeben, auch wenn alles zu klappen scheint…
Wenn es nicht klappt, weisst Du worauf Du Dein Augenmerk lenken solltest…
Eventuell wäre es aber auch leichter mit checkboxen zu arbeiten oder garnicht erst lange damit rumquälen sondern einfach für jedes ein extra formular erstellen… etwa ein
//so siehst Du besser welche Variablen übergeben werden :wink:

naja und dann eben ein
if ($action == „changeselection)
{
$sql = „UPDATE Witze SET Sichtbar=‚N‘“;
mysql_query($sql) or die (“$sql");
$sql = „UPDATE Witze SET Sichtbar=‚J‘ WHERE ID=’$_GET[sichtbar]“;
mysql_query($sql) or die ("$sql");
echo "SQL wurde ausgeführt: $sql
";
}

ein Kumpel hat mal ein kurzes if then else für ein sql-update verwendet… das könntest Du evtl auch machen… aber wie ging das gleich wieder *grübel*… muss ich mal daheim nachsehen

Fehler gefunden!
Hallo Leser,
danke MunichFreak.

Es klappt jetzt.

Ich habe den sql-Statement zum Schreiben des neuen Sichtbar=‚J‘ falsch gesetzt.
So ist es richtig:
$sqls = „update Witze set Sichtbar=‚J‘ where ID=’$sichtbar’“;

Und so war das Falsche vorher:
$sqls = „update Witze set Sichtbar=‚J‘ where ID=’$id’“;

Aus dem Radiobuttonbefehl

hatte ich also den falschen Wert genommen.

Es klappt jetzt, nur der angeklickte Text wird über den
Radiobutton auf sichtbar gesetzt.

Für weitere Verbesserungen oder Kritik am Skriptcode bin ich
nach wie vor dankbar.

unten noch mal der richtige Code.

Die Nacht war lang, ich schlafe erst mal eine Runde (jetzt 09:07 Uhr)

Gruß Klaus

leer[Zurück zur Hauptverwaltungsseite](../index.htm)
<?php include("../zugang.inc.php");<br /> ?\><?php if (isset($_POST['submitsichtbar']) && ($submitsichtbar=="sichtbar machen"))<br /> {
 echo("hallo
");
 echo("Wert: $sichtbar Wert
"); // nur zur Kontrolle

 $sqla = "update Witze set Sichtbar='N' where Sichtbar='J'";
 mysql\_query($sqla);

 echo("erste Anfrage ausgeführt
");

 $sqls = "update Witze set Sichtbar='J' where ID='$sichtbar'"; // hier war der Fehler
 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')<br /> from Witze order by Datum desc");
 if (!$textlist)
 {
 echo("

Fehler bei der Ausführung der Abfrage: " . mysql\_error() . "");  
 exit();  
 }  
 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=$id
$text
".
" ");
}
if($janein == ‚N‘){
echo("ID=$id
$text
".
" „);
}
}
echo(“

");

echo("");
?>

Das bedeutet schon mal, dass die Bedingung
if (isset($_POST[‚submitsichtbar‘]) &&
($submitsichtbar==„sichtbar machen“)
erkannt und teilweise ausgeführt wird. Die beiden Sätze mit
dem Befehl
echo()
werden auch ausgeführt.

fein… dann lass Dir jetzt mal bitte $id ausgeben - ich fürchte nämlich, dass da der Hund begraben ist und diese id nicht in der variable ist, die Du gerne hättest…

Frage:
Darf man zwei sql-Statements nacheinander ausführen, so wie
ich es getan habe?

siehe vorhin: Ja, aber es geht auch schöner, leider hab ich grade nur nicht so den code dafür parat…

Wo ist das Problem?
Was mache ich falsch?

also wenn das der einzige code ist… dann hab ich den Fehler…
das da:

$sqls = „update Witze set Sichtbar=‚J‘ where ID=’$id’“;

sollte dann eher
$sqls = „update Witze set Sichtbar=‚J‘ where ID=’$sichtbar’“;
bzw
$sqls = „update Witze set Sichtbar=‚J‘ where ID=’$_POST[sichtbar]’“;
heissen…
Hoffe mal, dass nicht nur das
$id=’$_POST[sichtbar]; aus Deiner Codeangabe rausgerutscht ist, sonst bringts natürlich nicht viel :wink:

Da war ich wohl eine minute zu langsam *g*

Hallo Leser,
danke MunichFreak.

Es klappt jetzt.

Glückwunsch :smile:

Für weitere Verbesserungen oder Kritik am Skriptcode bin ich
nach wie vor dankbar.

mal sehn :wink:

leer
Zurück zurHauptverwaltungsseite

<?php : include("../zugang.inc.php");
?\> <?php evtl hier eine or anweisung, falls die Datei mal nicht includiert werden kann... Spart unnötige Fehlersuche wenn das mal der Fall sein sollte und bei anderen Verzeichnissen kann das schon mal vorkommen...

if (isset($_POST[‚submitsichtbar‘]) &&
($submitsichtbar==„sichtbar machen“))
{
echo("hallo
");
echo("Wert: $sichtbar Wert
"); // nur zur
Kontrolle

die echos (auch unten) können dann ja wieder raus ^^

$sqla = „update Witze set Sichtbar=‚N‘ where
Sichtbar=‚J‘“;
mysql_query($sqla);

echo("erste Anfrage ausgeführt
");

$sqls = „update Witze set Sichtbar=‚J‘ where
ID=’$sichtbar’“; // hier war der Fehler
mysql_query($sqls);
}
?>

evtl kann man das query noch umformen, so dass ein einziges query reicht…
ich meine dass es etwa so ging:
„UPDATE Witze set Sichtbar=(if(ID=$sichtbar,J,N)) WHERE Sichtbar=‚J‘ OR ID=$sichtbar“;
am besten versucht sich sowas dann im mysql/phpmyadmin

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)

if (!isset($textlist)) ?

{
echo("

Fehler bei der Ausführung der Abfrage: " .
mysql_error() . „“);
exit();
}
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=$id
$text
".
" ");
}
if($janein == ‚N‘){
echo("ID=$id
$text
".
" ");
}

Wie wäre es hier mit einem:
if ($janein == ‚J‘) $checked = " checked";
else $checked = „“;
echo("ID=$id
$text
".
" ");

}
echo("

");

echo("");
?>

Hallo MunichFreak | Überschneidung unserer Artikel
Hallo MunichFreak,

vielen Dank für Deine Antworten.
Ich habe gerade Deine beiden neuen Postings gelesen.
Im zweiten hast Du ja auch den Fehler beschrieben.

Wir haben beide fast zeitgleich gepostet, so war ich bezüglich Deiner Artikel nicht immer auf dem Laufendem.

Ich hatte den Fehler bereits selbst gefunden, wie Du im unteren Posting lesen kannst.
Deine weiteren Tipps und Stellungnahmen werde ich später noch mal genauer und konzentrierter lesen.

Ich muß jetzt erst mal schlafen, und dann muß ich noch arbeiten
(ob das wohl klappt?).

Übers Wochenende dann noch die Skripte fertig stellen.

Vielleicht werde ich also erst über das Wochenende oder Montag zu Deinen Artikeln weitere Frage stellen.
Schau also auch in ein paar Tagen hier mal wieder her.

Bis dahin
nochmal den allerbesten Dank

Gruß Klaus

klar, werd ich machen :smile:
gute nacht und viel Erfolg (auch in der arbeit :wink:)

Hallo

<?php :: include("../zugang.inc.php");
?\>

evtl hier eine or anweisung, falls die Datei mal nicht
includiert werden kann… Spart unnötige Fehlersuche wenn das
mal der Fall sein sollte und bei anderen Verzeichnissen kann
das schon mal vorkommen…

Wie meist Du das?
include("…/zugang.inc.php"); or echo(„leider kein Zugang“); ?

ohne das erste „;“
oder eben ein
$include = „…/zugang.inc.php“;
if (file_exists($include)) include($include);
else echo „leider kein Zugang zur Datenbank möglich“;

Zur Überschneidung des Postens:
Schon ein paar mal habe ich gedacht, ich sollte meine
Telefonnummer angeben, dann kann man manches Problem besser
mündlich ansprechen.

kostet aber mehr :wink: und am telefon sieht man den code auch nicht… dann schon eher tools wie pcanywhere oder vnc bzw netmeeting nutzen

Kleine Zukunftsversion:

hrhr

In 10 Jahren klicken wir im Forum auf einen Link und sind
direkt miteinander verbunden.
Auf meinem 30 Zoll Flatscreen Monitor habe ich ein kleines
Fenster in dem ich Dich direkt sehen kann.

beamer :wink: und einen Monitor brauchen wir dann nimmer… das wird alles auf der Tapete angezeigt, die auch Deinen Raum mal eben umfärben kann wenn Du Lust dazu hast :wink:

Natürlich können
wir direkt miteinander sprechen.

gibts auch jetzt schon -> Netmeeting, Teamspeak etc… ist nur ne Frage der Zeit, bis Mikrofon und Webcam standardmässig in Monitoren etc integriert sind :wink:

In einem weiteren Fenster auf dem Bildschirm sehe ich meinen
bearbeiteten Text und Code.
Es ist ist aber noch genug Platz auf dem Schirm, um ebenso den
von Dir bearbeiteten Text in Time zu sehen.

ich sag ja - vnc und pcanywhere :wink: bzw remote desktop

Das ganze auch noch mit einer sicheren Verbindung.

sollte auch jetzt schon sicher sein hoffe ich mal :wink:

Im Grunde ist das wohl schon jetzt technisch möglich.
Aber leider nicht der Standart.

siehe oben, das meiste gibts schon, aber halt wirklich nicht standard… aber was bedeutet Standard? Vom Zeitpunkt der Windows-Installation integriert? urgs *schauder* bitte Herr im Himmel, lass es Linux regnen :wink:

Die Nacht war lang, ich höre jetzt erst mal auf. Leider fangen
gerade Handwerker in der Nachbarschaft mit lauten Arbeiten an.
Ich muß schlafen.

dann tu’s auch endlich :wink:)

Gruß und Danke

Grüsse und Bitte zurück :wink: