login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Falende delete query (Opgelost)

Offline Gracchio - 06/11/2008 13:37
Avatar van GracchioNieuw lid Het is de bedoeling dat de query wordt uitgevoerd zodra de knop removeuser wordt ingedrukt en de waarde $usernumber gevuld is. Hier ergens zit volgens mij ook een probleem, maar het grootste probleem is dat ik niet weet hoe ik de waarde moet plaatsen in mijn query. Mijn leraren en klasgenoten zeggen steeds andere dingen en geen van allen lijken te werken ('$waarde',".$waarde." enz). Ik zit helemaal vast atm 

  1. if(isset($_POST["removeuser"]) && $usernumber != '') {
  2. mysql_query("DELETE FROM User WHERE User_Number = '$usernumber'")
  3. } else {
  4. echo "Removing this user is irreversible, please make sure you remove the correct user";
  5. }


Bedankt voor het lezen! 

6 antwoorden

Gesponsorde links
Offline Wim - 06/11/2008 13:46
Avatar van Wim Crew algemeen komt $usernumber van een formulier? Zoja, maak er $_POST['usernumber'] van!

Verder, variabele zetten we buiten quotes!
  1. mysql_query("DELETE FROM User WHERE User_Number = '$usernumber'") or die(mysql_error());

wordt dus
  1. mysql_query("DELETE FROM User WHERE User_Number = '".$usernumber."'") or die(mysql_error());

Offline Kr4nKz1n - 06/11/2008 13:53
Avatar van Kr4nKz1n Onbekend En een leuke mysql_real_escape_string is handig 
Offline Gracchio - 06/11/2008 14:13
Avatar van Gracchio Nieuw lid bedankt wim de query doet het nu, ik moet alleen ff kijken of ik fouten heb gemaakt in de rest van de code. $usernumber komt trouwens uit een array $usernumber = $arr['']; en die kon ik gewoon weergeven.

Maar wat doet mysql_real_escape_string? 
Offline Kr4nKz1n - 06/11/2008 14:58
Avatar van Kr4nKz1n Onbekend SQL Injection tegen gaan.
Offline Gracchio - 06/11/2008 15:30
Avatar van Gracchio Nieuw lid Op de een of andere manier krijg ik wel de waarschuwing te zien maar wordt de query nog steeds niet uitgevoerd als ik op de knop klik. Ik programmeer pas een aantal weken dus ik zal vast een foute if statement hebben gemaakt ofzoiets . De zoekfunctie werkt wel prima
  1. <?php
  2.  
  3. //verbind met database-server en kies database
  4. include 'connect.php';
  5.  
  6. if (!empty($_POST)){
  7. if(isset($_POST["SearchUser"]) && $_POST["SearchUser"] == ""){
  8.  
  9. echo "Enter a username";
  10. } else {
  11. //Haal username uit formulier op
  12. $user = $_POST["search"];
  13.  
  14.  
  15. $query = mysql_query("SELECT * FROM user WHERE username='$user'");
  16. while ($arr = mysql_fetch_row($query)) {
  17. echo ("The current user information:<br><br>");
  18. echo '<table>';
  19. echo "User_Number: " . $arr['0'] . "<br />";
  20. $usernumber = $arr['0'];
  21. echo '<table>
  22. Username : ' . $arr['1'] . '<br>
  23. Password : ' . $arr['2'] . '<br>
  24. Name : ' . $arr['3'] . '<br>
  25. Address : ' . $arr['4'] . '<br>
  26. Residence : ' . $arr['5'] . '<br>
  27. Telephone Number: ' . $arr['6'] . '<br>
  28. Department : ' .$arr['7'] . '<br>
  29. </table>
  30. ';
  31. echo '<form name=RemoveUser method=post action="RemoveUser.php">
  32. <table>
  33. <input type=submit name=removeuser value="Remove">
  34. </table>
  35. </form>';
  36.  
  37. }
  38. }
  39. }
  40. if(isset($_POST["removeuser"]) && $usernumber != '') {
  41. mysql_query("DELETE FROM User WHERE User_Number = '".$usernumber."'")
  42. } else {
  43. echo "Removing this user is irreversible, please make sure you remove the correct user";
  44. }
  45. ?>
Offline Kr4nKz1n - 06/11/2008 15:43
Avatar van Kr4nKz1n Onbekend Uhmz je html table is niet echt correct, en dan bedoel ik echt 100% niet goed 

En je zegt dat er wel een waarschuwing wordt weergegeven. Zover ik zie, wordt er geen waarschuwing weergegeven wanneer er een gebruiker wordt verwijdert.

En je kan de $usernumber niet ophalen op zo`n manier, deze is foetsie op het moment dat je hem wilt gebruiken.
Wat je kan doen is een hiddenfield gebruiken of in de form tag bij action het id in de url mee geven.
  1. echo <input type="hidden" name="userid" value="'.$arr[0]."' />';
En dan wordt $usernumber, $_POST['userid'].
Of
  1. echo '<form action="RemoveUser.php?id='.$arr[0].'">';
En dan moet je ipv POST, GET gebruiken,
Gebruik bij een integer geen quotes vandaar dat de quotes bij m`n code weg z`n.

Wat ik aanraad is dit niet te doen met een knop, maar met een linkje.
  1. echo '<a href="removeuser.php?id='.$arr[0].'" title="Verwijder">Verwijder</a>';
En ook hier GET gebruiken.

En nog een tip, jij gebruikt $query en $arr. Het is makkelijker om dit duidelijke namen te geven, bv: $user en $use. Zoiets doe ik altijd. De 3 eerste letters van de query gebruik ik voor de fetch.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.307s