warum geht das nicht?

Golz

Erfahrenes Mitglied
warum nimmt er den SQL befehl nicht an?


PHP:
<input name="ja" value=" Ja " type="submit"> 

if ($ja = true) 
{ 
    $update_sql = "UPDATE `klassensprecher` SET `Stimmen` = '1' WHERE `Name` = '".$_POST['radio']."'"; 
    $update = mysql_query($update_sql, $klassensprecherwahl) or die(mysql_error()); 
}


wo ist denn da ein Fehler kann mir das mal einer sagen?
 
Also auf den ersten Blick fällt mir auf, dass du in der IF mit = anstatt == vergleichst. Vielleicht wars das schon. Ansonsten mal etwas mehr posten. Fehlermeldung, weiterer Quelltext, usw.
 
1.) Was macht der HTML-Code des Input-Feldes so blank im PHP-Code?
2.) Ist die IF-Bedingung true, bzw. was steht in der Variable $ja?
3.) Woher weisst du, dass der SQL-Befehl nicht "angenommen" wird und was bedeutet das genau?
4.) Liefert mysql_error() eine Fehlermeldung zurück? Wenn ja, welche?
5.) Was steht in $_POST['radio']?
6.) Was passiert, wenn du den SQL-Befehl selbst über phpMyAdmin ausführst?
 
nur ein kleines Problem ist dabei ^^ es gíbt keine Fehlermeldung ^^

ok von vorne :D

ich mache gerade ein klassensprecherwahl Script für unsere Schule.

da gibt es in SQL 2 Tabellen 1. User 2. klassensprecher

in der tabelle klassensprecher(hierfür notwendige tabelle) gibt es 3 Felder: Name, Stimmen, Gewonnen

in der user.php wähle ich über einen Radio Button den klassensprecher aus und schicke die info an die abstimmen.php:

PHP:
<?php require_once('Connections/klassensprecherwahl.php'); ?>
<?php
//Statusabfrage ob User Online ist
	//ANFANG SQL Abfrage
mysql_select_db($database_klassensprecherwahl, $klassensprecherwahl);
$query_online = "SELECT `Username`, `Online` FROM `user` WHERE `Username` = '".$userstatus_st."'";
$online = mysql_query($query_online, $klassensprecherwahl) or die(mysql_error());
$row_online = mysql_fetch_assoc($online); 
$totalRows_online = mysql_num_rows($online);

//Statusabfrage ob User Online ist
	//wenn username aus SQL DB nich gleich der $_GET Variable ist, dann text + java zurück button
if($row_online['Username'] =! $_GET['userstatus_st'])
{
	echo "Bitte loggen Sie sich zuerst ein.<br><br>";
	echo '<input type="button" name="nein" value=" zurück " onClick="javascript:history.back()">' ;	
	exit;
}

?>

<html>
<head>
<title>Wahl Bestätigung</title>
</head>
<body>
<form action="./abgestimmt.php" method="post">
<?php echo "Wollen Sie den Kandidaten ".$radio." wirklich wählen?<br><br>"; ?>
<input name="ja" value=" Ja " type="submit">
<input type="button" name="nein" value=" Nein " onClick="javascript:history.back()">
</body>
</html>
<?php

//wenn ja button gedrückt wird, dann Tabelle Stimmen bei Kandidat in DB +1
if ($ja == true)
{
	$update_sql = "UPDATE `klassensprecher` SET `Stimmen` = '1' WHERE `Name` = '".$_POST['radio']."'";
	$update = mysql_query($update_sql, $klassensprecherwahl) or die(mysql_error());
}
?>

das iss die ganze abstimmen.php

hier soll nochmal anzezeigt werden
Mit einem JA Buttonkann er auswählen ob er sich sicher ist oder nicht. mit nein kommt er eins zurück und wenn er den JA Butto drückt, soll in der DB +1 auf die Stimmen Tabelle des klassensprechers gezählt werden.

iss eigentlich net schwer :D komm aber net weiter.

wenn ich bei mir ja dücke springt er zwar weiter, schreibt aber das 1 nicht in die DB rein.

reichen die Infos?

Gruß + Vielen Dank

Patrick
 
Könntest du dennoch den Rat von Karl beherzigen und zusätzlich meine 6 Fragestellungen abarbeiten? Das nennt sich debuggen und sollte jeder Programmierer selbständig tun.

Sven
 
Die Variable $radio dürfte leer sein, da Du ja ein neues Formular abschickst, aber $radio nicht neu übergibst.
Setz nochmal ein Input type=hidden in das zweite Formular, wo Du die Variable $radio neu übergibst. ;)


Dunsti
 
Zuletzt bearbeitet:
1.) Was macht der HTML-Code des Input-Feldes so blank im PHP-Code?
- den ist inzwischen ins PHP eingebunden

2.) Ist die IF-Bedingung true, bzw. was steht in der Variable $ja?
- das ist ja die Hauptfrage, wie kann ich sagen, dass wenn ja button gedrückt wird, dass der SQL Befehl ausgeführt wird.

3.) Woher weisst du, dass der SQL-Befehl nicht "angenommen" wird und was bedeutet das genau?
- ich schau in der SQL DB nach ob der wert um 1 erhöt wurde

4.) Liefert mysql_error() eine Fehlermeldung zurück? Wenn ja, welche?
- nein tuts nicht

5.) Was steht in $_POST['radio']?
- da ist der Wert drin, der auf user.php ausgewählt wurde

6.) Was passiert, wenn du den SQL-Befehl selbst über phpMyAdmin ausführst?
- habe sql geändert auf :
PHP:
$update_sql = "UPDATE `klassensprecher` SET `Stimmen` = 'Stimmen' + 1 WHERE `Name` = '".$_POST['radio']."'"

den Rat von Karl bin ich als erstes nachgegangen.
 
Andreas Dunstheimer hat gesagt.:
Die Variable $radio dürfte leer sein, da Du ja ein neues Formular abschickst, aber $radio nicht neu übergibst.
Setz nochmal ein Input type=hidden in das zweite Formular, wo Du die Variable $radio neu übergibst. ;)


Dunsti

muss ich dich leider entäuschen :D

in der Variable $radio ist die gewünschte Information drin des bekomm ich ja schon von der Seite davor.
 
Bist Du da Sicher?

Bei einem HTML-Formular werden ausschliesslich die Werte übergeben, die in <input>-Feldern stehen. Bei Deinem Formular mit der Rückfrage "sind sie sicher?" wird zwar die Variable $radio ausgegeben, aber nicht erneut mit dem Formular mitgeschickt. ;-)


PHP:
echo "<input type='hidden' name='radio' value='" . $radio . "'>";


Dunsti
 
Zurück