id uit database lezen met PHP

Status
Niet open voor verdere reacties.

RonaldGJ

Gebruiker
Lid geworden
28 apr 2007
Berichten
419
Ik heb bij mijn website een admin gemaakt. Nu heb ik in mijn gastenboek bij elk bericht een verwijder knop staan. Nu wil ik dat als je op die knop drukt dat hij het bericht verwijdered. Ik heb al gevonden hoe je iets delete uit een database. Maar wat mijn vraag nu is... Hoe krijg ik per link het goede id van het bericht erbij. Kan ik die id opslaan in een variabele ofzo.

Dus ik heb het id nodig van het bericht!

Vast bedankt,
Gr. Ronald!:)
 
dan moet je per bericht in je gastenboek (database) een ID meegeven, iets van, bericht #1 heeft ID 001, bericht #2 heeft ID 002, enzovoorts... zo kan je op elk knopje een link zetten naar delete bericht met ID XXX.

ik hoop dat je het gastenboek wel zelf hebt geschreven/kunt editen in je DB...?
 
Ik heb het van internet, doorgeplozen en snap het prima! Er zit ook een id bij. Ik heb ook al wat berichten verwijderd, maar het id loopt gewoon door. Hij haalt dus de berichten uit de database en zet ze op de site. Elke bericht zet hij rechtsboven ook een plaatje voor verwijderen. Nu wil ik dat als je daar op klikt dat hij ook echt het bericht verwijderd waar dat kruisje bij staat. Dus dat kruisje moet weten bij welk bericht hij staat en welk id dat bericht heeft!

Maar hoe haal je dan het id uit een gastenboek?

Gr. Ronald!:)
 
dan moet je bij elke post van elk bericht, de HTML code zo maken dat op de knop deze code zit:

Code:
<A HREF="verwijder.php?id=***"> <IMG SRC="verwijder.gif"> </A>

in de PHP van je gastenboek-echo zoiets zetten:
PHP:
mysql_select_db("Blaaaaaaaaaaat") or die(mysql_error());
$q = mysql_query("SELECT * FROM gastboekposts");
$r = mysql_fetch_object($q);
echo " <A HREF='verwijder.php?id=" . $r->id . "'>  <IMG SRC='verwijder.gif'> </A>"

(dit is maar een snel voorbeeld van iets wat ik zelf ooit heb gemaakt, dus je moet het nog wel een beetje gaan aanpassen; tis maar een voorbeeld.
In verwijder.php zet je dan een $_GET "id" ofiets dergelijks, en delete je het uit je database.
 
Oke dankjewel, moet ik bij dit stukje code dat sterretje vervangen voor iets?
PHP:
$q = mysql_query("SELECT * FROM gastboekposts");
en wat houd precies dat fetch in?
PHP:
$r = mysql_fetch_object($q);

Dan weet ik dat weer ff! Iniedergeval bedankt, ik zal er ook even mee experimenteren!

Gr. Ronald!:)
 
het " * " in je SQL query staat voor 'alles'; in dit geval alles uit de tabel "gastboekposts" halen (alle velden)

door het "fetch" kan je makkelijk dit gebruiken:
PHP:
$r->id
$r-> **hier een variabele uitje tabel**
maar het is een voorbeeldje, ik weet niet hoe de rest van je gastenboek werkt.
 
He Vegras, bedankt!:thumb: Ik ben eruit gekomen hoe het moet! Ik heb nu een link aan het plaatje zitten. Het enige wat ik nu nog moet is een script voor het verwijderen. Maar dat heb ik al ergens op internet gevonden en weet waarschijnlijk hoe het moet. Bedankt iniedergeval zover.

Gr. Ronald!:)
 
ha, mooi zo. Btw, het is iets zoals dit:
PHP:
$wtf = $_GET['id']
DELETE * FROM gastenboekdingetjes WHERE ID ='" . $wtf . "'"
of verzin zelf een leuke query ;)
 
Nou ik zit wel een beetje ermee in de knoop!
Ik heb dus dat ie net zolang doorgaat met berichten uit de database halen totdat er geen berichten meer zijn. hij haalt ook steeds het id eruit en plakt die achter de link met ?p=delete_IDHIER

Dus bijvoorbeeld: gastenboek.php?p=delete_6
Maar hoe zorg ik er dan voor dat als ik op die link klik dat ie ook echt DELETE FROM .... WHER id = 6

Ik heb geen idee.

Vast bedankt.
Gr. Ronald!:)
 
daarom moet je dus een extra pagina maken, bv. 'deletepost.php' die het variabele ID pakt en die dan pas delete, dit kan niet via de pagina direct, omdat het al ge-parsed is als php :)

dus maak ervan:
<A HREF="verwijder.php?id=***"> <IMG SRC="verwijder.gif"> </A>

en dan in je "verwijder.php" pagina de query.
 
Ik snap jou, maar dan nog heb ik geen idee hoe ik aan het id kom. Elke link heeft het goede id erachter staan. Maar moet ik dan voor elk bericht gaan schrijven:

PHP:
if($_GET['p'] == "delete_1"){ DELETE FROM ... WHERE id = '1';}
if($_GET['p'] == "delete_2"){ DELETE FROM ... WHERE id = '2';}

En zo doorgaan tot 100, dat moet toch ook met een variabele kunnen. Maar hij moet dus als het ware als je op de link klikt. Dat cijfer eruit halen, opslaan in een variabele en dan:
PHP:
if($_GET['p'] == "delete_.$variabele."{ DELETE FROM ... WHERE id = .$variable};

Maar hoe krijg je nou het goede id van de goede link in die variable?
Gr. Ronald!:)
 
Laatst bewerkt:
nee, omdat je op elk knopje *delete-knopje* de ID al hebt!

als het goed is, heeft je gastenboek nu op elk knopje een link naar iets van:
PHP:
verwijder.php?id=**
waar ** je ID is, maar die is al standaard uit-ge-echoet als iemand een bericht post.

dan kan je dus via je GET het ID krijgen, en dan dus (zoiets als) dit doen
PHP:
$varID = $_GET['id']
mysql_query("DELETE * FROM ????? WHERE ID=" . $varID );
 
Ja inderdaad mijn links zijn:
PHP:
verwijder.php?id=**

Nu heb ik dit in verwijder.php staan:
PHP:
<?php
	$varID = $_GET['id'];
	mysql_query("DELETE FROM ... WHERE id = " .$varID );
?>

Maar hij verwijderd niks:confused:

Ik klik op een knop, link is: verwijder.php?id=3
Dus $varID moet 3 zijn. en dan die deleten. Maar er gebeurd niks.

Ziet iemand de fout?

Gr. Ronald!:)
 
Heb je bij verwijder.php wel een connectie met de database?

Maak trouwens van je query het volgende...
PHP:
mysql_query("DELETE FROM ... WHERE id = " .$varID ) or die('Error! '.mysql_error());

dan krijg je een foutmelding terug als het niet lukt... Misschien staat daar ook meer wat er mis gaat =)
 
Dat had ik dus inderdaad neergezet, maar mijn beeldscherm blijft wit. Er staat geen error aangegeven. Dus ik snap echt niet wat er mis is. Dat hij zelfs de error niet aangeeft.

Dit is mijn code nu:

---verwijder.php---
PHP:
<?php
include('db_connect.php');
if(isset($_SESSION['inlog']) && ($_SESSION['inlog'] == 1)){
	$varID = $_GET['id'];
	echo $varID;
	mysql_query("DELETE FROM tbl_gastenoek WHERE id = '$varID';") or die('Error! '.mysql_error()); 
}
?>

De db_connect.php werkt wel, die gebruik ik ook bij andere dingen!
Wie weet het?:confused:

Gr. Ronald!:)
 
Als je perse een reactie wilt, moet je er om vragen....

Nu geeft hij een witte pagina terug, omdat alles klopt.. Hij doorloopt het in ieder geval zonder een fout...

Ik zou een else aan je if-statement plakken.. Misschien is je sessie weg? (Lijkt me mogelijk, je gebruikt geen session_start()... )
 
Hij doet het, fantastisch! Was ik weer session_start(); vergeten.
He hartstikke bedankt voor de reacties!

Gr. Ronald!:)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan