Jag tvivlar på att det är fel i SQL:n, därför postat här och inte under Databaser.
Jag försöker spara korsordsinfo till min databas. Tabellen innehåller nio stycken fält, varav det första är auto_increment och samtliga NOT NULL. Således försöker jag lägga in värden i de 8 sista fälten.
function saveCW(&$val) {
$qInsert = "INSERT INTO Crossword (Title, Theme, Size, Desc, Creator, Cathegory, CW, corrCW)
VALUES ('$val[0]', '$val[1]', '$val[2]', '$val[3]', '$val[4]', '$val[5]',
'$val[6]', '$val[7]')";
$res = mysql_query($qInsert) or die("Couldn't insert CW. ".mysql_error());
return mysql_insert_id();
}
Funktionens anrop:
function saveToDB(&$CW) {
$id = saveCW($QW[0]);
echo "id = ". $id. "<BR>";
//...
}
Detta resulterar i en utskrift av "id = 1", vilket är OK då det är det första korsordet jag försöker stoppa in. Dessutom utförs åtskilliga rader nedanom denna kod helt OK.
Men... När jag vill skriva ut innehållet i Crossword för att kolla att allt är OK... så är det inte det!!!
$query = "SELECT * FROM Crossword";
$res = mysql_query($query) or die("CROSSWORD check");
while ($row = mysql_fetch_array($res, MYSQL_NUM)) {
foreach ($row as $ix => $val)
echo "$ix => $val, ";
echo "<BR>";
}
Skriver ut:
0 => 1, 1 => , 2 => , 3 => , 4 => , 5 => , 6 => , 7 => , 8 => ,
Likväl, i main omedelbart före anropet att spara
foreach ($CW[0] as $k => $v)
echo "$k => $v";
saveToDB($CW);
ger utskriften det fullständiga och vettiga innehåll den borde ge...!?!?!
Är det någon som begriper vad som händer? Vart fasen tar värdena vägen och varför? :x :q