Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: W pętli FOREACH dodaje się tylko 1. rekord
Forum PHP.pl > Forum > Przedszkole
grzesgracz
  1. <?php
  2. function zatwierdzono_raport() {
  3.  
  4. $rap = $_GET['raport'];
  5. $zapytanie = "SELECT * FROM kursy WHERE id='$rap'";
  6. $wykonaj_kurs = mysql_query ($zapytanie);
  7.  
  8. $punkty = mysql_fetch_array($wykonaj_kurs);
  9.  
  10. $dir = '../raporty/';
  11. $plik = $dir . $rap . '.csv';
  12.  
  13. $readed = file($plik) or die('<p class="error">Nie można otworzyć pliku z danymi</p>');
  14. $roz = explode(".", $plik);
  15.  
  16. unset($readed[0]);
  17. unset($readed[1]);
  18.  
  19. foreach($readed as $linia) {
  20. $kom = explode(";", chop($linia));
  21.  
  22. if (strlen($linia)>25) {
  23. $zapytanie2 = "INSERT INTO punkty SET id_lekarza='$kom[3]', id_kursu='$rap', rk1='$punkty[6]', rk2='$punkty[7]', rk3='$punkty[8]', rk4='$punkty[9]', rk5='$punkty[10]', rk6='$punkty[11]', rk7='$punkty[12]', rk8='$punkty[13]', rk9='$punkty[14]', ad1='$punkty[15]', ad2='$punkty[16]', ad3='$punkty[17]', ad4='$punkty[18]', ad5='$punkty[19]', ad6='$punkty[20]', ad7='$punkty[21]', ad8='$punkty[22]', ad9='$punkty[23]'";
  24. $wykonaj = mysql_query($zapytanie2);
  25. echo $zapytanie2 . '<br>';
  26. echo '<b>' . $wykonaj . '</b><br><br>';
  27.  
  28. }
  29.  
  30. }
  31.  
  32. echo '<p class="ok" style="font-size: 16; font-weight: bold">Zatwierdzono raport</p><br>';
  33. }
  34. ?>


Witam!
Czy ktos wie dlaczego tylko pierwszy rekord jest dodawany do bazy? Niby wszystko ok... sad.gif

Dzieki,
G.
nospor
bo moze masz tylko jeden rekord do dodania. przeciez robisz warunek na linie, moze tylko jedna spelnia go. Moze masz tylko jedną linie wogole? Skad mamy wiedziec co masz w pliku ktory wczytujesz
grzesgracz
Sorry, za szybko napisalem posta i nie wyjasnilem.

W tym skrypcie jest echo $zapytanie - tam wypisuja sie gotowe zapytania dokladnie tak jak chcialbym je dodawac.
Wszystkie warunki sa spelnione. Do dodania jest na pewno wiecej rekordow.
kszychu
Pod spodem wyświetlasz $wykonaj, co ono ci pokazuje?
grzesgracz
INSERT INTO punkty SET id_lekarza='56577845', id_kursu='4', rk1='0', rk2='1', rk3='1', rk4='0', rk5='1', rk6='1', rk7='0', rk8='1', rk9='0', ad1='0', ad2='1', ad3='1', ad4='0', ad5='0', ad6='20', ad7='0', ad8='0', ad9='0'


INSERT INTO punkty SET id_lekarza='56577846', id_kursu='4', rk1='0', rk2='1', rk3='1', rk4='0', rk5='1', rk6='1', rk7='0', rk8='1', rk9='0', ad1='0', ad2='1', ad3='1', ad4='0', ad5='0', ad6='20', ad7='0', ad8='0', ad9='0'


INSERT INTO punkty SET id_lekarza='56577847', id_kursu='4', rk1='0', rk2='1', rk3='1', rk4='0', rk5='1', rk6='1', rk7='0', rk8='1', rk9='0', ad1='0', ad2='1', ad3='1', ad4='0', ad5='0', ad6='20', ad7='0', ad8='0', ad9='0'


INSERT INTO punkty SET id_lekarza='56577848', id_kursu='4', rk1='0', rk2='1', rk3='1', rk4='0', rk5='1', rk6='1', rk7='0', rk8='1', rk9='0', ad1='0', ad2='1', ad3='1', ad4='0', ad5='0', ad6='20', ad7='0', ad8='0', ad9='0'

itd.....

Razem chyba 60 rekordów
nospor
daj tak:
  1. <?php
  2. $wykonaj = mysql_query($zapytanie2) or die(mysql_error());
  3. ?>
jaki blad?
grzesgracz
nospor - dzieki! smile.gif

Byl problem z indeksem tabeli...nie bylo go biggrin.gif (w sumie byl, ale jako pole id_lekarza)
Teraz dodalem id na poczatku auto_increment i wszystko hula jak ma smile.gif

A przy okazji: jak zrobic, zeby nie miec zdublowanych rekordow? W tej funkcji niestety kazde odswiezenie strony bedzie dodawac kolejne identyczne rekordy po sobie...

AHA: Musi byc dwoch rekordow o tym samym id_lekarza i id_kursu.
W tabeli id_lekarza jak najbardziej moze sie powtarzac tak jak i id_kursu, ale nie moga byc razem wiecej niz raz.
nospor
po zrobieniu tego co ma zrobic, przekireuj od razu na inna strone z trescia chociazby "DONE".
  1. <?php
  2.  
  3. //.....
  4. header('Location: innasteona.php');
  5.  
  6. ?>
grzesgracz
No tak, to jesno z wyjsc.
A nie daloby sie czegos lepszego? smile.gif
nospor
wpisujesz na podstawie $_GET['raport']. musisz wiec gdzies zapamietywac, czy juz dane $_GET['raport'] bylo zapisywane czy nie. Juz lepiej ? smile.gif
grzesgracz
O, i to jest dobra odpowiedź biggrin.gif
Dzieki jeszcze raz za pomoc,
Pozdrawiam!
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.