login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Undefined index

Offline finduilas - 29/01/2007 15:59
Avatar van finduilasPHP gevorderde Hallo,

Wanneer ik onderstaande code uitvoor krijg ik, wanneer 1 iets niet geselecteerd is, onderstaande fout:

Notice: Undefined index: 16 in /home/provenz/domains/provenzano.be/public_html/provenzano/detectives.php on line 31

Delete code:
  1. <?php
  2. if(isset ($_POST['verwijderen']))
  3. {
  4. $qdets = mysql_query("SELECT * FROM detectives WHERE huurder='".$username."'");
  5. $verwijderd = 0;
  6. while ($det = mysql_fetch_assoc($qdets))
  7. {
  8. $id = $det['id'];
  9. $cname = $_POST[$id];
  10. if(isset($cname))
  11. {
  12. if(mysql_query("DELETE FROM detectives WHERE id ='".$id."'"))
  13. {
  14. $verwijderd = $verwijderd +1;
  15. }
  16. }
  17. }
  18. echo 'Er zijn '.$verwijderd.' detectives verwijderd!';
  19. }
  20. ?>


de code waar je dingen kunt aanvinken enz:
  1. <?php
  2. while ($det = mysql_fetch_assoc($qdets)) {
  3. ?>
  4. <tr>
  5. <td><?php echo $det['username']; ?></td>
  6. <td><?php steden($det['stad']); ?></td>
  7. <td><?php detectstatus($det['status'],$det['stadg']); ?></td>
  8. <td><?php
  9. if($det['status'] == 2)
  10. {
  11. echo 'Reeds gevonden';
  12. }
  13. else
  14. {
  15. $starttijd = time();
  16. $stoptijd = $det['stoptijd'];
  17. $tijd = $stoptijd - $starttijd;
  18. if($tijd > 0)
  19. {
  20. echo $tijd;
  21. }
  22. else
  23. {
  24. echo 'Verlopen';
  25. }
  26. }
  27. ?></td>
  28. <td><input type="checkbox" name="<?php echo $det['id']; ?>" value"<?php echo $det['id'];?>"/></td>
  29. </tr>
  30. <?php
  31. }?>

Ik zie niet meteen wat verkeerd is.Dus als iemand het wel ziet zou ik het graag weten .

2 antwoorden

Gesponsorde links
Offline webstab - 29/01/2007 16:22 (laatste wijziging 29/01/2007 16:23)
Avatar van webstab PHP ver gevorderde Wat is regel 16 precies?

Deze foutmelding wilt gewoon zeggen dat de 'index' niet bestaat (maar dat had je zelf ook al kunnen fantaseren).
Mijn vermoeden zegt dat het dit is $_POST[$id].
Vervang dit:
  1. <?php $cname = $_POST[$id];
  2. if(isset($cname))
  3. {
  4. if(mysql_query("DELETE FROM detectives WHERE id ='".$id."'"))
  5. {
  6. $verwijderd = $verwijderd +1;
  7. }
  8. }

door
  1. <?php
  2. if(isset($_POST[$id]) && Is_Numeric($_POST[$id])) {
  3. if(mysql_query("DELETE FROM detectives WHERE id ='".$id."'"))
  4. {
  5. $verwijderd = $verwijderd +1;
  6. }
  7. }


Tevens vind ik het ook een raar verwijder-script.
Waarom doorloop je eerst heel de query en verwijder je ze dan?
Waarom niet ineens
mysql_query("DELETE FROM detectives WHERE id =id")
Offline finduilas - 29/01/2007 17:56 (laatste wijziging 29/01/2007 18:07)
Avatar van finduilas PHP gevorderde k, ik probeer je versie.

Wrm zo? Omdat ik niet weet welke geselecteerd zijn (checkbox).Dus moet ik alle mogelijkheden overlopen .


EDIT: Opgelost:

  1. if(isset ($_POST['verwijderen']))
  2. {
  3. $qdets = mysql_query("SELECT * FROM detectives WHERE huurder='".$username."'");
  4. $verwijderd = 0;
  5. while ($det = mysql_fetch_assoc($qdets))
  6. {
  7. $id = $det['id'];
  8. if(isset($_POST[$id]))
  9. {
  10. if(mysql_query("DELETE FROM detectives WHERE id ='".$id."'"))
  11. {
  12. $verwijderd = $verwijderd +1;
  13. }
  14. }
  15. }
  16. echo 'Er zijn '.$verwijderd.' detectives verwijderd!';
  17. }
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.198s