Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wczytywanie pliku .txt do bazy danych po linijce
Forum PHP.pl > Forum > PHP
Fokmenboss
Witam!
Napisałem skrypt wczytujący kody do bazy danych z pliku tekstowego. Każdy kod znajduje się w osobnej linijce pliku. Problem w tym że skrypt wczytuje do bazy tylko co drugi kod.

  1. switch($_GET["mod"]){
  2. case 'dodaj':
  3. $kody = fopen("kody.txt", "r");
  4.  
  5. while(fgets($kody)){
  6. $kod = fgets($kody);
  7. $kwota = $_POST['kwota'];
  8. $query = "INSERT INTO `fokmen_nclick`.`codes` (
  9. `id` ,
  10. `code` ,
  11. `status` ,
  12. `expired` ,
  13. `sms`
  14. )
  15. VALUES (
  16. NULL , '$kod', 'active', '0', '$kwota')";
  17. $dodaj = mysql_query($query);
  18. }
  19. break;
  20. default:
  21. ?>
  22. <form action="kod.php?mod=dodaj" method="POST">
  23.  
  24. <select name="kwota">
  25. <option value=0>50gr</option>
  26. <option value=1>1zł</option>
  27. <option value=2>2zł</option>
  28. <option value=3>3zł</option>
  29. <option value=4>4zł</option>
  30. <option value=5>5zł</option>
  31. <option value=6>6zł</option>
  32. <option value=9>9zł</option>
  33. <option value=10>10zł</option>
  34. <option value=17>17zł</option>
  35. <option value=19>19zł</option>
  36. <option value=20>20zł</option>
  37. <option value=25>25zł</option>
  38. </select>
  39. <input type="submit">
  40. </form>
  41. <?php
  42. break;
  43. }
  44. ?>



Co jest źle? Proszę o pomoc.

Pozdrawiam
Crozin
Przy każdym przejściu pętli dwa razy wykonujesz odczyt jednej linii z pliku.
  1. while(fgets($kody)){ // jeżeli odczytano linię
  2. $kod = fgets($kody); // to odczytaj jeszcze raz
  3.  
  4. ...
  5. }
Zamień to na:
  1. while($kod = fgets($kody)){
  2. ...
  3. }
I będzie działać.
Fokmenboss
Działa, dzięki:)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.