Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[PHP/MySQL] ID meegeven bij klik

Pagina: 1
Acties:
  • 398 views

  • Beatboxx
  • Registratie: April 2010
  • Laatst online: 26-10-2022

Beatboxx

Certified n00b

Topicstarter
Voor de eerste keer in mn leven ben ik echt begonnen met PHP en/of MySQL. Hiervoor heb ik het boek Basiscursus PHP6 en MySQL gelezen. Ik heb mijn eigen testcase hier thuis met WAMP.

Ik werk aan een website waarop mensen op pagina 1, insert.php, data kunnen invoeren. We hebben naam, klas, id en de servertijd van het moment van invoeren. De enige die dus echt worden ingevoerd zijn klas en naam, servertijd gaat samen met id automagisch.

Nu hebben we een andere pagina, extract.php, die het geheel in een gave tabel zet. Dit werkt prima, maar het enige wat ik nu nog wil is dat er aan het einde van elke rij een knopje staat met "bezorgd". De tabel zelf:

PHP:
1
2
3
4
5
6
7
8
9
10
11
echo "<table border='1'>";
echo "<tr> <th>Id</th> <th>Naam</th> <th>Klas</th> </tr>";
while($row = mysql_fetch_array( $resultaat )) {
    echo "<tr><td>"; 
    echo $row['id'];
    echo "</td><td>"; 
    echo $row['naam_ontvanger'];
    echo "</td><td>"; 
    echo $row['klas_ontvanger'];
    echo "</td></tr>"; 
}


Het knopje (Ik weet ook niet of dit goed is, maar ik ga er wel vanuit?):
HTML:
1
<img src="$source" onclick="bezorgd.php" />


Als er op dat knopje bezorgd wordt gedrukt, wordt onderstaande code uitgevoerd:

Bezorgd.php:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$con = mysql_connect("localhost","$user","$wachtwoord");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("$dedatabase", $con);

mysql_query("UPDATE $detabel WHERE id=$id 
(bezorgstatus)
VALUES 
('bezorgd')");

mysql_close($con);
?>


Het probleem is echter, hoe geef ik aan in welke rij dit moet worden aangepast? Deze moet corresponderen met het id van de rij. Mijn idee is dus dat ik iets van 150 rijen onder elkaar heb, met achter elke een vinkje. Als je in rij 125 op bezorgd drukt, moet bij id 125 de bezorgstatus naar bezorgd worden geset. Hoe zorg ik ervoor dat bezorgd.php weet om welk ID het gaat?

  • Blorgg
  • Registratie: Juni 2001
  • Niet online
Je kunt een ID aan de url van bezorgd.php doorgeven. Iets als:
PHP:
1
onclick="location.href='bezorgd.php?ID=125'"


In bezorgd.php zul je dan moeten checken of er middels $_GET een ID is meegegeven, en zo ja, dan moet je die veilig maken om in een SQL query te gebruiken om SQL injectie te voorkomen.

  • HuHu
  • Registratie: Maart 2005
  • Niet online
Hoofdstuk 7.11.4 van Basiscursus PHP6 en MySQL. Succes.

  • ieperlingetje
  • Registratie: September 2007
  • Niet online
En waarom een onClick event? maak er gewoon een link van :S

Tijdmachine | Nieuws trends


  • Beatboxx
  • Registratie: April 2010
  • Laatst online: 26-10-2022

Beatboxx

Certified n00b

Topicstarter
Het is een plaatje:P

@HuHu en @Blorgg dankjulliewel!

  • TJHeuvel
  • Registratie: Mei 2008
  • Niet online
ieperlingetje schreef op donderdag 06 oktober 2011 @ 16:58:
En waarom een onClick event? maak er gewoon een link van :S
Om hier op verder te bouwen; ik betwijfel of je huidige oplossing werkt.

Het zou zoiets moeten zijn:

PHP:
1
 echo "<a href='bezorg.php?id={$row['id']}'><img src='$source' /></a>";

Een plaatje doet niets als je er op klikt, een anchor (link) wel.

In je bezorg.php kan je je id weer ophalen uit de $_GET array, zo dus:

PHP:
1
$id = $_GET['id'];


Let wel dat iedereen dit kan aanpassen, en dit een veel voorkomend veiligheidslek is.

[ Voor 29% gewijzigd door TJHeuvel op 06-10-2011 17:03 ]

Freelance Unity3D developer


  • Beatboxx
  • Registratie: April 2010
  • Laatst online: 26-10-2022

Beatboxx

Certified n00b

Topicstarter
Nog iets, hoe weten we dat $id het goede id pakt? We hebben namelijk 150 $id's....

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 22:53

Creepy

Tactical Espionage Splatterer

TJHeuvel: Een onclick op een img doet het ook prima hoor.


Anyway, je hebt je oplossing. Maar dit is echt basis nadenk werk. $id controleren moet je makkelijk zelf kunnen. Even afdrukken wat je binnenkrijgt vertelt je direct of het goed binnenkomt. Als je niet weet hoe je parameters moet opvangen in PHP dan wil ik je toch aanraden je boek er nog eens goed bij te pakken en de delen over $_GET en $_POST eens goed door te lezen. Dit moet je prima zelf kunnen doen.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.