Hallo,

Ik heb een scriptje geschreven dat meerdere rijen met waarden tegelijkertijd insert in een mysql database.

De insert werkt volledig alleen de waarden die uiteindelijk ingevoerd worden in de DBase zijn niet de waarden die zijn ingevoerd in de input velden.

dit is mijn php:


<?php

/* if($_SERVER['REQUEST_METHOD'] == 'POST')
{ */
for($i=0; $i<count($_POST['nummer']); $i++)
if(!empty($_POST['nummer'][$i]) && !empty($_POST['omschrijving'][$i]))
{
echo"u heeft waarden ingevuld namelijk:<br>";
echo"<table cols='2'>";
echo "<tr><th>nummer</th><th>Omschrijving</th></tr>";
echo "<tr><td>".$_POST['nummer'][$i]."<td/><td>".$_POST['omschrijving'][$i]."</td></tr>";
echo "</table>";

if(mysql_query("INSERT INTO taak (nummer, omschrijving) VALUES ('$_POST[nummer][$i]', '$_POST[omschrijving][$i]')")){

echo "query succesvol uitgevoerd";

}

else{
echo"query is mislukt vanwege de volgende fout: ".mysql_error();
};
}

else{
echo"De invoervelden zijn leeg.";

}
?>

het probleem is dat na de query in de database de waarden "0" voor nummer en "Array[0], Array[1]"etc. voor omschrijving staan. Ik ben zover dat ik weet dat deze waarden moeten worden omgezet naar input waarden maar ik weet niet wat ik daarvoor moet toevoegen aan de variabelen in mijn query.

Kan iemand mij op weg helpen?

bvd.
Als het veld 'nummer' integer is krijgt ie het erg moeilijk als je er strings in wilt gaan gooien.. Haal de enkele quote's eens weg uit je query rond $_POST['nummer'].. En het is $_POST['nummer'].

edit: In jou geval $_POST["nummer"]

edit: Query zal wel goed zijn op het nalaten van de quote's in je $_POST veld.. De enkele quote's kan je gewoon laten staan ;-) $_POST["nummer"]
Nummer is een INT ja, maar die dubbele quotes gaat niet goed want daarmee geef je aan dat de query daar eindigt.

De enkele quotes geven de complete waarde aan namelijk '$_POST[nummer][$i]' en niet $_POST[nummer]. De [$i] valt dan buiten de waarde wat resulteert in een mysql syntax error.

de werkelijke waarde van de post variabele is 'variabelenaam[1]', en niet 'variabelenaam'[1].

EDIT: Sorry ik zit scheef te lezen...je hebt gelijk ik moet die variabelen uit de string halen. dus "".$_POST['nummer']." ...neem aan dat je dat bedoelt

[size=xsmall]Toevoeging op 25/03/2013 21:23:39:[/size]

Gefixt met deze code:

<? php if(mysql_query("INSERT INTO taak (nummer, omschrijving) VALUES ('".$_POST['nummer'][$i]."', '".$_POST['omschrijving'][$i]."')")){ ?>

Reageren