Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [podstawy] dodawanie kilku alementów w jednym zapytaniu
flashdev
post
Post #1





Grupa: Zarejestrowani
Postów: 812
Pomógł: 117
Dołączył: 2.12.2008

Ostrzeżenie: (10%)
X----


Witam!

Napisałem poniższy kod, który tworzy fragment zapytania sql dodającego kilka wpisów do tabeli w jednym zapytaniu.

  1. $str = '';
  2. $count = count($arr);
  3. for( $i = 0; $i < $count; $i++ ){
  4. $str .= "(NULL, '". $arr[$i] ."', 0), ";
  5. }


I teraz pojawił się problem. W tabeli drugie pole ma status UNIQUE. Kiedy jedna z wartości w tablicy $arr juz znajduje się w tabeli, to zapytanie wogóle się nie wykona i nie doda się żaden inny element, pomimo iż nie ma takiego w bazie.
Czy muszę to rozbijać na pojedyńcze zapytania? Da się jakoś inaczej?

Ten post edytował flashdev 17.01.2010, 01:07:13
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
hddkill
post
Post #2





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 15.01.2010

Ostrzeżenie: (0%)
-----


Cytat(flashdev @ 17.01.2010, 01:06:29 ) *
Witam!

Napisałem poniższy kod, który tworzy fragment zapytania sql dodającego kilka wpisów do tabeli w jednym zapytaniu.

  1. $str = '';
  2. $count = count($arr);
  3. for( $i = 0; $i < $count; $i++ ){
  4. $str .= "(NULL, '". $arr[$i] ."', 0), ";
  5. }


I teraz pojawił się problem. W tabeli drugie pole ma status UNIQUE. Kiedy jedna z wartości w tablicy $arr juz znajduje się w tabeli, to zapytanie wogóle się nie wykona i nie doda się żaden inny element, pomimo iż nie ma takiego w bazie.
Czy muszę to rozbijać na pojedyńcze zapytania? Da się jakoś inaczej?


a jakbys wykasował jednoznaczność indeksu, a sprawdzał po pętli czy są wpisy z duplikatem ? np.
CODE
$query1 = "ALTER IGNORE TABLE nazwa_tablicy ADD UNIQUE INDEX nazwa_kolumny";
$query2 = "ALTER TABLE nazwa_tablicy DROP INDEX nazwa_kolumny";
$result1 = mysql_query($query1, db) or die("Błąd: " . mysql_error());
$result2 = mysql_query($query2, db) or die("Błąd: " . mysql_error());

wtedy za każdym razem by sobie sprawdzał czy w tej kolumnie nie ma duplikatów, a pętla zapisze normalnie bo indeks jest dodawany i usuwany zaraz po petli..
Niewiem czy o to by ci chodziło..
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 28.12.2025 - 11:52