login  Naam:   Wachtwoord: 
Registreer je!
 Forum

unlink bestanden (Opgelost)

Offline bremskie - 13/11/2007 21:14 (laatste wijziging 13/11/2007 23:11)
Avatar van bremskieNieuw lid Hallo mensen ik wilde vragen of misschien iemand me een zetje kon geven omtrent de oplossing van mijn probleem in mijn script.

Mijn script verwijderd multiple rijen mbv checkboxen uit de database. Dit werkt.

Wat ik niet voor elkaar krijg is dat ie voordat ie rijen delete eerst foto' bestanden moetverwijderen. Mijn eerste kolom , de primary heet img_id en mijn tweede heet fotonr. Met name deze is belangrihjk voor me want hier staat de fotonaam in.

Zoals ik al zijn werk een gedeelte van mijn script het multiple deleten van de rijen maar ik wil ook dat ie de bijbehorende foto's verwijderd. Zoals ik nu de for each loop heb gemaakt , loopt ie door de aangevinkte checkboxen unlinkt ie de foto_id. Niet goed dus ik wil de benaming van de tweede kolom fotonr in mysql hebben.
Ok genoeg info misschien kan iemand me op weg helpen alvast bedankt

Sorry ik ben nieuw hier om de een of ander manier krijg ik mijn code niet fatsoenlijk in de text.



  1. php require_once("includes/connection.php"); ?>
  2. <?php
  3. // m.b.v checkboxen multiple rijen verwijderen uit data base
  4.  
  5. $dir = "images/";
  6.  
  7.  
  8. if (isset($_POST['done'])) {
  9. $done = ($_POST['done']);
  10. $fotonr = ($_POST['fotonr']);
  11.  
  12. foreach ($done as $checkboxnummer => $foto_id) {
  13. unlink ($dir.$foto_id.'jpg');
  14. echo $foto_id;
  15. }
  16.  
  17. $done = implode(',', $_POST['done']);
  18. $deletequery = "DELETE FROM tbl_image WHERE im_id IN ($done)";
  19. $resultdelete = mysql_query ($deletequery) or die(mysql_error);
  20.  
  21. if ($resultdelete) {
  22.  
  23. echo 'Items verwijderd<br>';
  24. }
  25. }
  26. $selectquery="SELECT * FROM tbl_image ";
  27. $resultselect=mysql_query($selectquery);
  28. while($row=mysql_fetch_assoc($resultselect)) {
  29.  
  30. ?>
  31. <table width="300" border= "1">
  32. <form method="post" action="">
  33. <input type="checkbox" name="done[]" id="<?php echo $row['im_id'];?>" value ="<?php echo $row['im_id'] ?>" />
  34. <label for="<?php echo $row['im_id'] ?>"><?php echo $fotonr[] = $row['fotonr']?></label>
  35.  
  36. <?php
  37. //einde while loop msq fetch array
  38. }
  39.  
  40.  
  41. ?>
  42. <br />
  43. </table><br />
  44. <input type="submit" value="Delete" />
  45. </form>

7 antwoorden

Gesponsorde links
Offline Wim - 13/11/2007 21:19
Avatar van Wim Crew algemeen unlink ($dir.$foto_id.'jpg');

je bent een puntje voor jpg vergeten
Offline bremskie - 13/11/2007 21:26 (laatste wijziging 13/11/2007 21:27)
Avatar van bremskie Nieuw lid Dankje je had gelijk maar dit brengt niet de oplossing want de $foto_id die voor het puntje staat die ik miste die staat voor de $done array oftewel de checkbozen die zijn aangevinkt. De done array geeftde waarde van mijn primary img_id kolom in my_sql.
Op zich werk dat maar de echte foto benaming staan in de tweede rij van my sql en deze heet fotonr. Hoe kan deze in mijn for each loop deze $fotonr implementeren?
Offline Wim - 13/11/2007 23:00
Avatar van Wim Crew algemeen
  1. <?php require_once("includes/connection.php");
  2. // m.b.v checkboxen multiple rijen verwijderen uit data base
  3.  
  4. $dir = "images/";
  5.  
  6.  
  7. if (isset($_POST['done'])) {
  8. $done = implode(',',$_POST['done']);
  9. $fotonr = ($_POST['fotonr']);
  10.  
  11. $query = mysql_query("SELECT foto_id,foto_nr FROM tbl_image WHERE im_id IN (".mysql_real_escape_string($done).")");
  12. while ($list = mysql_fetch_object($query))
  13. {
  14. // $list->foto_nr als je die nog zou nodig hebben is ook reeds geselecteerd
  15. unlink ($dir.$list->foto_id.'.jpg');
  16. echo $list->foto_id;
  17. }
  18.  
  19.  
  20. $deletequery = "DELETE FROM tbl_image WHERE im_id IN ($done)";
  21. $resultdelete = mysql_query ($deletequery) or die(mysql_error);
  22.  
  23. if ($resultdelete) {
  24.  
  25. echo 'Items verwijderd<br>';
  26. }
  27. }
  28. $selectquery="SELECT * FROM tbl_image ";
  29. $resultselect=mysql_query($selectquery);
  30. while($row=mysql_fetch_assoc($resultselect)) {
  31.  
  32. ?>
  33. <table width="300" border= "1">
  34. <form method="post" action="">
  35. <input type="checkbox" name="done[]" id="<?php echo $row['im_id'];?>" value ="<?php echo $row['im_id'] ?>" />
  36. <label for="<?php echo $row['im_id'] ?>"><?php echo $fotonr[] = $row['fotonr']?></label>
  37.  
  38. <?php
  39. //einde while loop msq fetch array
  40. }
  41.  
  42.  
  43. ?>
  44. <br />
  45. </table><br />
  46. <input type="submit" value="Delete" />
  47. </form>


zoiets dan?
Offline bremskie - 14/11/2007 01:07 (laatste wijziging 14/11/2007 01:38)
Avatar van bremskie Nieuw lid Jippy het werkt vraag me wel afwat die my_fetch_object nu eigenlijk echt doet .Php net is te abstract voor me.Ok het werkt en dat is het belangrijkste hardsikke bedankt
Offline Wim - 14/11/2007 10:35
Avatar van Wim Crew algemeen mysql_fetch_object steekt alle rijen die je met mysql_query geselecteerd hebt in een object. $object->veldnaam zal de waarde van "veldnaam" bevatten
Offline bremskie - 14/11/2007 14:22
Avatar van bremskie Nieuw lid Dankje Wim voor je uitleg en het zal best wel zijn dat ik dit vaker nodig zal hebben ,,, Weer wat geleerd 
Offline dkoadmin - 21/02/2008 17:01
Avatar van dkoadmin Nieuw lid Hoi,

Kun je dit principe ook toepassen op een database met meerdere typen van bestanden? Als ik het goed begrijp, werkt dit enkel met .jpg bestanden.

Groeten
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.209s