login  Naam:   Wachtwoord: 
Registreer je!
 Forum

ID word niet opgehaald...

Offline Gamezhoek - 19/03/2006 15:29
Avatar van GamezhoekHTML interesse Ik heb een table genaamd visit, met daarin de rijen id en website.
id is auto_increment en website is steeds een andere url.
Ik laat de hele tijd een random website weergeven, dat doe ik met:
  1. echo '<a href="http://'.$array[$rand]['website'].'" onClick="javascript:Accept()" target="_blank">'.$array[$rand]['website'].'</a>';
  2. echo '<br /><br /><br /><a href=ontvang.php>Bekijk volgende uitnodiging</a>';
  3. mysql_query("DELETE FROM visit WHERE website='".$array[$rand]['website']."'");

Hier zie je alleen de echo, maar, hij word in elk geval wel opgehaald.
$array[$rand]['website'] is de random url.
Dit werkt ook prima enz., maar ik wil dat als hji word weergeven, meteen uit de database verwijdert word, maar met deze code, als er meerdere website's met dezelfde naam zijn, dan worden ze ALLEMAAL verwijderd, wat dus niet de bedoeling is.
Ik heb het met deze code geprobeert, maar het werkt niet:
  1. <?php
  2. echo '<a href="http://'.$array[$rand]['website'].'" onClick="javascript&#058;Accept()" target="_blank">'.$array[$rand]['website'].'</a>';
  3. echo '<br /><br /><br /><a href=ontvang.php>Bekijk volgende uitnodiging</a>';
  4. $webid = mysql_query("SELECT id FROM visit WHERE website='".$array[$rand]['website']."'");
  5. while($webid2 = mysql_fetch_assoc($webid))
  6. {
  7. mysql_query("DELETE FROM visit WHERE id='".$webid2['id']."'");
  8. }
  9. ?>

Hier word er helemaal niks verwijderd, voor de rest werkt alles gewoon.
ik krijg geen errors..
Maar, hoezo werkt dit niet?
Hij haalt het ID op, en verwijderd de website met dat id, in elk geval.. dat hoort hij te doen..
Hoe komt dit? Dit klopt toch gewoon? Zo gebruik ik het ook bij andere dingen, en daar werkt het perfect...

9 antwoorden

Gesponsorde links
Offline Tuinstoel - 19/03/2006 15:38
Avatar van Tuinstoel PHP expert Als er geen errors zijn dan komt het er op neer dat er 0 rijen zijn getroffen. Dat wil zeggen dat je onderste query niks uithaalt. Dan zla $webid2['id'] dus wel niks uitvoeren.
Misschien is het wel handig om eens print_r() te doen bij $webid2...

Zou LIMIT misschien geen oplossing zijn trouwens?
  1. DELETE FROM visit WHERE website = '".$array[$rand]['website']."'
Offline Gamezhoek - 19/03/2006 15:55 (laatste wijziging 19/03/2006 15:55)
Avatar van Gamezhoek HTML interesse LIMIT? Hoe werkt dat?
En, print_r() geeft wel het juiste ID weer, dus ik heb dit geprobeert:
  1. <?php
  2. while($webid2 = mysql_fetch_assoc($webid))
  3. {
  4. $webid3 = print_r($webid2['id']);
  5. mysql_query("DELETE FROM visit WHERE id='".$webid3."'");
  6. }
  7. ?>

Maar dit werkt niet..
Offline Simon - 19/03/2006 16:15 (laatste wijziging 19/03/2006 16:19)
Avatar van Simon PHP expert zet es or die("Er ging iets fout: ". mysql_error()); na je querys
Offline Gamezhoek - 19/03/2006 16:35
Avatar van Gamezhoek HTML interesse Geen errors...
Offline Simon - 19/03/2006 16:39 (laatste wijziging 19/03/2006 16:39)
Avatar van Simon PHP expert
  1. <?php
  2. <?php
  3. echo '<a href="http://'.$array[$rand]['website'].'" onClick="javascript&#058;Accept()" target="_blank">'.$array[$rand]['website'].'</a>';
  4. echo '<br /><br /><br /><a href=ontvang.php>Bekijk volgende uitnodiging</a>';
  5. $webid = mysql_query("SELECT id FROM visit WHERE website='".$array[$rand]['website']."'") or die(mysql_error());;
  6. if(mysql_num_rows($webid) > 0)
  7. {
  8. while($webid2 = mysql_fetch_assoc($webid))
  9. {
  10. mysql_query("DELETE FROM visit WHERE id='".$webid2['id']."'") or die(mysql_error());
  11. }
  12. }
  13. else
  14. {
  15. echo "Webiste niet gevonden.";
  16. }
  17. ?>
Offline Gamezhoek - 19/03/2006 17:13
Avatar van Gamezhoek HTML interesse Ja, ik heb nu wéér dat meteen alles met dezelfde url word verwijderd. 
Ik zet 5 dezelfde website's erin, met 5 verschillende id's, er word er één weergeven, en meteen allemaal weg.
Offline nathanael - 19/03/2006 21:45
Avatar van nathanael Gouden medaille

HTML gevorderde
mysql_query("DELETE FROM visit WHERE website = '".$array[$rand]['website']."' LIMIT 1"); << is wat hij bedoelde met LIMIt
Offline Gamezhoek - 19/03/2006 22:06
Avatar van Gamezhoek HTML interesse Ah, bedankt. Net wat ik nodig had. ;)
Offline Thomas - 19/03/2006 23:33
Avatar van Thomas Moderator Die LIMIT zou niet nodig moeten zijn, omdat je al specificeert wat ie weg zou moeten gooien...
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.234s