[php]update werkt niet

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • snrg_Paco
  • Registratie: Januari 2002
  • Laatst online: 02-08-2023
het is misschien een newbie vraag maar ik kan het nergens anders vinden op het Internet dus jullie zijn me laatste hulp!

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
46
47
48
49
50
<?php

$db = mysql_connect("localhost", "root", "");
mysql_select_db("learndb",$db);
global $modifyid;
$result = mysql_query("SELECT * FROM test where ID=$modifyid");

echo "<TABLE width=100%>";
echo "<TR>";
echo "<TD valign=top align=left width=30%>";
echo "<B>ID</B></TD>";
echo "<TD valign=top align=left width=70%>";
echo "<B>leeftijd</B></TD>";
echo "</TR>";
echo "<TR></tr>"; //extra regelafstand

while ($myrow = mysql_fetch_array($result))
{
echo "<TR>";
echo"<TD valign=top align=left width=20%>";
echo "<input name=ID type=text value=$myrow[ID]></TD>";
echo"<TD valign=top align=left width=50%>";
echo "<input name=leeftijd type=text value=$myrow[leeftijden]></TD>";
echo "<TD width=15% align=left valign=top>";
echo "<a href=test_modifyMOD.php?modify=1&modifyid=$myrow[ID]>Modify</a>";
echo "</TD>";
echo "</TR>";
}
echo "</TABLE>";

function modPost($modifyid)
{
$sql = "UPDATE test SET leeftijden='$leeftijd' where ID=$modifyid";
$result = mysql_query($sql) or die("mysql stuk");
}

?>

<html>
<head>
<title>Links</title>
</head>

<?
if ($modify)
    modPost($modifyid);
?>

</body>
</HTML>


Ik laat in een vorige pagina een lijst zien met waarden. Die zou ik moeten modifen dus als ik op een knop druk op de vorige pagina dan wordt modifyid meegestuurd.

Deze is globaal zodat ik me query goed kan laten uitvoeren. Dit werkt ook allemaal. Hij laat de ene rij zien die ik wil updaten cq modifien.

De waarde waarin dat staat is een textbox genaamd leeftijd met daarin de waarde uit de database. Hier is gelijk me grootste twijfel of hij die wel ziet maar dat komt later.

Als ik op modify druk gaat hij naar de if-statement of modify==1 is. Dat is ie dus hij gaat naar de functie modPost met als argument modifyid. Modifyid is gelijk aan de ID in de database. In de functie wordt de query uitgevoert die het moet updaten. Als ik een vaste waarde invul zoals 23 ofzo dan gaat het wel goed maar als ik een variabele wil gebruiken dan doet ie niets. Hij laat ook geen (mysql stuk) error zien.

Wat is er nu aan de hand en hoe kan ik het oplossen?

grtz,

Acties:
  • 0 Henk 'm!

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 15-09 18:24

dusty

Celebrate Life!

voeg de volgende regel toe nadat je de query hebt toegewezen aan $sql:
code:
1
echo $sql;

Een van jouw problemen is dat je niet weet hoe een form werkt.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 09:15

Janoz

Moderator Devschuur®

!litemod

Zo, je levert wel heel brakke html af he :) .. Wel eens in je source gekeken? ( hoort aan het begin) Daarnaast zul je een update pas een pagina erna kunnen zien aangezien de update na de select plaats vindt.

Je probleem heeft te maken met het feit dat je je zo druk heb lopen maken over het wel of niet in de scope zijn van $modifyid dat je $leeftijd helemaal vergeten bent.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Je bouwt inderdaad wel een input object, maar je gebruikt hem niet :) Je kiest namelijk voor de GET/link optie en die combineren niet zo met een POST/form.
Tip: Gebruik een submit knop en zoek bij www.w3c.org naar hoe je een form opbouwt.

Kijk ook nog eens naar het gebruik van globals, variabelen in een functie en de automatische superglobals $_POST, $_GET enz :)
Succes