login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Query werkt half

Offline flyingdragon - 26/04/2006 19:03
Avatar van flyingdragonPHP beginner Ik heb een query alleen hij werkt maar half,
  1. mysql_query("DELETE FROM `prob_db_modules` WHERE `id`='".$_GET['id']."'") or die("<b>Error:</b><br>".mysql_error());
  2.  
  3. mysql_query("DELETE FROM `prob_db_cats` WHERE `module`='".$_GET['module_name']."'") or die("<b>Error:</b><br>".mysql_error());
  4.  
  5. mysql_query("DELETE FROM `prob_db_probs` WHERE `module`='".$_GET['module_name']."'") or die("<b>Error:</b><br>".mysql_error());


Die bovenste query werkt wel, en die andere 2 gebeurt er niks.
de url die hij gebruikt ziet er bijv zo uit:
  1. ?module=admin/index&action=manage_modules&module_action=delete&id=10&module_name=Hardware%204


Ik vind de fout niet:s

21 antwoorden

Gesponsorde links
Offline webstab - 26/04/2006 19:08
Avatar van webstab PHP ver gevorderde %20 ? Had je een spatie in je adressenbalk? Wss ligt daar de fout.
Ik raad je wel aan om de inputs te controleren met addslashes/is_numeric/...
Offline Kevin - 26/04/2006 19:09
Avatar van Kevin Crew Ajax/REST Werkt het niet als je probeert alles in 1 syntax te stoppen?
Zodanig dat je maar 1x mysql_query() gebruikt?

Ik herinner me dat het in een van mijn scripts ook niet werkte met
mail(persoon1);
mail(persoon2);

Geen idee waarom 
Offline flyingdragon - 26/04/2006 19:14 (laatste wijziging 26/04/2006 19:20)
Avatar van flyingdragon PHP beginner @Webstab,
ook geprobeerd met een naam zonder spatie, maakt niks uit:(
Offline Simon - 26/04/2006 19:16 (laatste wijziging 26/04/2006 19:17)
Avatar van Simon PHP expert doe eerst eens een select query om te zien of die module bestaat
  1. <?php
  2. if(mysql_num_rows($query) < 1) {
  3. echo 'Module niet gevonden, gezocht op '. $_GET['module_name'];
  4. }
  5. else {
  6. //delete query
  7. }
  8. ?>


@ddReborn: je kan geen 3 deletequerys doen hé, het zijn verschillende tabellen...
Offline vinTage - 26/04/2006 19:18
Avatar van vinTage Nieuw lid Volgens mij kan er maar één mysql_query per keer gebeuren.

Test het eens door de eerste query te //commenten, zodat er dus maar 2 querys gebeuren.
Waarschijnlijk zal dan alleen de "2e" het dan doen (wat dan eigenlijk de eerste is).
Offline Simon - 26/04/2006 19:21
Avatar van Simon PHP expert vinTage; volgens mij ligt het daar niet aan, want er worden andere tabellen en variabelen gebruikt, ik denk dat het probleem ligt bij de underscore ( _ ) in de url
Offline flyingdragon - 26/04/2006 19:22
Avatar van flyingdragon PHP beginner @Vintage, maakt ook niks uit.

@Simon, Hij geeft inderdaad aan dat hij niet bestaat, maar dat doet hij wel:s , of ben ik nu zo scheel
Offline Simon - 26/04/2006 19:24 (laatste wijziging 26/04/2006 19:27)
Avatar van Simon PHP expert doe eens die underscore weg in de url en ook in de $_GET['module_name']

Offline flyingdragon - 26/04/2006 19:28
Avatar van flyingdragon PHP beginner @Simon, nope werkt ook niet.
En het gekke is ik heb zogoed als dezelfde query als bij edit en die werkt wel:s ,
  1. $id = $_GET['id'];
  2. $module = $_GET['module_name'];
  3. $query1 = mysql_query("UPDATE `prob_db_modules` SET naam='$_POST[naam]' WHERE `id`='$id'") or die("<b>Foutje:</b><br>".mysql_error());
  4.  
  5. $query2 = mysql_query("UPDATE `prob_db_cats` SET module='$_POST[naam]' WHERE `module`='$module'") or die("<b>Foutje:</b><br>".mysql_error());
  6.  
  7. $query3 = mysql_query("UPDATE `prob_db_probs` SET module='$_POST[naam]' WHERE `module`='$module'") or die("<b>Foutje:</b><br>".mysql_error());


zelf als ik hem exact op dezelfde manier doe pikt hij hem niet, steeds alleen de eerste query
Offline Simon - 26/04/2006 19:35 (laatste wijziging 26/04/2006 19:35)
Avatar van Simon PHP expert
  1. <?php
  2. if(mysql_num_rows($query) < 1) {
  3. echo 'Module niet gevonden, gezocht op '. $_GET['module_name'];
  4. }
  5. else {
  6. //delete query
  7. }
  8. ?>

en als je dit stukje gebruikte, wat gaf hij dan na 'gezocht op'? verscheen de waarde van $_GET['module_name']??
Offline Ibrahim - 26/04/2006 19:38
Avatar van Ibrahim PHP expert check dan in de database of wel een rij is waarin Hardware... bijzit anders geloof ik best dat hij het niet kan vinden 
Offline flyingdragon - 26/04/2006 19:39 (laatste wijziging 26/04/2006 19:42)
Avatar van flyingdragon PHP beginner Module niet gevonden, gezocht op

niks:s

en bij die edit
Module niet gevonden, gezocht op Hardware 4

@Silliecom, zo dom ben ik ook niet:p ,
ik heb het trouwens met 3 verschillende modules geprobeerd.:o
Offline Simon - 26/04/2006 19:44 (laatste wijziging 26/04/2006 19:59)
Avatar van Simon PHP expert het is dus toch omdat hij die $_GET niet goed neemt

maak er dit eens van
  1. ?module=admin/index&action=managemodules&moduleaction=delete&id=10&modulename=Hardware%204

en dan als code:
  1. <?php
  2. mysql_query("DELETE FROM `prob_db_modules` WHERE `id`='".$_GET['id']."'") or die("<b>Error:</b><br>".mysql_error());
  3. //de eerste query werkt, dus geen probleem
  4. $modulename = str_replace("%20", " ", $_GET['modulename']);
  5. $query = mysql_query("SELECT module FROM prob_db_cats WHERE module='".$modulename."'") or die("<b>Error:</b><br>".mysql_error());
  6. $query2 = mysql_query("SELECT module FROM prob_db_probs WHERE module='".$modulename."'") or die("<b>Error:</b><br>".mysql_error());
  7. if((mysql_num_rows($query) < 1) && (mysql_num_rows($query2) < 1)) {
  8. echo 'Module niet gevonden, gezocht op '. $modulename;
  9. }
  10. else {
  11. //delete query
  12. mysql_query("DELETE FROM `prob_db_cats` WHERE `module`='".$modulename."'") or die("<b>Error:</b><br>".mysql_error());
  13.  
  14. mysql_query("DELETE FROM `prob_db_probs` WHERE `module`='".$modulename."'") or die("<b>Error:</b><br>".mysql_error());
  15. }
  16. ?>


Offline flyingdragon - 26/04/2006 19:56
Avatar van flyingdragon PHP beginner @simon, nog niet:o
Offline Simon - 26/04/2006 19:59 (laatste wijziging 26/04/2006 20:03)
Avatar van Simon PHP expert probeer de bovenstaande nog es, kheb een paar wijzigingen doorgevoerd
Offline flyingdragon - 26/04/2006 20:03 (laatste wijziging 26/04/2006 20:07)
Avatar van flyingdragon PHP beginner Wit scherm, als ik hem submit.
en hij veranderd niks in de db

  1. <?
  2. if (isset($_POST['verwijder_ja']))
  3. {
  4. mysql_query("DELETE FROM `prob_db_modules` WHERE `id`='".$_GET['id']."'") or die("<b>Error:</b><br>".mysql_error());
  5. //de eerste query werkt, dus geen probleem
  6.  
  7. $modulename = str_replace("%20", " ", $_GET['modulename']);
  8.  
  9. $query = mysql_query("SELECT module FROM prob_db_cats WHERE module='".$modulename."'") or die("<b>Error:</b><br>".mysql_error());
  10.  
  11. $query2 = mysql_query("SELECT module FROM prob_db_probs WHERE module='".$modulename."'") or die("<b>Error:</b><br>".mysql_error());
  12. if((mysql_num_rows($query) < 1) && (mysql_num_rows($query2) < 1))
  13. {
  14. echo 'Module niet gevonden, gezocht op '. $modulename;
  15. }
  16. else
  17. {
  18. //delete query
  19. mysql_query("DELETE FROM `prob_db_cats` WHERE `module`='".$modulename."'") or die("<b>Error:</b><br>".mysql_error());
  20.  
  21. mysql_query("DELETE FROM `prob_db_probs` WHERE `module`='".$modulename."'") or die("<b>Error:</b><br>".mysql_error());
  22. }
  23. }
  24. ?>


  1. ?module=admin/index&action=managemodules&moduleaction=delete&id=10&modulename=Hardware%204
Offline Simon - 26/04/2006 20:14
Avatar van Simon PHP expert dus je krijgt geen melding dat $modulename niet klopt...

  1. $modulename = str_replace("%20", " ", $_GET['modulename']);
  2. echo $modulename;

doet dat es
Offline flyingdragon - 26/04/2006 20:21 (laatste wijziging 26/04/2006 20:22)
Avatar van flyingdragon PHP beginner Module niet gevonden, gezocht op,

en hij gooit nog steeds gewoon die eerste eruit, dus de eerste query werkt.
maar die andere 2 nog steeds niet:s
Offline Simon - 26/04/2006 20:26
Avatar van Simon PHP expert
  1. <?php
  2. if (isset($_POST['verwijder_ja']))
  3. {
  4. echo $_GET['module']."<br />";
  5. echo $_GET['action']."<br />";
  6. echo $_GET['moduleaction']."<br />";
  7. echo $_GET['modulename']."<br />";
  8. //zeg es welke je te zien krijgt...
  9.  
  10. mysql_query("DELETE FROM `prob_db_modules` WHERE `id`='".$_GET['id']."'") or die("<b>Error:</b><br>".mysql_error());
  11. //de eerste query werkt, dus geen probleem
  12. ?>
Offline Ibrahim - 26/04/2006 20:27
Avatar van Ibrahim PHP expert echo eens de 2 andere queryes en laat zien wat je krijgt...
Offline flyingdragon - 26/04/2006 20:36
Avatar van flyingdragon PHP beginner Ik ben er met dank aan Simon uit^^ ,
Ik had me action niet goed:$
had ik:
  1. <form action="?module=admin/index&action=managemodules&moduleaction=delete&id=<?= $_GET['id'];?>" method="POST">


Moet zijn:
  1. <form action="?module=admin/index&action=managemodules&moduleaction=delete&id=<?= $_GET['id'];?>&modulename=<?= $_GET['modulename'];?>" method="POST">
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.315s