[PHP/MYSQL] UPDATE query form_html

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • dynast
  • Registratie: December 2002
  • Laatst online: 02-08 23:05
In het formulier wat ik 'genereer' komen 3 textvakken van rek_nr en 3 econ_cat te staan. Als ik dus het formulier invul en vervolgens zend dan verstuurd hij alleen de data van de laatste tekstenvakken rek_nr en econ_cat naar elke record waar fact_id 46 is. Het moet zo zijn dat hij ook de eerste en tweede doorstuurd. Zit het probleem in de UPDATE query?

Huidige resultaat is:
Tabel producten:
id | fact_id | rek_nr | econ_cat
1 | 46 | 234 | 4
2 | 46 | 234 | 4
3 | 46 | 234 | 4
4 | 47
5 | 47

Moet zijn:
id | fact_id | rek_nr | econ_cat
1 | 46 | 232 | 2
2 | 46 | 233 | 3
3 | 46 | 234 | 4
4 | 47
5 | 47
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
$form_html .= "<tr bgcolor=\"" . $kleur . "\"><td><b>Rekeningnummer:</b></td><td>
<input type=\"text\" name=\"rek_nr[]\" size=\"25\"></td>
</tr><tr bgcolor=\"" . $kleur . "\"><br><br><td>
<b>Economische cat.:</b></td>
<td><input type=\"text\" name=\"econ_cat[]\" size=\"25\">
</td></tr><br>";       
           
$i = 3;


 while ($x < $i):
             
     echo "$form_html"; 
 $x++;
 endwhile;
endif;
        
 while ($z < $i):
mysql_query("UPDATE producten SET rek_nr='" . addslashes($rek_nr[$z]) . "', 
econ_cat='" . addslashes
($econ_cat[$z]) . "' WHERE fact_id=\"46\"") 
or die(mysql_error());

$z++;
 endwhile;
endif;

[ Voor 31% gewijzigd door dynast op 13-04-2004 13:14 ]


Acties:
  • 0 Henk 'm!

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

Ik snap er geen ruk van wat je nu wil vragen... :? Kun je wellicht even aan de hand van P&W FAQ - De "quickstart" je topicstart aanpassen tot iets begrijpelijks, en dan meteen even wat enters in je code frotten zodat ie wel in de layout past ipv 3 schermen breed te zijn?

Professionele website nodig?


Acties:
  • 0 Henk 'm!

Verwijderd

Een beetje vaag verhaal maar volgens mij is dat wat je bedoeld.

De 'fout' zit in je update query. Het zit hem in de where clausule(WHERE fact_id=\"46\). Deze query update alle records waar fact_id=46 is.

Dus de query wordt wel 3 keer uitgevoerd, maar elke keer worden alle records aangepast waar fact_id=46 aangepast. Daarom zie je in elke record waar fact_id=46 het laatste rek_nr en econ_cat.

Dus je moet nog aangeven(mbv id) welk record je wilt aanpassen.

[ Voor 3% gewijzigd door Verwijderd op 13-04-2004 13:03 ]


Acties:
  • 0 Henk 'm!

  • dynast
  • Registratie: December 2002
  • Laatst online: 02-08 23:05
Sorry mensen, 't was inderdaad wat vaagjes, maar ben er nu wel uit. Tabel producten stond id op auto_increment en nu heb ik het zo opgelost. In iedergeval bedankt..
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
for($i=0;$i < $_POST['aantal_rek'];$i++) { 
        mysql_query("INSERT INTO producten (id,fact_id,) VALUES ('$i','" . $factid . "')") 
or die(mysql_error()); 
        
    } 

// query aan gepast

while ($z < 3):
mysql_query("UPDATE producten SET rek_nr='" . addslashes($rek_nr[$z]) . "', 
econ_cat='" . addslashes($econ_cat[$z]) . "' WHERE fact_id=\"47\" AND id='$z'" or die(mysql_error());
$z++;
endwhile;

[ Voor 35% gewijzigd door dynast op 13-04-2004 13:56 ]