login  Naam:   Wachtwoord: 
Registreer je!
 Forum

text file als database , hoe sorteren , line editeren ?

Offline Hebus - 11/08/2008 16:39 (laatste wijziging 11/08/2008 16:41)
Avatar van HebusNieuw lid Ik ben verplicht om met een text file te werken, de host hier op het werk wil geen mysql db geven. Dus zit ik nu met iets te klooien dat ik nog noot gebruikt heb 

Nu wil ik deze file kunnen editeren.
Dus een lijst met alle records en daarnaast een delete en edit knop.
Het volgende heb ik al maar dan staat er niks alfabetisch, de lijst komt er uit zoals hij in de file staat. Maar op deze manier kan ik wel aan de edit en delete button de pointer toekennen $row.
Maar is er een manier om de lijst te sorteren, op titel vb , en dan toch nog die pointer aan de knoppen te kunnen toekennen, ik geraak er maar niet uit.
  1. $film_lijst = file("../../db/film_lijst.csv");
  2.  
  3.  
  4. '
  5. <form id="form_lijst" name="form_lijst" method="post" action="film_toevoegen.php">
  6. <table width="508" border="0" cellspacing="0" cellpadding="0">
  7. <tr>
  8. <td width="138"><span class="style3">Titel:</span></td>
  9. <td width="103"><span class="style3">Student:</span></td>
  10. <td width="110"><span class="style3">Datum:</span></td>
  11. <td width="110"><span class="style3">Speelduur:</span></td>
  12. <td width="110"></span></td>
  13. <td width="47"></td>
  14. </tr>
  15. ';
  16.  
  17. foreach($film_lijst as $key => $val)
  18. {
  19. //explode that data into a new array:
  20. $data[$key] = explode("|", $val);
  21. }
  22.  
  23. $row="1";
  24.  
  25. for($k = 1; $k < sizeof($film_lijst); $k++)
  26. {
  27.  
  28.  
  29. '
  30. <tr>
  31. <td>'.$data[$k][0].'</td>
  32. <td>'.$data[$k][1].'</td>
  33. <td>'.$data[$k][2].'</td>
  34. <td>'.$data[$k][3].'</td>
  35.  
  36. <td><span class="style3"><input name="Edit" Edit" type="submit" id="Edit" value="'.$row.'" /></span></td>
  37. <td><span class="style3"><input name="Delete" type="submit" id="Delete" value="'.$row.'" /></span></td>
  38. </tr>
  39. ';
  40. $row ++;
  41. }
  42.  
  43. echo '</table> </form> ';


Daarnaast geraak ik er maar niet aan uit hoe ik een lijn kan editeren 
Een lijn delten lukt wel al, dat heb ik zo gedaan.


  1. //DB lezen behalve de lijn die moet gewist worden, db terug saven zonder gewiste lijn.
  2.  
  3. if (isset($_POST ['Delete']))
  4.  
  5. {
  6.  
  7. $del_row=$_POST ['Delete'];
  8.  
  9. //het bestand in een array zetten
  10. $bestand = file("../../db/film_lijst.csv");
  11.  
  12. //regel verwijderen
  13. unset($bestand[$del_row]);
  14.  
  15. //de overgebleven regels weer in het bestand schrijven
  16. $file = fopen("../../db/film_lijst.csv","w");
  17. foreach($bestand AS $waarde){
  18. fwrite($file,$waarde);
  19. }
  20. fclose($file);
  21.  
  22. }

3 antwoorden

Gesponsorde links
Offline Martijn - 11/08/2008 19:50
Avatar van Martijn Crew PHP mssn een idee om alles in een textfield te echoën, zodat je het daar kan bewerken? dan kun je meteen alles eruithalen wat je eruit wilt
Offline maigel - 12/08/2008 00:16
Avatar van maigel PHP beginner misschien een kleine tip, gebruik geen text file maar een php file.
Zo kunnen mensen geen toegang krijgen tot jouw "database".
Offline Gerard - 12/08/2008 00:22
Avatar van Gerard Ouwe rakker Ga eens na of je gebruik kan maken van sqlite. Dat is een database systeem wat je in 1 file kan plaatsen. Je kan daarbij gebruik maken van SQL.

Wanneer dit niet kan adviseer ik je om de opdracht terug te geven of het hogerop te zoeken. De kosten van 1 database wegen totaal niet op tegen de extra uren die jij moet maken om het voor elkaar te krijgen met bestanden.

Als je dit toch door wilt zetten en geen gebruik kan maken van sqlite, sla het dan op in XML bestanden. Met de ingebouwde XML functies van PHP kan je dan nog een boel. Alles beter dan platte tekst files.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.2s