delete from database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Patrick G

patrick G

02/09/2006 15:48:00
Quote Anchor link
Ik wil dat een geregistreerde gebruiker een regel kan verwijderen uit een database.
tot nu toe heb ik dit, maar dat werkt niet:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php  
  $host
= "localhost";
  $dbusername = "root";
  $password = "";
  $db = "testbase";

mysql_connect("$host", "$dbusername", "$password") or die ("niet gelukt te connecten");
mysql_select_db("$db") or die ("het lukt niet");
?>


<html>
<body>
<h2> wat wil je verwijderen</h2>
<form id="form1" name="form1" method="post" >
<label>
<input type="text" id="naam" />
</label>
<label>
<input type="submit" name="Submit" value="Submit" />
</label>
</form>
</body>
</html>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
//Hier roep ik de tabel aan en nu zou de regel met de geselecteerde naam moeten verdwijnen.
$query= "DELETE FROM namen WHERE naam = '$naam'";  
mysql_query($query) or die("niet geslaagd !!!");
echo "database is bijgewerkt";

?>


Wat krijg ik voor een melding ? gewoon niets.

alvast bedankt.
Gewijzigd op 01/01/1970 01:00:00 door Patrick G
 
PHP hulp

PHP hulp

18/11/2024 01:16:31
 
Erik Rijk

Erik Rijk

02/09/2006 16:22:00
Quote Anchor link
klopt weinig van het script.
in je query moet je zoiezo $_POST['naam'] gebruiken.
in je input veld van naam ben je name="" vergeten.

en variabelen buiten quotes houden
 
Patrick G

patrick G

02/09/2006 17:38:00
Quote Anchor link
name, dat klopt.

Maar ik had daar name staan en dat werkte niet.
Kun je me helpen WAAR in de querie dan $_POST['naam'] moet staan ?
 
Terence Hersbach

Terence Hersbach

02/09/2006 17:46:00
Quote Anchor link
omdat k zo aardig ben:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php  
  $host
= "localhost";
  $dbusername = "root";
  $password = "";
  $db = "testbase";

mysql_connect($host, $dbusername, $password) or die ("niet gelukt te connecten");
mysql_select_db($db) or die ("het lukt niet");

if($_POST['submit'])
{

//Hier roep ik de tabel aan en nu zou de regel met de geselecteerde naam moeten verdwijnen.
$query= "DELETE FROM namen WHERE naam = '".mysql_real_escape_string($_POST['naam'])."'";  
mysql_query($query) or die(mysql_error());
echo "database is bijgewerkt";
}

?>

<html>
<body>
<h2> wat wil je verwijderen</h2>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" >
<label>
<input type="text" id="naam" />
</label>
<label>
<input type="submit" name="submit" value="Verwijderen" />
</label>
</form>
</body>
</html>

Tip: kijk en probeer te begrijpen wat er nu staat, als je iets niet snapt, vraag het dan gelijk ;)

edit: Typo
Gewijzigd op 01/01/1970 01:00:00 door Terence Hersbach
 
Patrick G

patrick G

02/09/2006 18:22:00
Quote Anchor link
Het werkt nog niet, maar krijg nu wel de melding dat de database is bijgewerkt.

begrijp eigenlijk
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $_SERVER['PHP_SELF'];?>
ook niet .

Wat wordt hier eigenlijk in gewoon hollands gedaan?
 
Jan Koehoorn

Jan Koehoorn

02/09/2006 18:26:00
Quote Anchor link
Die superglobal verwijst naar het huidige bestand.
 
Patrick G

patrick G

02/09/2006 18:37:00
Quote Anchor link
Verwijst naar het bestand of naar de database?

Het moet toch kunnen om met een formulier een variabele te benoemen, die vervolgens in een querie zet zonder zoveel poespas ?

Ik heb het volgende gedaan

SELECT FROM namen WHERE naam is "pietjepuk"

Deze Querie op zich is goed, want als ik dit in de querie zet werkt het zelfs zonder op submit te drukken.

Hetgene dat dus nog niet lukt is de variabele aan de querie toe te voegen.
Gewijzigd op 01/01/1970 01:00:00 door patrick G
 
Remy Brokke

Remy Brokke

02/09/2006 19:18:00
Quote Anchor link
patrick:
Verwijst naar het bestand of naar de database?


In een form statement noteer je de methode - in dit geval POST - en de file waar hij je informatie naar moet toe sturen. Je kunt dus bijvoorbeeld bij action dit neer zetten:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<form method="post" action="jenaamvanjebestand.php">

</form>
Maar als je je bestanden gaat verhuizen of je gaat iets anders doen kan de locatie niet meer kloppen. Daarvoor heb je de global:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">

</form>



Die verwijst dus naar jou bestand. In dit geval dus jenaamvanjebestand.php.

Quote:
Het moet toch kunnen om met een formulier een variabele te benoemen, die vervolgens in een querie zet zonder zoveel poespas ?

Ik heb het volgende gedaan

SELECT FROM namen WHERE naam is "pietjepuk"

Deze Querie op zich is goed, want als ik dit in de querie zet werkt het zelfs zonder op submit te drukken.

Hetgene dat dus nog niet lukt is de variabele aan de querie toe te voegen.


En dit is arabish. Kan je niet een beetje ABN schrijven? Jij wilt dat wij jou helpen, neem dan tenminste de tijd om een fatsoenlijke reactie te schrijven.
Gewijzigd op 01/01/1970 01:00:00 door Remy Brokke
 
Patrick G

patrick G

02/09/2006 19:57:00
Quote Anchor link
excusez,

Ik zal het posten:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php  
  $host
= "localhost";
  $dbusername = "root";
  $password = "";
  $db = "testbase";

mysql_connect($host, $dbusername, $password) or die ("niet gelukt te connecten");
mysql_select_db($db) or die ("het lukt niet");

if($_POST['submit'])
{

//Hier roep ik de tabel aan en nu zou de regel met de geselecteerde naam moeten verdwijnen.
$query= "DELETE FROM namen WHERE naam = 'jones'";  
mysql_query($query) or die(mysql_error());
echo "database is bijgewerkt";
}

?>

<html>
<body>
<h2> wat wil je verwijderen</h2>
<form action="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $_SERVER['PHP_SELF'];?>
" method="post" >
<label>
<input type="text" naam="naam" />
</label>
<label>
<input type="submit" name="submit" value="Verwijderen" />
</label>
</form>
</body>
</html>

Vervolgens gebeurt dit.
De rij van Jones wordt nu verwijderd uit de database.
Voeg ik echter : '".mysql_real_escape_string($_POST['naam'])."'"
In de querie in,in plaats van de naam Jones en typ ik Jones in het formulier, druk op submit dan gebeurt er niets.
Dus het toevoegen van de variabele "Jones", die ik heb ingetypt in het formulier, aan de querie gaat niet goed.

Hopelijk is het zo wel duidelijk,
 
Remy Brokke

Remy Brokke

03/09/2006 01:03:00
Quote Anchor link
Werkt dit?:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
error_reporting(E_ALL);
?>


<html>
<head><title>Database bijwerker</title></head>
<body>

<?php
  
  $host
= "localhost";
  $dbusername = "root";
  $password = "";
  $db = "testbase";

mysql_connect($host, $dbusername, $password) or die ("niet gelukt te connecten");
mysql_select_db($db) or die(mysql_error());

if($_SERVER["REQUEST_METHOD"] == "POST")
 {

//Hier roep ik de tabel aan en nu zou de regel met de geselecteerde naam moeten verdwijnen.
$query= "DELETE FROM namen WHERE naam = '".mysql_real_escape_string($_POST['naam'])."'";  
mysql_query($query) or die(mysql_error());
echo "Database is bijgewerkt.";
 }

else
 {
   ?>

   <h2> Wat wil je verwijderen?</h2>
   <form action="<?php echo $_SERVER['PHP_SELF']; ?> " method="post">
   <label>
   <input type="text" naam="naam" />
   </label>
   <label>
   <input type="submit" value="Verwijderen" />
   </label>
   </form>
  <?php
 }
?>

</body>
</html>


Als het goed is zou dit moeten werken..
Gewijzigd op 01/01/1970 01:00:00 door Remy Brokke
 
Patrick G

patrick G

03/09/2006 10:43:00
Quote Anchor link
Helaas,

Parse error: parse error, unexpected T_IF in D:\phpmap\xampp\htdocs\xampp\delete2.php on line 19

Ik wilde dit perse in 1 pagina afhandelen, maar ik vraag me af of dat handig is.
Gewijzigd op 01/01/1970 01:00:00 door patrick G
 
Niels Beckers

Niels Beckers

03/09/2006 10:46:00
Quote Anchor link
achter
mysql_select_db($db) or die(mysql_error())
ben je een ; vergeten
dus:
mysql_select_db($db) or die(mysql_error());
 
Patrick G

patrick G

03/09/2006 11:20:00
Quote Anchor link
Joepie

Ook nog even :
<input type="text" naam="naam" />
veranderd in ,
<input type="text" name="naam" />

en het werkt !!!

THX allemaal voor het meedenken.
 
Remy Brokke

Remy Brokke

03/09/2006 12:08:00
Quote Anchor link
Niels:
achter
mysql_select_db($db) or die(mysql_error())
ben je een ; vergeten
dus:
mysql_select_db($db) or die(mysql_error());


Achja, het was al laat! :D
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.