• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[Mysql] Nur 1 Arrayelement wird eingetragen

S

slosd

Guest
Ich habe diesen Code:
PHP:
foreach($_SESSION['ans'] as $nr => $val) {

					$sql = "INSERT INTO poll_ans
								(pollid, ans, hits)
							VALUES
								('".$pollid[0]."','{$val}',0)";
					mysql_query($sql);

}
Das Problem ist, dass immer nur das 1 Arrayelement in der Datenbank landet.
Foreach geht aber alle Element durch (das hab ich kontrolliert), also wirds an Mysql liegen. Ich find aber keinen Fehler.
 
Zuletzt bearbeitet von einem Moderator:
das übliche debug-prozedere:
PHP:
// zuoberst in der datei
ini_set("display_errors", "1");
error_reporting(E_ALL);

// dann in foreach-schlaufe
mysql_query($sql) or die(mysql_error());
 
Code:
<pre><?php

foreach($_SESSION['ans'] as $nr => $val)
{
	$sql = 'INSERT INTO `poll_ans` (`pollid`, `ans`, `hits`) '
	     . 'VALUES (\'' . $pollid[0] . '\', \'' . $val . '\', \'0\')';

	echo $sql . "\r\n";
}

?></pre>
 
ahja die übliche ( :rolleyes: ) Prozedur bringt den Fehler zum Vorschein:
Es war kein auto_increment für 'id' festegelegt. Danke für die Antworten funzt jetzt einwandfrei.
 
Mein Beitrag ist verloren gegangen, hier noch mal nen Beispiel mit nur einem sql_query:

PHP:
$values = array();
foreach($_SESSION['ans'] as $nr => $val) 
{ 
    $values[] = '("'.$pollid[0].'","'.$val.'",'.0.')'; 
}
$query = 'INSERT INTO `poll_ans` (`pollid`, `ans`, `hits`) VALUES '.implode(',', $values);

und bei hits könntest du dir mal überlegen nen Default wert von 0 zu nehmen dann kannst du die Spalte bei neuanlegen rauslassen
 
Zurück
Oben