for each & mysql
Hallo allemaal,
zit weer even vast met een volgende probleem.
Ik heb via javascript optie toegevoegd om rows toe
te voegen aan een tabel. Tot zover geen probleem!
Nu wil ik na de submit van het formulier deze waarden
ook opslagen in de database en daar zit ik dus vast.
Via een foreach kan ik alle rows laten weergeven via
een echo, maar hoe krijg ik die verschillende rows in mijn database?
zit weer even vast met een volgende probleem.
Ik heb via javascript optie toegevoegd om rows toe
te voegen aan een tabel. Tot zover geen probleem!
Nu wil ik na de submit van het formulier deze waarden
ook opslagen in de database en daar zit ik dus vast.
Via een foreach kan ik alle rows laten weergeven via
een echo, maar hoe krijg ik die verschillende rows in mijn database?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$contract = $_POST['contract'];
$broker = $_POST['dropdown1'];
$enduser = $_POST['dropdown2'];
$dof = $_POST['dof'];
$flightnr = $_POST['flight'];
$adep = $_POST['adep'];
$ades = $_POST['ades'];
foreach($flightnr as $a => $b)
echo "$contract - $broker - $enduser - $flightnr[$a] - $adep[$a] - $ades[$a] <br>";
?>
thanks voor de tips en hulp alvast!
$contract = $_POST['contract'];
$broker = $_POST['dropdown1'];
$enduser = $_POST['dropdown2'];
$dof = $_POST['dof'];
$flightnr = $_POST['flight'];
$adep = $_POST['adep'];
$ades = $_POST['ades'];
foreach($flightnr as $a => $b)
echo "$contract - $broker - $enduser - $flightnr[$a] - $adep[$a] - $ades[$a] <br>";
?>
thanks voor de tips en hulp alvast!
Gewijzigd op 18/05/2015 13:11:46 door Yannick Bogaert
Je zou een INSERT-query moeten uitvoeren om de velden te updaten.
Gewijzigd op 18/05/2015 12:54:49 door - Ariën -
@Aar: Het gaat om nieuwe records die in de database moeten dan zou ik toch een INSERT INTO moeten gebruiken niet?
Had even poging gewaagd maar zoals verwacht werkt het volgende niet:
Er zijn natuurlijk een hoop meer velden vandaar de iets uitgebreidere sql
Had even poging gewaagd maar zoals verwacht werkt het volgende niet:
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
foreach($flightnr as $a => $b)
$sql = "INSERT INTO flights( contract, broker, enduser, reg, dof, flightnr, adep, etd, eta, ades, pax, flighttype ) VALUES
(
'" . mysql_real_escape_string($contract) . "',
'" . mysql_real_escape_string($broker) . "',
'" . mysql_real_escape_string($enduser) . "',
'" . mysql_real_escape_string($reg) . "',
'" . mysql_real_escape_string($dof[$a]) . "',
'" . mysql_real_escape_string($flightnr[$a]) . "',
'" . mysql_real_escape_string($adep[$a]) . "',
'" . mysql_real_escape_string($etd[$a]) . "',
'" . mysql_real_escape_string($eta[$a]) . "',
'" . mysql_real_escape_string($ades[$a]) . "',
'" . mysql_real_escape_string($pax[$a]) . "',
'" . mysql_real_escape_string($flighttype[$a]) . "')";
if (!mysql_query($sql,$vlmocc))
{
die('Error: ' . mysql_error());
}
?>
foreach($flightnr as $a => $b)
$sql = "INSERT INTO flights( contract, broker, enduser, reg, dof, flightnr, adep, etd, eta, ades, pax, flighttype ) VALUES
(
'" . mysql_real_escape_string($contract) . "',
'" . mysql_real_escape_string($broker) . "',
'" . mysql_real_escape_string($enduser) . "',
'" . mysql_real_escape_string($reg) . "',
'" . mysql_real_escape_string($dof[$a]) . "',
'" . mysql_real_escape_string($flightnr[$a]) . "',
'" . mysql_real_escape_string($adep[$a]) . "',
'" . mysql_real_escape_string($etd[$a]) . "',
'" . mysql_real_escape_string($eta[$a]) . "',
'" . mysql_real_escape_string($ades[$a]) . "',
'" . mysql_real_escape_string($pax[$a]) . "',
'" . mysql_real_escape_string($flighttype[$a]) . "')";
if (!mysql_query($sql,$vlmocc))
{
die('Error: ' . mysql_error());
}
?>
Er zijn natuurlijk een hoop meer velden vandaar de iets uitgebreidere sql
Gewijzigd op 18/05/2015 13:10:12 door Yannick Bogaert
Mogen we er van uit gaan dat bovenstaande code correct werkt ?
Getest door $flight tijdelijk een statische inhoud te geven ?
Getest door $flight tijdelijk een statische inhoud te geven ?
Op zich zou die INSERT INTO wel moeten werken. Zo niet, dan ben ik benieuwd welke error je krijgt?
@Pipo: de foreach met de echo werkt, de foreach met de sql natuurlijk niet.
Zie je geen foutmelding of iets dergelijks?
En wat zie je als je $sql echo'ed?
En wat zie je als je $sql echo'ed?
@Aar: ik krijg volgende melding:
Warning: Invalid argument supplied for foreach() in /var/www/charter/flights/flight_proces.php on line 22
Error: Query was empty
Warning: Invalid argument supplied for foreach() in /var/www/charter/flights/flight_proces.php on line 22
Error: Query was empty
Dan is $flight geen array.
Waar komt $flight vandaan?
Waar komt $flight vandaan?
@Aar: $flight moest $flightnr zijn, nu werkt de INSERT INTO maar enkel voor de eerste row dus niet voor bv 3 rows
Wat staat er dan in $flightnr? Want het is een $_POST-waarde, en die kan niet zomaar een array zijn met meerdere waardes.
Gewijzigd op 18/05/2015 13:20:17 door - Ariën -
@Aar: flightnr is 1 van de velden die altijd gedupliceerd is bij het drukken op de add row knop (Java).

de html hierachter is:
de [] bij flight moeten ertussen blijkbaar om de foreach te doen lukken, dit heb ik gehaald uit:
"Getting Submitted Form Values in PHP
The main purpose of above code is to take input from user and persist it in database. Hence we may want to submit the above form and fetch its values in PHP to store the data in database.
If you notice we have multiple input textboxes with the same name. So in order to get these values in PHP request parameter, we need to modify our HTML. We need to append [] at the end of name of each input boxes including select box.
Thus our textbox definition:
<input type="text" name="txt">
Will change into:
<input type="text" name="txt[]">"
Met de gewone echo krijg ik daardoor als resultaat:
c12345 - Air Charter - end user 1 - - dep1 - des1
c12345 - Air Charter - end user 1 - - dep2 - des2
Wat ook correct is.
de html hierachter is:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<html>
<body>
<table id="flights" class="curvedEdges" width="600" border="0" cellspacing="0" cellpadding="10">
<tbody>
<tr>
<td width="20"><input type="checkbox" name="checkbox[]" id="checkbox"></td>
<td width="50"><input name="dof[]" type="date" required="required" id="dof"></td>
<td width="25"><input name="flight[]" type="text" required="required" id="flight" size="5" maxlength="5"></td>
<td width="25"><input name="adep[]" type="text" required="required" id="adep" size="5" maxlength="5"></td>
<td width="25"><input name="etd[]" type="text" required="required" id="etd" size="5" maxlength="5"></td>
<td width="25"><input name="eta[]" type="text" required="required" id="eta" size="5" maxlength="5"></td>
<td width="25"><input name="ades[]" type="text" required="required" id="ades" size="5" maxlength="5"></td>
<td width="25"><input name="pax[]" type="text" required="required" id="pax" value="0" size="5"></td>
<td width="25"><select name="flighttype[]" id="select">
<option value="F">Ferry</option>
<option value="C">Live</option>
</select></td>
</tr>
</tbody>
</table>
</body>
</html>
<body>
<table id="flights" class="curvedEdges" width="600" border="0" cellspacing="0" cellpadding="10">
<tbody>
<tr>
<td width="20"><input type="checkbox" name="checkbox[]" id="checkbox"></td>
<td width="50"><input name="dof[]" type="date" required="required" id="dof"></td>
<td width="25"><input name="flight[]" type="text" required="required" id="flight" size="5" maxlength="5"></td>
<td width="25"><input name="adep[]" type="text" required="required" id="adep" size="5" maxlength="5"></td>
<td width="25"><input name="etd[]" type="text" required="required" id="etd" size="5" maxlength="5"></td>
<td width="25"><input name="eta[]" type="text" required="required" id="eta" size="5" maxlength="5"></td>
<td width="25"><input name="ades[]" type="text" required="required" id="ades" size="5" maxlength="5"></td>
<td width="25"><input name="pax[]" type="text" required="required" id="pax" value="0" size="5"></td>
<td width="25"><select name="flighttype[]" id="select">
<option value="F">Ferry</option>
<option value="C">Live</option>
</select></td>
</tr>
</tbody>
</table>
</body>
</html>
de [] bij flight moeten ertussen blijkbaar om de foreach te doen lukken, dit heb ik gehaald uit:
"Getting Submitted Form Values in PHP
The main purpose of above code is to take input from user and persist it in database. Hence we may want to submit the above form and fetch its values in PHP to store the data in database.
If you notice we have multiple input textboxes with the same name. So in order to get these values in PHP request parameter, we need to modify our HTML. We need to append [] at the end of name of each input boxes including select box.
Thus our textbox definition:
<input type="text" name="txt">
Will change into:
<input type="text" name="txt[]">"
Met de gewone echo krijg ik daardoor als resultaat:
c12345 - Air Charter - end user 1 - - dep1 - des1
c12345 - Air Charter - end user 1 - - dep2 - des2
Wat ook correct is.
Gewijzigd op 18/05/2015 13:39:07 door Yannick Bogaert
Inderdaad, met een [] in de name laat je input doordoen als een array, zoadat foreach er iets mee kan.
Ik neem aan dat het werkt?
Verder zal je met Java eerder JavaScript bedoelen. Tussen beiden zit een aanzienlijk groot verschil.
Ik neem aan dat het werkt?
Verder zal je met Java eerder JavaScript bedoelen. Tussen beiden zit een aanzienlijk groot verschil.
@Aar: Ja inderdaad de foreach op zich werkt aangezien het met een simpele echo wel correct is en inderdaad JavaScript.
UPDATE: ik merk wel dat als er bv 3 rows zijn hij enkel de laatste row in de database heeft opgeslagen.
UPDATE: ik merk wel dat als er bv 3 rows zijn hij enkel de laatste row in de database heeft opgeslagen.
Gewijzigd op 18/05/2015 14:01:53 door Yannick Bogaert
Hoe vaak stel je $sql in?
Hoe vaak voer je mysql(i)_query() uit?
Hoe vaak voer je mysql(i)_query() uit?




