was iss hier falsch?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
-
$sql_ip="SELECT `ip` FROM `vote` WHERE ip = '$_POST[ip]'";
97: $ergebnis_ips=mysql_query($sql_ip, $link);
98: for($i=0;$i<mysql_num_rows($ergebnis_ips);$i++)
99: {
100: $ergebnis_ips2[$i]=mysql_fetch_array($ergebnis_ips);
101: }
102: foreach($ergebnis_ips2 as $temp_ips)
103: {
104: if($temp_ips[0]==$_POST[ip])
105: { $fehler.=" Bereits abgestimmt"; }
106: }
den sinn erf?llt es...aba ich bekommen immer wenn ich abstimme:
Warning: Invalid argument supplied for foreach() in /home/webpages/lima-city/jg-baume/html/info.php on line 102
wenn ihr noch mehr code braucht, bitte posten. k?nnt ihr mir helfen? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hallo jg-baume!
Das kurze Code-St?ck reicht mir nicht zur Fehler-Entdeckung! Aber ich habe beim Testen einen anderen Fehler gefunden, in Zeile 104:
if($temp_ips[0]==$_POST[ip])
Das sollte wohl eher ...$_POST['ip'] hei?en oder ...$_POST[$ip], je nachdem, wie dein vorheriges Programm ausgesehen hat. Jedenfalls meckert der PHP-Interpreter bei mir ?ber dieses Konstrukt.
Vielleicht hilft dir ja auch, wenn du dir mit print_r() mal die Variablen $ergebnis_ips2 und $temp_ips anzeigen l?sst.
MfG
alopex -
witzige konsteletion
es geht ja auch bissel einfacher^^
$sql = "SELECT ip FROM vote WHERE ip = '".$_POST['ip']."'";
$result = mysql_query($sql) or die(mysql_error() .'<br />' . $sql);
if(mysql_num_rows($result) != 0)
$fehler .= "Bereits abgestimmt!";
kleiner erl?uterung:
du fragst ja schon nach der ip. allso ist die schleife (wobei while da die richtige wahl ist und nicht for und foreach) unn?tig. du musst nur ?berpr?fen ob num_rows etwas zur?ckliefert -> if(mysql_num_rows($result) != 0). wenn ja fehlermeldung.
fertig^^ -
aber ich glaube dann kann ich doch net abstimmen lassen, oder? hab den fehler gefunden...liegt darin, dass der array ja keinen wert hat, wenn die ip noch net vorhandenist, mus mir da noch was ?berlegen. wenn man allerdings schonmal abgestimmt hat, klappt es auch ohne fehler, den $fehler auszugeben.
@aloplex ne weil ich woanders im code habe: $_POST[ip]=$SERVER[REMOTE_ADDR](oder so ?hnlich...^^)
"ip" iss nen hidden field -
doch nat?rlich...
zum if gibt es ja auch ein else
also::
$sql = "SELECT ip FROM vote WHERE ip = '".$_POST['ip']."'";
$result = mysql_query($sql) or die(mysql_error() .'<br />' . $sql);
if(mysql_num_rows($result) != 0)
{
$fehler .= "Bereits abgestimmt!";
} else {
// die ip as dem hidden field in die datenbank eintragen
// und den gevoteten wert erh?hen
// ggf. eine meldung ausgeben like:: Deine Stimme wurde gewertet!
}
fertig^^ -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage