grzesgracz
13.01.2006, 15:51:26
<?php
function zatwierdzono_raport() {
$rap = $_GET['raport'];
$zapytanie = "SELECT * FROM kursy WHERE id='$rap'";
$dir = '../raporty/';
$plik = $dir . $rap . '.csv';
$readed = file($plik) or
die('<p class="error">Nie można otworzyć pliku z danymi</p>');
foreach($readed as $linia) {
$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]'";
echo $zapytanie2 . '<br>'; echo '<b>' . $wykonaj . '</b><br><br>';
}
}
echo '<p class="ok" style="font-size: 16; font-weight: bold">Zatwierdzono raport</p><br>'; }
?>
Witam!
Czy ktos wie dlaczego tylko pierwszy rekord jest dodawany do bazy? Niby wszystko ok...

Dzieki,
G.
nospor
13.01.2006, 15:57:16
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
13.01.2006, 16:00:03
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
13.01.2006, 16:04:15
Pod spodem wyświetlasz $wykonaj, co ono ci pokazuje?
grzesgracz
13.01.2006, 16:05:45
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
13.01.2006, 16:08:40
daj tak:
<?php
?>
jaki blad?
grzesgracz
13.01.2006, 16:18:09
nospor - dzieki!

Byl problem z indeksem tabeli...nie bylo go

(w sumie byl, ale jako pole id_lekarza)
Teraz dodalem id na poczatku auto_increment i wszystko hula jak ma

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
13.01.2006, 16:20:27
po zrobieniu tego co ma zrobic, przekireuj od razu na inna strone z trescia chociazby "DONE".
<?php
//.....
header('Location: innasteona.php');
?>
grzesgracz
13.01.2006, 16:23:59
No tak, to jesno z wyjsc.
A nie daloby sie czegos lepszego?
nospor
13.01.2006, 16:27:15
wpisujesz na podstawie $_GET['raport']. musisz wiec gdzies zapamietywac, czy juz dane $_GET['raport'] bylo zapisywane czy nie. Juz lepiej ?
grzesgracz
13.01.2006, 16:32:13
O, i to jest dobra odpowiedź

Dzieki jeszcze raz za pomoc,
Pozdrawiam!