Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] tablice - insert do bazy mysql w pętli - bez duplikatów
cytrysek
post
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 4.01.2008

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


Mam tablice:

Array ( [0] => Array ( [0] => /link.php?id=13) [1] => /link.php?id=14) [2] => /link.php?id=11) ) [1] => Array ( [0] => 13 [1] => 14 [2] => 11 ) )


tak odczytuje same cyferki:
  1. <?php
  2. for($i=0;$i<$ile;$i++) {
  3.  print $id_propozycji[1][$i];
  4.  echo &#092;"
  5. &#092;";
  6.  }
  7. ?>


gdzie :
$ile : ilość elementów tablicy (w tym wypadku 3)

i jest ok,
natomiast kiedy chce zrobic INSERT do bazy:

  1. <?php
  2. for($i=0;$i<$ile;$i++) {
  3. $sql =&#092;"INSERT INTO tabela SET id = 423, tab=\".$id_propozycji[1][$i];
  4. }
  5. ?>


to robi tylko 1 INSERT dla wartości (w tym wypadku) $id_propozycji[1][2] czyli $ile-1

gdzie leży błąd, jak poprawnie zrobić INSERT dla wszystkich wartości tablicy ?

Dzięki.
PW

Ten post edytował cytrysek 16.01.2008, 00:44:18
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
cornholio666
post
Post #2





Grupa: Zarejestrowani
Postów: 472
Pomógł: 8
Dołączył: 14.03.2004
Skąd: Rzeszów

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


a gdzie masz mysql_query" title="Zobacz w manualu PHP" target="_manual ?
Go to the top of the page
+Quote Post
cytrysek
post
Post #3





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 4.01.2008

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


.. ano miałem dalej:

  1. <?php
  2. $sql_resultupd = q ($sql);
  3. ?>


ale nie zadziałało bo pewnie wbyło poza pętla.
Zmieniłem zapytanie na

  1. <?php
  2. for($i=0;$i<$ile;$i++) {
  3. $sql =q("INSERT INTO tabela SET id = 423, tab=".$id_propozycji[1][$i]);
  4. }
  5. ?>


i działa ! (IMG:http://forum.php.pl/style_emoticons/default/guitar.gif)

OK, a teraz jak ograniczyć INSERT, tak zeby nie powielać wpisów, tzn jesli warunek np:
  1. (id = 423 AND tab=".$id_propozycji[1][$i])

istnieje, to nie dopisuje duplikatu do bazy ?

DZieki.
PW

----------------

ok, poradziłem sobie na szybko tak:

jakis SELECT, który sprawdza mi warunki, potem
  1. <?php
  2. if (mysql_num_rows($result_czyistnieje) == 0){
  3.  
  4. ... insert do bazy
  5. }
  6.  
  7. else {
  8.  
  9. echo "komunikat bledu za juz taki rekord jest";
  10. }
  11. ?>


czy znacie jeszcze jakies rozwiazanie?

Ten post edytował cytrysek 16.01.2008, 01:03:10
Go to the top of the page
+Quote Post

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: 23.08.2025 - 10:17