ďťż

[PHP] problem z foreach i mysql Dodaje tylko 1 element do bazy

       

Podstrony


telcocafe

Nie działa ten kod:
$plik = file('plik.txt'); foreach($plik as $data) { $zapytanie = "INSERT INTO `kodykody` (`kod`, `uzyty`) VALUES ('".$data."', 'nie')"; $idzapytania = mysql_query($zapytanie); }
Plik ma format:
bu36a2 k7h6d5 8hc8ra hsr87p c7bmh5 ppadu7 5u6rmb 424pwc 4ph6ra tet4hh s3mkb3 346ar5 bchhpt
Tamten kod miał dodawać do tabeli "kodykody" rekordy "kod" (gdzie miały byc kody z pliku) i "użyty" dla każdego nie.
Jednak dodaje tylko 1 kod, czemu ?



$plik = file_get_contents('plik.txt'); //otwórz plik $eol = (strpos($_SERVER['SERVER_SOFTWARE'], 'Win')) ? "\r\n" : "\n": //przyjmij koniec linii dla Windowsa - \r\n - dla linuxa - \n $line = explode($plik, $eol); \\podziel plik na linie $cnt = count($line); \\sprawdź ilość linii for ($i=0;$i<$cnt;$i++) //pętla { $zapytanie = "INSERT INTO `kodykody` (`kod`, `uzyty`) VALUES ('".$line[$i]."', 'nie')"; //zapytanie do bazy mysql_query($zapytanie); //wykonanie zapytania SQL }
Użytkownik Petermechanic edytował ten post 29 lipiec 2009, 15:49

Parse error: syntax error, unexpected ':' in /var/www/sites/yoyo.pl/f/f/******/kody.php on line 26
Coś sknociłem ?

$plik = file_get_contents('plik.txt'); //otwórz plik $eol = (strpos($_SERVER['SERVER_SOFTWARE'], 'Win')) ? "\r\n" : "\n"; //przyjmij koniec linii dla Windowsa - \r\n - dla linuxa - \n $line = explode($plik, $eol); //podziel plik na linie $cnt = count($line); //sprawdź ilość linii for ($i=0;$i<$cnt;$i++) //pętla { $zapytanie = "INSERT INTO `kodykody` (`kod`, `uzyty`) VALUES ('".$line[$i]."', 'nie')"; //zapytanie do bazy mysql_query($zapytanie); //wykonanie zapytania SQL }

Dałem tak, ale mam 1 rekord nadal ;/.
Co jest źle ?

Zauważyłem coś dziwnego...
Wziąłem
echo $cnt

I... pokazało się "1".
Czy to może być wina "znaków końca linii" ? Jak je ustawić na "takie same" ?

To ten plik:
http://www.fffiezet.yoyo.pl/plik.txt

plik ma autentycznie koniec linii Windowsa, ale była pomyłka w kodzie - pomyliłem kolejność argumentów
kod przerób tak:
$plik = file_get_contents('plik.txt'); //otwórz plik $eol = (strpos($_SERVER['SERVER_SOFTWARE'], 'Win')) ? "\r\n" : "\n"; //przyjmij koniec linii dla Windowsa - \r\n - dla linuxa - \n $line = explode($eol, $plik); //podziel plik na linie - TUTAJ była pomyłka, sorry $cnt = count($line); //sprawdź ilość linii for ($i=0;$i<$cnt;$i++) //pętla { $zapytanie = "INSERT INTO `kodykody` (`kod`, `uzyty`) VALUES ('".$line[$i]."', 'nie')"; //zapytanie do bazy mysql_query($zapytanie); //wykonanie zapytania SQL }



Niestety, dodało 1 rekord.

Który rekord dodaje? Czy taki kod wyświetla jakiś błąd? $plik = file('plik.txt', FILE_IGNORE_NEW_LINES); foreach($plik as $data) { $zapytanie = "INSERT INTO `kodykody` (`kod`, `uzyty`) VALUES ('".$data."', 'nie')"; $idzapytania = mysql_query($zapytanie); echo mysql_error(); }

Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key 1Duplicate entry 'nie' for key
Cuś takiego!

Więc popraw strukturę tabeli (czyt. naucz się SQL) i wtedy możesz kontynuować. Po co dałeś UNIQUE dla pola `uzyty`?

:oops: Dzięki ;) Działa i ma się dobrze ;).

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.