moniek.fm
2.02.2012, 20:02:34
Witam.
Pytanie jak w temacie. A dokładniej, mam tablicę:
[1]link1
[2]link2
[3]link3
[4]link4
W bazie jest tabela "linki" składająca się z id i link. Chce wpisać całą tablicę do tabeli tak, żeby każde id było przypisane do linku:
Id LINK
1 link1
2 link2
3 link3
4 link4
Proszę o pomoc.
pr0kt0r
2.02.2012, 20:35:48
Jeśli id jest kluczem glownym to tak nie mozesz zrobic bo baza danych bedzie sama nadawac kolejna wartosc polu id. Jeśli nie jest to robisz zwykla iteracje po tablicy i dla kazdego elementu dajesz insert.
Jeśli koniecznie potrzebujesz miec w bazie numer klucza jaki posiadal link to musisz dodac pole do tej tabeli(ALTER TABLE) np. key_num i do niego zapisywac numer klucza. Klucz sprawdzasz funkcją key().
moniek.fm
2.02.2012, 20:51:25
Id jest kluczem głównym, ale w zasadzie doszedłem do wniosku, że numeracja po kolei tak jak przypisze mi to baza w zupełności mi wystarczy. Bardzo bym prosił o jakiś przykładowy kod.
pr0kt0r
2.02.2012, 21:15:48
Przykladowy kod jak dodac wiersz do tabeli?
To chyba nie ten dział.
moniek.fm
2.02.2012, 21:24:40
Nie wiersz do tabeli, tylko tablicę. Nie mogę tego nigdzie znaleźć a mój bardzo podstawowy kurs php i mysql jest tak okrojony, że nie ma w nim nawet pojęcia pętli.
Bardzo proszę o pomoc...
MavisS2
2.02.2012, 22:25:50
Jak już masz tablice:
0 => 'link1',
1 => 'link2',
2 => 'link3'
);
To najprościej jest wykonać zapytanie SQL dodające kolejny wiersz w bazie w pętli foreach. Czyli:
foreach($links as $value) {
$sql = "INSERT INTO nazwa_tabeli (link) VALUES ('$value');";
}
Oczywiście najpierw połączenie do bazy danych musisz wykonać, ale zakładam, że to wiesz
moniek.fm
3.02.2012, 09:03:56
Dzieki za odpowiedź. Jutro to sprawdze bo na dzisiaj mam juz dość. A Odnosnie połączenia z baza to oczywiście, ze wiem :-) Hehe
Jeszcze raz dzieki. Pozdrawiam
skrypt działa, ale zamiast dodawać całą tablice dodaje tylko jeden rekord. jak to naprawić?
Sephirus
3.02.2012, 09:09:46
Najprawdopodobniej masz jeden rekord o id równym 0?
Pole klucza głównego (id) musi mieć ustawione AUTOINCREMENT aby ID generowały się same... jeśli nie ma a nie podasz wartości ID przy insercie to będziesz miał(a) zawsze jeden rekord
moniek.fm
3.02.2012, 12:52:19
ok. To w takim razie jak za pomocą foreach przypisać automatycznie id?
toaspzoo
3.02.2012, 22:46:39
przed foreach $i = 0;
a na końcu każdego powtórzenia $i++;
A wogóle po co Ci to ?
przecież w bazie danych możesz dać int + auto_increment
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.