login  Naam:   Wachtwoord: 
Registreer je!
 Forum

gegevens in bestanden

Offline Ultimatum - 22/09/2006 19:01
Avatar van UltimatumPHP expert Ik moet nu voor een hockeyclub een site maken en nu ben ik bij het wijzigen van team gegevens aangekomen. Er is geen mysql beschikbaar dus ik ben op flatfiles aangewezen. Mijn vraag is kan ik bepaalde info uit een bestand halen en die in een tekst box zetten. Dus dat ik een bestand genaamd teams.txt heb en als ik dan bijvoorbeeld jongensB aan klik hij alle gegevens van jongensB pakt en als ik een ander team aan klik die gegevens pakt (dus alle teamgegevens in 1 enkele file en niet in meerdere)

11 antwoorden

Gesponsorde links
Offline svm - 22/09/2006 19:11 (laatste wijziging 22/09/2006 19:27)
Avatar van svm PHP ver gevorderde Ja, dit is mogelijk.
Ik zal even een scriptje hiervoor schrijven...

Edit:
Je kunt het volgende scriptje gebruiken voor het uitlezen:
  1. <?
  2. if(isset($_GET['team'])){
  3. $inhoud = file_get_contents('teams.txt');
  4.  
  5. if($_GET['team'] == "jongensA"){
  6. $team = explode('//jongensA', $inhoud);
  7. }elseif($_GET['team'] == "jongensB"){
  8. $team = explode('//jongensB', $inhoud);
  9. }elseif($_GET['team'] == "jongensC"){
  10. $team = explode('//jongensC', $inhoud);
  11. }elseif($_GET['team'] == "meisjesA"){
  12. $team = explode('//meisjesA', $inhoud);
  13. }elseif($_GET['team'] == "meisjesB"){
  14. $team = explode('//meisjesB', $inhoud);
  15. }elseif($_GET['team'] == "meisjesC"){
  16. $team = explode('//meisjesC', $inhoud);
  17. }else{
  18. $team[1] = "Er is geen geldig team opgegeven!";
  19. }
  20.  
  21. echo "<textarea>".$team[1]."</textarea>";
  22. }
  23. ?>


De links maak je dan zo:
  1. <a href="?team=jongensA">JongensA</a><br />
  2. <a href="?team=jongensB">JongensB</a><br />
  3. <a href="?team=jongensC">JongensC</a><br />
  4. ...


Het bestand team.txt maak je dan zo:
  1. //jongensA
  2. Dit is een team dat blabla bla
  3. en ook nog blablabla
  4. //jongensA
  5.  
  6. //jongensB
  7. Dit is een team dat blabla bla
  8. en ook nog blablabla
  9. //jongensB
  10.  
  11. //jongensC
  12. Dit is een team dat blabla bla
  13. en ook nog blablabla
  14. //jongensC
  15. ...


Er zijn nog andere manieren denk ik, maar dit is er dus een.
Offline Ultimatum - 22/09/2006 19:29 (laatste wijziging 22/09/2006 19:33)
Avatar van Ultimatum PHP expert hey bedankt, zover had ik het nog niet gezocht 

maar nu vraag ik me af hoe ik gegevens moet wegschrijven naar dit bestand want hij schrijft altijd maar van 1 team weg en dan moet hij dus wel over het goede team heen schrijven...
Offline svm - 22/09/2006 19:32 (laatste wijziging 22/09/2006 19:32)
Avatar van svm PHP ver gevorderde O ja, dat overschrijven ook nog 
Geen probleem!
Werk met str_replace() of een alias hiervan.
Verder doe je het wegschrijven met fopen.
Als je wilt dat ik het scriptje ervoor schrijf of heb je meer info nodig, dan zeg je het maar.
Offline Ultimatum - 22/09/2006 19:33
Avatar van Ultimatum PHP expert Nog een probleem die ik net tegen kom

ik heb dus 4 velden (Coach, Coördinator, Training, Traininstijd) en hij moet dus als ook in een tekstveld een value neerzetten bij die 4 als dat in het tekstbestand staat.. kan dat ook want nu gooi je het gehele geheel in een textarea
Offline svm - 22/09/2006 19:35 (laatste wijziging 22/09/2006 19:41)
Avatar van svm PHP ver gevorderde Ik snap het niet helemaal.
Bedoel je dat als het een Coach is een 1 in de textarea erbij, een Coördinator een 2 enz.?

@Hieronder:
Oke, ik snap het probleem.
Ik zal er even over nadenken en wat proberen.
Maar lukt dat met fopen en overschrijven nu wel?
Offline Ultimatum - 22/09/2006 19:37 (laatste wijziging 22/09/2006 19:57)
Avatar van Ultimatum PHP expert Nee, ik heb 5 velden (Coach, Coördinator, Training, Traininstijd, Team) en dat de gegevens die in dat tekstbestand staat ook weer terug moet komen in de value van desbetreffende textbox...

@hierboven, ik ga me nu ff verder storten op dat overschrijven
Offline svm - 22/09/2006 19:55 (laatste wijziging 22/09/2006 20:00)
Avatar van svm PHP ver gevorderde Ik heb de code op dat nieuwste probleem aangepast:

  1. <?
  2. if(isset($_GET['team'])){
  3. $inhoud = file_get_contents('teams.txt');
  4.  
  5. if($_GET['team'] == "jongensA"){
  6. $team = explode('//jongensA', $inhoud);
  7. }elseif($_GET['team'] == "jongensB"){
  8. $team = explode('//jongensB', $inhoud);
  9. }elseif($_GET['team'] == "jongensC"){
  10. $team = explode('//jongensC', $inhoud);
  11. }elseif($_GET['team'] == "meisjesA"){
  12. $team = explode('//meisjesA', $inhoud);
  13. }elseif($_GET['team'] == "meisjesB"){
  14. $team = explode('//meisjesB', $inhoud);
  15. }elseif($_GET['team'] == "meisjesC"){
  16. $team = explode('//meisjesC', $inhoud);
  17. }else{
  18. $team[1] = "Er is geen geldig team opgegeven!";
  19. }
  20.  
  21. if(strpos($team[1], "//Coach")){
  22. $team = str_replace("//Coach", "", $team[1]);
  23. echo "<b>Coach:</b><br /><textarea name='Coach'>".$team[1]."</textarea>";
  24.  
  25. }elseif(strpos($team[1], "//Coördinator")){
  26. $team = str_replace("//Coördinator", "", $team[1]);
  27. echo "<b>Coördinator:</b><br /><textarea name='Coördinator'>".$team[1]."</textarea>";
  28.  
  29. }elseif(strpos($team[1], "//Training")){
  30. $team = str_replace("//Training", "", $team[1]);
  31. echo "<b>Training:</b><br /><textarea name='Training'>".$team[1]."</textarea>";
  32.  
  33. }elseif(strpos($team[1], "//Trainingstijd")){
  34. $team = str_replace("//Trainingstijd", "", $team[1]);
  35. echo "<b>Trainingstijd:</b><br /><textarea name='Trainingstijd'>".$team[1]."</textarea>";
  36. }
  37.  
  38. }elseif(strpos($team[1], "//Team")){
  39. $team = str_replace("//Team", "", $team[1]);
  40. echo "<b>Team:</b><br /><textarea name='Team'>".$team[1]."</textarea>";
  41. }else{
  42. echo "Het bestand <b>team.txt</b> is incorrect gemaakt!";
  43. }
  44.  
  45. }
  46. ?>


De team.txt ziet er dan hetzelfde uit, maar in de stukjes info staat dan ook nog 'de status'.
Dus: //training of //Coach ...


@Hieronder:
oké, ik wacht.
Dan ga ik ondertussen even huiswerk maken (een hele latijnse en griekse tekst vertalen en nog meer  )
Offline Ultimatum - 22/09/2006 19:58 (laatste wijziging 22/09/2006 20:45)
Avatar van Ultimatum PHP expert Ik zal even gaan testen, je hoort nog van mij 
Ok, het ophalen werkt na wat gekloot met de code van svm dus mijn dank daarvoor. Ik ga straks me bezig houden met het wegschrijven.
Offline Gerard - 22/09/2006 21:29
Avatar van Gerard Ouwe rakker
Citaat:
Er is geen mysql beschikbaar dus ik ben op flatfiles aangewezen.


Mocht je toevallig de beschikking hebben over PHP5 dan kan je gebruik maken van sqlite.
Offline Ultimatum - 22/09/2006 22:55
Avatar van Ultimatum PHP expert Dan moet ik er mij weer hier in verdiepen, ik ben niet lui ofzo begrijp dat niet verkeerd maar voor 1 website kan ik net zo goed even met flat files werken omdat ik er anders nooit mee werk dus is het weer wat afwisseling dan altijd mysql 

Ik kom uit dat wegschrijven echt niet uit, want ik heb geen idee hoe ik de goeie tekst van het juiste team eruit haal.

Mijn team.txt is iets anders geworden, heb overal voor //teamnaam en dan exploden daarop en dan $team[1], $team[2] etc.. voor het eruit halen.

kan iemand mij helpen met dat wegschrijven
Offline svm - 23/09/2006 12:22
Avatar van svm PHP ver gevorderde Ik wil best helpen met het wegschrijven (zoals je wel zult weten werken mijn systemen/site's ook zonder mysql, dus ik doe niks anders dan dit;-))
Je moet dus met fopen gaan werken.
Het scriptje heeft devolgende indeling:
  1. <?
  2. $fp = fopen('team.txt', 'X');
  3. fwrite($fp, "De tekst die erin komt te staan. \nHiervoor kun je uiteraard ook een variable gebruiken.");
  4. fclose($fp);
  5. ?>

De X die achteraan ik fopen staat, moet je vervangen door een a, a+, w, w+, r of r+.
Dit houd hetvolgende in:
Citaat:
'r' - Openen voor alleen lezen; plaats de bestands pointer aan het begin van het bestand.

'r+' - Openen voor lezen en schrijven; plaats de bestands pointer aan het begin van het bestand.

'w' - Openen voor alleen schrijven; plaats de bestands pointer aan het begin van het bestand en maak het bestand 0 bytes lang. Als het bestand niet bestaat, probeer het aan te maken.

'w+' - Openen voor lezen en schrijven; plaats de bestands pointer aan het begin van het bestand en maak het bestand 0 bytes lang. Als het bestand niet bestaat, probeer het aan te maken.

'a' - Openen voor alleen schrijven; plaats de bestands pointer aan het einde van het bestand. Als het bestand niet bestaat, probeer het aan te maken.

'a+' - Openen voor lezen en schrijven; plaats het bestands pointer aan het einden van de file. Als het bestand niet bestaat, probeer het aan te maken.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.212s