Forum loop
heb volgens mij een hele simpele vraag. Ben sinds kort weer bezig met php en sql. Heb er al eens eerder gewerkt en het is me al eens eerder gelukt, maar ben helemaal vergeten hoe.
Zal iemand mij voor het probleem een oplossing kunnen geven? heb al wat rond gezocht, maar kon niet echt een passende antwoord vinden.
Ik heb een pagina waar een lijst word gemaakt met artikelen. Waaronder een rij met aantallen. Nu heb ik naast de rij aantallen nog een rij gemaakt met 1 formulier veld, waar je een getal in kan vullen wat er bij opgeteld moet worden.
------ update query
if($optie=='wijzig'){
if(artikelid!=0){
$update= mysql_query("UPDATE voorraad SET artikel_aantal=artikelid WHERE artikel_id=artikelid") or mysql_error();
}
}
------ stukje form
echo " <td>$res[artikel_aantal]</td>";
echo " <td><input name=\"artikelid\" size=\"3\" type=\"tekst\" value=\"0\"><input type=\"image\" src=\"..\images\plus.gif\"></td>";
-----
dit is 1 regel formulier, maar die word constant herhaalt door een loop. Met allemaal de zelfde naam, alleen de value kan veranderd worden.
het moet naar mijn mening met een loop worden geupdate, maar weet ff niet hoe.
hoop dat het duidelijk is.
if($optie=='wijzig'){
for ($i = 1; $i <= $rij; $i++) {
if($_GET[artikelid]!=0){
$update= mysql_query("UPDATE voorraad SET artikel_aantal=artikelid WHERE artikel_id=artikelid") or mysql_error();
}
}
}
heb ik aantal rijen geteld, alleen updaten doet die nog niet:(. komt volgens mij door de zelfde naam constant.
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
if($optie=='wijzig'){
for ($i = 1; $i <= $rij; $i++) {
if($_GET['artikelid'] != 0){
$update= mysql_query("UPDATE voorraad SET artikel_aantal=" . $_GET['artikelid'] . " WHERE artikel_id= " .$i) or die(mysql_error());
}
}
}
?>
if($optie=='wijzig'){
for ($i = 1; $i <= $rij; $i++) {
if($_GET['artikelid'] != 0){
$update= mysql_query("UPDATE voorraad SET artikel_aantal=" . $_GET['artikelid'] . " WHERE artikel_id= " .$i) or die(mysql_error());
}
}
}
?>
Je vergat de variabelen in de mysql-query te zetten. Ook ben je de quotes vergeten bij $_GET en de echo-achtige functie bij mysql_error(). Nu moet je wel nog even kijken naar isset() en is_numeric() om te controleren of iemand niet gemene dingen in je $_GET-variabele zet.
Gewijzigd op 01/01/1970 01:00:00 door Jelmer -
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
if($optie=='wijzig'){
for ($i = 1; $i <= $rij; $i++) {
if($_GET['artikelid'] != 0){
echo "test";
$update= mysql_query("UPDATE voorraad SET artikel_aantal=" . $_GET['artikelid'] . " WHERE artikel_id= " .$i) or die(mysql_error());
}
}
}
?>
<table>
<tr>
<td colspan="7"><h2>Voorraad lijst</h2></td>
</tr>
<tr>
<th width="20">ID</th>
<th>Code</th>
<th>Naam</th>
<th>Omschrijving</th>
<th>Prijs Ecl.</th>
<th>Aantal</th>
</tr>
<?php
$voorraad = mysql_query("SELECT * FROM voorraad");
$num_row = mysql_num_rows($voorraad);
echo "<form action=\"voorraad.php?optie=wijzig&rij=$num_row\" method=\"post\">" ;
for ($i = 1; $i <= $num_row; $i++) {
$res = mysql_fetch_array($voorraad);
echo "<tr>";
echo " <td>$res[artikel_id]</td>";
echo " <td>$res[artikel_code]</td>";
echo " <td>$res[artikel_naam]</td>";
echo " <td>$res[artikel_omschrijving]</td>";
echo " <td>$res[artikel_prijs]</td>";
echo " <td>$res[artikel_aantal]</td>";
echo " <td><input name=\"artikelid\" size=\"3\" type=\"tekst\" value=\"0\"><input type=\"image\" src=\"..\images\plus.gif\"></td>";
echo "</tr>";
}
?>
</form>
</table>
<a href="voorraad.php">Nieuw artikel</a>
</div>
if($optie=='wijzig'){
for ($i = 1; $i <= $rij; $i++) {
if($_GET['artikelid'] != 0){
echo "test";
$update= mysql_query("UPDATE voorraad SET artikel_aantal=" . $_GET['artikelid'] . " WHERE artikel_id= " .$i) or die(mysql_error());
}
}
}
?>
<table>
<tr>
<td colspan="7"><h2>Voorraad lijst</h2></td>
</tr>
<tr>
<th width="20">ID</th>
<th>Code</th>
<th>Naam</th>
<th>Omschrijving</th>
<th>Prijs Ecl.</th>
<th>Aantal</th>
</tr>
<?php
$voorraad = mysql_query("SELECT * FROM voorraad");
$num_row = mysql_num_rows($voorraad);
echo "<form action=\"voorraad.php?optie=wijzig&rij=$num_row\" method=\"post\">" ;
for ($i = 1; $i <= $num_row; $i++) {
$res = mysql_fetch_array($voorraad);
echo "<tr>";
echo " <td>$res[artikel_id]</td>";
echo " <td>$res[artikel_code]</td>";
echo " <td>$res[artikel_naam]</td>";
echo " <td>$res[artikel_omschrijving]</td>";
echo " <td>$res[artikel_prijs]</td>";
echo " <td>$res[artikel_aantal]</td>";
echo " <td><input name=\"artikelid\" size=\"3\" type=\"tekst\" value=\"0\"><input type=\"image\" src=\"..\images\plus.gif\"></td>";
echo "</tr>";
}
?>
</form>
</table>
<a href="voorraad.php">Nieuw artikel</a>
</div>
ontbreken hier, maar in orgineel niet, heb ff de 2 belangrijke stukken er uit gehaald....
Volgens mij kan ik beter opnieuw beginnen en iets meer logica er in verwerken met id nummers....
Gewijzigd op 01/01/1970 01:00:00 door Erik waarom
Notice: Undefined index: artikelid in C:\www\www\impact\php\voorraad.php on line 18
Neem aan die artikelid leeg is..
dom dom dom , ik zie al een hele grote fout denk ik..... geef nooit een id mee. nog steeds snap ik het niet. Undefined, komt waarschijnlijk door isset, maar zal dan wel moeten werken lijkt mij.
nogmaals bedankt voor de moeite, heb het zelf al opgelost.... moest ipv GET, POSt gebruiken.
Gewijzigd op 01/01/1970 01:00:00 door Erik waarom