![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 18.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam sobie otóż następujący kod...
Oczywiście połączenie z bazą jest, a problem mój jest następujący: Czy istnieje możliwość (poza unique_key) aby dodawane rekordy nie mogły się powtórzyć? Spytacie zapewne dlaczego tak, więc już odpowiem tam mam spis płyt więc musi to tak wyglądać.. Z góry dziękuję za odpowiedź. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 590 Pomógł: 40 Dołączył: 11.01.2007 Skąd: Centrum Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli jesteś pewny że nazwy płyt są zawsze takie same .. czyli :
Kod plyta1 plyta2 plyta3 plyta1 a nie np tak: Kod plyta1 plyta2 plyta3 plyta 1 to możesz wykorzystać array_unique(). Możesz też przed insertem wykonywać select i jeżeli jest rekord to nie wykonywać inserta ... albo nie wykorzystując do tego bazy , dodawać każdy dodany wpis do tablicy i przed dodaniem następnego sprawdzasz czy już jest w tej tablicy ( in_array() ). Jeżeli jest to nie dodajesz, jeżeli nie ma to dodajesz. -------------------- 404
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 18.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Czaruję już prawie 20 minut i nic w sumie nie wyczarowałem..
Co do powtarzania to tak jestem pewny bo i w DB i TXT mam te same (znaczy odwrotnie, bo wgrywam do db z txt)... |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 590 Pomógł: 40 Dołączył: 11.01.2007 Skąd: Centrum Ostrzeżenie: (0%) ![]() ![]() |
Czaruję już prawie 20 minut i nic w sumie nie wyczarowałem.. Co do powtarzania to tak jestem pewny bo i w DB i TXT mam te same (znaczy odwrotnie, bo wgrywam do db z txt)... To pokaż jak czarujesz ... napisz jaki sposób wybrałeś z tych co podałem ... albo może trafił Ci się jakiś inny. Podaj kawałek kodu .. i napisz co się dzieje. -------------------- 404
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 18.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Reszta jak 1 post. Co się dzieje? Nie wiele, wali errorami... Warning: in_array() [function.in-array]: Wrong datatype for second argument in /var/www/sites/yoyo.pl/b/a/barczi1/update.lista.php on line 8 Raczej raczkuję w PHP, więc nie za bardzo wiem co począć... ![]() |
|
|
![]()
Post
#6
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 590 Pomógł: 40 Dołączył: 11.01.2007 Skąd: Centrum Ostrzeżenie: (0%) ![]() ![]() |
Reszta jak 1 post. Co się dzieje? Nie wiele, wali errorami... Warning: in_array() [function.in-array]: Wrong datatype for second argument in /var/www/sites/yoyo.pl/b/a/barczi1/update.lista.php on line 8 Raczej raczkuję w PHP, więc nie za bardzo wiem co począć... ![]() Przy tym co tutaj zrobiłeś to pomogą tylko czary jakiegoś szamana z puszczy Amazońskiej ![]() Przykład co zrobić ... tylko przykład a nie gotowiec: Wykorzystujemy array_unique();
-------------------- 404
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
A na podstawie czego sprawdzasz, czy rekordy nie mogą się powtórzyć? Nie mogą się powtórzyć wewnątrz pliku tekstowego, czy te z pliku nie mogą być takie same jak te w bazie? Plik jest duży czy mały? Ja bym to podzielił na dwa etapy:
1. Preparowania danych: - generujesz klucz (np. data+numer produktu) - usuwasz duplikaty (np. funkcją array_unique w przypadku małego pliku) - sprawdzasz, czy istnieją już w bazie takie rekordy - zapisujesz dane w nowym pliku, gdzie nowy wiersz = nowy rekord a pola są oddzielone znakiem tabulacji 2. Dodawanie danych: - wykorzystaj LOAD DATA INFILE - dodaje cały plik tekstowy od razu do bazy Jeśli rekordy mają być unikatowe warto dodać do tabeli klucz - upraszcza to znacznie sprawę. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 18.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
@Pilsener, te z pliku nie mogą być takie same jak w bazie, a plik ma ok. 20kb. Więc nie jest jeszcze, aż taki duży. Co do unique_key, właśnie nie mogę dać, bo mam primary_key na ID
![]() @Cienki1980 - Dobrze, odrobię zadanie jak wrócę ze szkoły ; d Ten post edytował Barczi 2.04.2008, 11:16:43 |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Miałem na myśli dodatkowe pole, nie musi być ono primary ani secondary key, wystarczy, że będzie unikalne.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 05:00 |