Fehler nach Umstellung auf PHP5

zorromaus

Mitglied
Tja jetzt hat es mich auch erwischt. Trotz groß angekündigter Übergangsfrist bis Ende April 08 hat mein Provider mal kurzerhand auf Version PHP5.2 umgestellt und ich muß jetzt schnellstens ein paar Problem lösen:
PHP:
$loes17="a";
$loes18="14336";    //  checkboxen
$loes19="3584";     //   checkboxen


//-------Hier die Auswertung der checkboxen aus frage 18------
$fehl= "falsch";
$summe = 0;
for ($i=0;$i<count($c); $i++){
   $summe+= $c[$i];
}
 if ($loes18 == $summe){
$erg= ($loes18 = $summe);
            ($antw18 = $erg);
}
 else {
($antw18 = $fehl);
}

//echo "$antw18";

//-------Hier die Auswertung der checkboxen aus frage 19------
$fl="falsch";
$sum=0;
for ($x=0;$x<count($d); $x++){
   $sum+= $d[$x];
}
 if ($loes19 == $sum){
$erg= ($loes19 = $sum);
            ($antw19 = $erg);
}
 else {
($antw19 = $fl);
}

//echo "$antw19";

include("connectdb_inc.php");


// frage 18 und 19 ausgewertet dann das ergebnis in eine neue Variable ($antw18 $antw19 ) zusammengefasst

$sql = " INSERT INTO teiln (antw17, antw18, antw19,loes17, loes18, loes19,) VALUES ('$antw17','$antw18','$antw19','$loes17','$loes18','$loes19')";

mysql_query($sql) or die(mysql_error());


mysql_close();

?>
Folgende Fehlermeldung erhalte ich:
Column count doesn't match value count at row 1

das Formular poste ich das hier nicht, sondern man kann die Site hier aufrufen.

Ich habe den Kram mal selbst vor 6Jahren gelernt und einen Lehrgang besucht, und das Teil war meine Abschlußarbeit, beschäftige mich aber heute nur noch sporadisch bis fast überhaupt nicht mehr mit dem Thema PHP und schon garnicht mit PHP5, so das ich hier völlig im Wald stehe.

Z
 
Zuletzt bearbeitet:
Hi,

das ist ein MySQL-Fehler, der besagt, dass Du in Deinem INSERT-Query mehr Spalten angegeben hast, als Werte oder umgekehrt.
In den Spalten hast Du als erstes "datum", in den Werten fehlt das. Das kann eigentlich vorher gar nicht funktioniert haben.

LG
 
ups da habe ich die falsche kopie reingestellt, sorry
PHP:
$sql= " Insert Into teiln (vor,nach,gebdat,antw1,antw2,antw3,antw4,antw5,antw6,antw7,antw8,antw9,antw10,antw11,antw12,antw13,antw14,antw15,antw16,antw17,antw18,antw19,antw20,loes1,loes2,loes3,loes4,loes5,loes6,loes7,loes8,loes9,loes10,loes11,loes12,loes13,loes14,loes15,loes16,loes17,loes18,loes19,loes20)VALUES('$vor','$nach','$geb','$antw1','$antw2','$antw3','$antw4','$antw5','$antw6','$antw7','$antw8','$antw9','$antw10','$antw11','$antw12','$antw13','$antw14','$antw15','$antw16','$antw17','$antw18','$antw19','$antw20','$loes1','$loes2','$loes3','$loes4','$loes5','$loes6','$loes7','$loes8','$loes9','$loes10','$loes11','$loes12','$loes13','$loes14','$loes15','$loes16','$loes17','$loes18','$loes19','$loes20')";
mysql_query($sql) or die(mysql_error());
das müßte die richtige sein.
ich habe jetzt schon soviel rumgemurkst das ich da was durcheinander gebracht habe.

außerdem bekomme ich jetzt zwar keinen Fehlermeldung mehr aber es werden keinen Inhalte in die Datenbank geschrieben, sondern nur ein leerer neuer Datensatz angelegt

...ok ich habe es selbst jetzt raus gefunden.
das probelm waren jetzt wirklich nur noch die leeren Datensätze.

Lösungsansatz:
PHP:
$voris = $_POST['vor'];
...
$sql = " INSERT INTO teiln (vor...)VALUE('$voris'....)";

manchmal fehlt einfach nur ne Mütze Schlaf.....
 
Zuletzt bearbeitet:
Warscheinlich liegt es wie so oft an register globals. Jenachdem wie die Daten an dieses auswertende Script übergeben werden, also POST / GET usw. musst du auch $_POST['antw1'] die Werte wieder entgegennehmen.

$antw1 wird so nicht automatisch mit dem wert belegt.
 
Ja danke habe so etwa zeitgleich das Problem selbst erkannt und mittlerweile gelöst.
Also wer möchte kann sich das Teil dann doch mal hier ansehen.

kurze Erläuterung zu dieser Website:
Die Grundidee dieses Projekts war ja ursprünglich nicht sowas ins Internet zu stellen, sondern Ausbildungsbetriebe, IHK's oder Schulen ein Tool in die Hand zu geben das sowas für größere Gruppen gleichzeitig ohne lästiges Papier machbar ist.
Deshalb ist die Auswertung auch nicht für den Teilnehmer, sondern für den Prüfer gedacht.

Ich habe vor das ganze nochmal etwas umzubauen, aber erst muß ich mal die Zeit dafür haben.

Danke Z
 
Zurück