foutieve waarden na uitvoeren mysql query met php array
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:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?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.";
}
?>
/* 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.
Gewijzigd op 25/03/2013 20:46:29 door Ivar de Jong
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"]
Gewijzigd op 25/03/2013 21:03:44 door Mebus Hackintosh
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
Toevoeging op 25/03/2013 21:23:39:
Gefixt met deze code:
Code (php)
1
<? php if(mysql_query("INSERT INTO taak (nummer, omschrijving) VALUES ('".$_POST['nummer'][$i]."', '".$_POST['omschrijving'][$i]."')")){ ?>
Gewijzigd op 25/03/2013 21:25:24 door Ivar de Jong