![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 205 Pomógł: 3 Dołączył: 20.04.2009 Skąd: Jaworzno Ostrzeżenie: (0%) ![]() ![]() |
Witam:)
Próbuje rozbić ciąg znaków wyglądający mniej więcej tak : Cytat niebieski, ciemny, bielizna, kobieta, sklep, zakupy i następnie wrzucić go do bazy w taki sposób Kod ID KEY 1 niebieski 1 ciemny 1 bielizna 1 kobieta 1 sklep ID - to id pliku KEY - to słowo kluczowe z rozbitego ciągu Robię to w taki prosty sposób: Kod <?php $keywords=$_POST['keywords']; $slowa = explode(" ", $keywords); $slowa = explode(",", $keywords); foreach($slowa AS $key) { mysql_query("INSERT INTO szablony_key(id, key) VALUES('$id', '$key')"); } ?> W wyniku czego do bazy dostaję coś takiego : Kod ID KEY 1 array 1 array 1 array 1 array 1 array 1 array Prosty kawałek kodu a jednak mam błąd z którym nie mogę sobie poradzić, szukałem w google i na forum o podobnych błędach i nie znalazłem dobrej odpowiedzi. Bardzo prosiłbym o pomoc i z góry dziękuje:) Ten post edytował Poker 6.08.2009, 11:37:54 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 312 Pomógł: 9 Dołączył: 14.10.2006 Skąd: warszawa Ostrzeżenie: (0%) ![]() ![]() |
chyba jednak nie taki prosty:
generalnie powinno to raczej działać bo explode tworzy jednowymiarową tablicę więc iterowanie po niej zwraca od razu wartość... |
|
|
![]()
Post
#3
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
kod co tu pokazales, dla ciagu niebieski, ciemny, bielizna, kobieta, sklep, zakupy nie ma prawa generować ARRAY. Pewnie masz inaczej niż nam tu pokazujesz.
Inny blad to wykorzystujesz $id, ktorego nigdzie nie zadeklarowales Kolejny blad: uzywasz zle bbcode. popraw |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 76 Pomógł: 13 Dołączył: 24.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
- Masz pewnosc, ze $_POST['keywords'] przychodzi w postaci 'niebieski, ciemny, bielizna, kobieta, sklep, zakupy'
- Zrob printa na $_POST['keywords'] i sprawdz czy ma on dokladnie taka postac Przeprowadzilem u siebie symulacje, z podstawiona zmienna $keywords = 'niebieski, ciemny, bielizna, kobieta, sklep, zakupy' jako $_POST['keywords'] i wszystkie dane wyswietliy mi sie prawidlowo. Ten post edytował Ellington 6.08.2009, 11:39:42 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 205 Pomógł: 3 Dołączył: 20.04.2009 Skąd: Jaworzno Ostrzeżenie: (0%) ![]() ![]() |
id pochodzi z get'a tutaj nie ma możliwości błędu ale pokażę wam wszystkie sposoby jakie próbuje
Kod <?php $id=$_GET['id']; $slowo=explode(",", 'niebieski, ciemny, bielizna, kobieta, sklep, zakupy'); foreach($slowo AS $key) { mysql_query("INSERT INTO szablony_key(id, key) VALUES ('$id', '$key')"); } ?> Kod <?php $id=$_GET['id']; $keywords=$_POST['keywords']; $slowo=explode(", ", $keywords); foreach($slowo AS $key) { mysql_query("INSERT INTO szablony_key(id, key) VALUES ('$id', '$key')"); } ?> Kod <?php $id=$_GET['id']; $keywords = 'niebieski, ciemny, bielizna, kobieta, sklep, zakupy'; $slowo=explode(", ", $keywords); foreach($slowo AS $key) { mysql_query("INSERT INTO szablony_key(id, key) VALUES ('$id', '$key')"); } ?> Dane z keywords są w takiej postaci jakiej pisałem .. słowo, słowo2, słowo3, słowo4 do każdego przykładu próbowałem zmiast $id wpisać 1 i również nie działa ciągle do bazy dostaje około 30 wyników 1 array 1 array 1 array ... PS. w nocy się nad tym męczyłem i jak pole `id` miało PRIMARY KEY dostawałem 1 wynik : Cytat ID KEY
1 NIEBIESKI Ten post edytował Poker 6.08.2009, 11:50:29 |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
I napisz co dostajesz. poraz ostatni prosze o poprawne bbcode |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 312 Pomógł: 9 Dołączył: 14.10.2006 Skąd: warszawa Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 205 Pomógł: 3 Dołączył: 20.04.2009 Skąd: Jaworzno Ostrzeżenie: (0%) ![]() ![]() |
Specmajstrem nie jestem więc przepraszam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Zrobiłem i otrzymuje Kod string(86) "niebieski, ciemny, bielizna, kobieta, sklep, zakupy"
Ten post edytował Poker 6.08.2009, 11:54:52 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 312 Pomógł: 9 Dołączył: 14.10.2006 Skąd: warszawa Ostrzeżenie: (0%) ![]() ![]() |
a co ci daje to co zaproponował @nospor?
bo wg. mnie to powinno działać |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 205 Pomógł: 3 Dołączył: 20.04.2009 Skąd: Jaworzno Ostrzeżenie: (0%) ![]() ![]() |
Dostaje
Kod INSERT INTO szablony_key(id, key) VALUES('1', 'niebieski')INSERT INTO szablony_key(id, key) VALUES('1', 'ciemny')INSERT INTO szablony_key(id, key) VALUES('1', 'bielizna')INSERT INTO szablony_key(id, key) VALUES('1', 'kobieta')INSERT INTO szablony_key(id, key) VALUES('1', 'sklep')INSERT INTO szablony_key(id, key) VALUES('1', 'zakupy')
|
|
|
![]()
Post
#11
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
czyli wszystko jest ok. jestes pewien ze do bazy patrzysz na wlasciwe dane? Moze patrzysz na jakies stare. Bo baza sama z siebie tekstu nie zamienia na tekst array (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 76 Pomógł: 13 Dołączył: 24.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Proponuje, zebys sprawdzil wykonanie mysql_query if'em i wyswietlil mysql_error, czy to Ci sie faktycznie tam dopisuje (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .
|
|
|
![]()
Post
#13
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Proponuje, zebys sprawdzil wykonanie mysql_query if'em i wyswietlil mysql_error, czy to Ci sie faktycznie tam dopisuje Z duzym prawdopodobienstwem sypie bledem, bo id powinno byc unikalne, a u niego zawsze jest 1 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 312 Pomógł: 9 Dołączył: 14.10.2006 Skąd: warszawa Ostrzeżenie: (0%) ![]() ![]() |
chyba że id nie jest UNIQUE (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
|
|
|
![]()
Post
#15
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat PS. w nocy się nad tym męczyłem i jak pole `id` miało PRIMARY KEY dostawałem 1 wynik : (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Z duzym prawdopodobienstwem sypie bledem, bo id powinno byc unikalne, a u niego zawsze jest 1 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Przecież nie napisał, że ID ma jakiś indeks ani że jest polem np. auto_increment (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 312 Pomógł: 9 Dołączył: 14.10.2006 Skąd: warszawa Ostrzeżenie: (0%) ![]() ![]() |
@Poker
Proponuję zmienić strukturę bazy danych na: id int(11) auto_increment, file_id int(11), key varchar(255) (dodatkowe paramerty kolumn wg uznania (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) zapytanie wówczas wygląda podobnie: INSERT INTO szablony_key(file_id, key) VALUES(1, 'niebieski') ale nie będzie błędu z indexem. Ten post edytował jarrod 6.08.2009, 12:14:09 |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 205 Pomógł: 3 Dołączył: 20.04.2009 Skąd: Jaworzno Ostrzeżenie: (0%) ![]() ![]() |
uff... udało się sam do końca nie wiem w czym był problem bo dopiero za jak zrobiłem tabele
która w nazwie nie miała "_" to się udało. Jeśli ktoś by potrzebował Struktura tabeli Kod CREATE TABLE `szabkey`( `id` INT(11) AUTO_INCREMENT PRIMARY KEY NOT NULL, `szabid` INT(11) NOT NULL, `slowo` VARCHAR(50) ) ENGINE=MYISAM; Kod Kod <?php $id=$_GET['id']; $keywords=$_POST['keywords']; $slowa=explode(", ", $keywords); foreach($slowa AS $slowo){ mysql_query("INSERT INTO szabkey(szabid, slowo) VALUES('$id', '$slowo')"); } ?> Wszystkim dziękuje za odpowiedź (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) +pomógł Ten post edytował Poker 6.08.2009, 12:29:10 |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 312 Pomógł: 9 Dołączył: 14.10.2006 Skąd: warszawa Ostrzeżenie: (0%) ![]() ![]() |
myślę, że "_" ma tu najmniejsze znaczenie. a w zasadzie w ogóle go nie ma... :-)
zmieniłeś zapytanie. teraz nie wstawiasz do kolumny id tej samej wartości gdy to pole jest unikalne (PRIMARY KEY) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 27.09.2025 - 02:09 |