![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 8.02.2013 Ostrzeżenie: (0%) ![]() ![]() |
Pierwsze koty za płoty. Drugi problem jaki mam to dodanie kilku wierszy do bazy damych mysql poprzez wypełnienia formularza post.
Wyświetlić 4 formularzepotrafie ale chyba źle formułuje zapytanie do bazy danych. Pomożcie mistrzowie (IMG:style_emoticons/default/smile.gif) Zamieszczam kod jaki mam do tej pory :
Podzieliłem cały kod odpowiednimi znacznikami ale nie wiem czy jest to czytelne....? (IMG:style_emoticons/default/ohno-smiley.gif) A może w inny sposób należy to zrobić(IMG:style_emoticons/default/questionmark.gif) posidam tabele producenci która ma kolumny id, nazwa,adres www, adres, telefon, uwagi Przekazanie tych danych poprzez tablice post . Następnie jak sformułowac zapytanie do bazy aby dodac np 4 wiersze jednoścześnie (IMG:style_emoticons/default/questionmark.gif) Ten post edytował wojtek1988 8.02.2013, 23:42:02 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 283 Pomógł: 31 Dołączył: 10.01.2006 Skąd: Działoszyn Ostrzeżenie: (0%) ![]() ![]() |
Każde pole Twojego formularza ma taką samą nazwę...nie do końca rozumiem jak chcesz to zrobić.
Masz tablicę wartości z POST-a, ale nijak jej nie dzielisz na poszczególnych producentów. Powinieneś mieć 4 formularze, ale niech Twoje pola nazywają się różnie, np: I wtedy odbierając je w PHP odbierasz po kolei kolejne indeksy tablic i rozdzielasz je przecinkami (to, co zrobiłeś powyżej...jak ma zadziałać? masz 24 pola, a wpisujesz tylko 6). Czyli np.:
Ten post edytował Michasko 9.02.2013, 16:21:18 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 8.02.2013 Ostrzeżenie: (0%) ![]() ![]() |
Wyswietlam 4 wiersze formularza i dodałem składnie mysql($zapytanie) ale nie jest dobre . (IMG:style_emoticons/default/ohno-smiley.gif)
Wyświetla mi komuniktat Dodanie wyników nie powiodło sie ! (IMG:style_emoticons/default/ohno-smiley.gif) Zobaczcie (IMG:style_emoticons/default/smile.gif)
Ten post edytował wojtek1988 9.02.2013, 13:44:06 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 283 Pomógł: 31 Dołączył: 10.01.2006 Skąd: Działoszyn Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 8.02.2013 Ostrzeżenie: (0%) ![]() ![]() |
Zastosowałem się do twoich wskazówek ale teraz mam komunikat :
"Dodawanie wyników nie powiodło się! You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"INSERT INTO producenci VALUES' at line 1" (IMG:style_emoticons/default/ohno-smiley.gif) (IMG:style_emoticons/default/ohno-smiley.gif) Co teraz? (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 283 Pomógł: 31 Dołączył: 10.01.2006 Skąd: Działoszyn Ostrzeżenie: (0%) ![]() ![]() |
Widocznie nadal masz błąd w zapytaniu. Jak ono teraz wygląda?
edit: Hej, hej, chwila chwila. A gdzie masz dodawanie przecinków pomiędzy kolejnymi rekordami do wpisania? W tej chwili Twoje zapytanie wygląda tak:
pomiędzy nawiasami musisz mieć przecinki. Czemu to usunąłeś? :| Ten post edytował Michasko 9.02.2013, 16:21:57 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 8.02.2013 Ostrzeżenie: (0%) ![]() ![]() |
Wygląda to tak :
W miejscu numer wpisac id_produkt for($i = 0; $i < count($_POST['numer']); $i++){ prawda? Gdy tak zrobie wyświetla mi bląd: Dodawanie wyników nie powiodło się! You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"INSERT INTO producenci VALUES ("9", "1111", "hgfhgbg", "hjbgjhgbjhgb" , "jhfbvf' at line 1 czyli już z czytuje dane podane w pierwszym wierszu ale ...dalej coś nie tak (IMG:style_emoticons/default/ohno-smiley.gif) Ten post edytował wojtek1988 9.02.2013, 16:59:07 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 283 Pomógł: 31 Dołączył: 10.01.2006 Skąd: Działoszyn Ostrzeżenie: (0%) ![]() ![]() |
Cytat W miejscu numer wpisac id_produkt for($i = 0; $i < count($_POST['numer']); $i++){ prawda? id_producent. Prawda.
Ten post edytował Michasko 9.02.2013, 17:07:40 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 8.02.2013 Ostrzeżenie: (0%) ![]() ![]() |
POkaże cały kod.
Najpierw formularz:
Następnie reszte:
Przy próbie dodania producentów wyskakuje mi komunikat: Dodawanie wyników nie powiodło się! You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"INSERT INTO producenci VALUES ("8", "nazwa1", "", "" , "" , "" ), ("", "nazwa2"' at line 1 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 283 Pomógł: 31 Dołączył: 10.01.2006 Skąd: Działoszyn Ostrzeżenie: (0%) ![]() ![]() |
Linia 7 - po co tam ten cudzysłów...?
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 186 Pomógł: 6 Dołączył: 20.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Mogę wiedzieć czemu tak strasznie komplikujecie sprawę? Po co Wam te []? Po co w for? Nie lepiej użyć mysql_query z LIMIT 4 oraz while?
plik.php
Odczyt
Ten post edytował teez 9.02.2013, 17:44:03 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 8.02.2013 Ostrzeżenie: (0%) ![]() ![]() |
Dla mnie Michasko jest mistrzem (IMG:style_emoticons/default/exclamation.gif) !!!
Ale z chęcia posłucham innej rady teeza (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 186 Pomógł: 6 Dołączył: 20.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Michasko lepiej zna sytuację, sam dopiero zaczynam powazniej się w to bawić, ale skoro ty również zaczynasz to po co masz zawracać sobie głowę od początku takim czymś, skoro można prościej z identycznym efektem. Jeszcze przyjdzie czas na resztę. (IMG:style_emoticons/default/wink.gif)
Ten post edytował teez 9.02.2013, 17:37:42 |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 283 Pomógł: 31 Dołączył: 10.01.2006 Skąd: Działoszyn Ostrzeżenie: (0%) ![]() ![]() |
@teez, źle przeczytałeś chyba. On chce dodać 4 rekordy na raz, a nie odczytać. LIMIT na nic się tutaj nie zda (IMG:style_emoticons/default/wink.gif)
Ten post edytował Michasko 9.02.2013, 17:41:00 |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 186 Pomógł: 6 Dołączył: 20.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
No to źle najwidoczniej odczytałem, zwracam honor. (IMG:style_emoticons/default/businesssmiley.png)
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 8.02.2013 Ostrzeżenie: (0%) ![]() ![]() |
Dodanie 4 rekordów działa ale nie waliduje nie podania nazwy, któa jest obowiązkowa itp ..Zły układ mam chyba..
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 283 Pomógł: 31 Dołączył: 10.01.2006 Skąd: Działoszyn Ostrzeżenie: (0%) ![]() ![]() |
Zwróć uwagę, że kilka pól u Ciebie ma atrybut name równy "nazwa[]". Oznacza to, że po przesłaniu do PHP Twoja zmienna $_POST['nazwa'] (zobacz 3. linijke ostatniego kodu) będzie tablicą, zatem pisząc:
sprawdzasz, czy tablica jest pusta, a nie czy poszczególne pola formularza są puste. Walidację powinieneś przeprowadzać w pętli, w której "sklejasz" zapytanie. Np. w ten sposób:
Ten post edytował Michasko 9.02.2013, 18:56:52 |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 8.02.2013 Ostrzeżenie: (0%) ![]() ![]() |
A w moim przypadku jak sformułować kod aby nie podanie nazwy wywałało komunikat ze nie uzupełniona jest nazwa i id_produkt nie moze byc powtarzany?
Napisałem tak ale nie działa:
|
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 283 Pomógł: 31 Dołączył: 10.01.2006 Skąd: Działoszyn Ostrzeżenie: (0%) ![]() ![]() |
Chłopie, czytaj uważnie:) Walidację masz przeprowadzać W PĘTLI. Nie przed nią.
Jeśli chodzi o ID - jeśli chcesz je koniecznie nadawać ręcznie (jak to robisz teraz), to musisz je najpierw wyciągnąć z bazy, a potem w każdym obrocie pętli sprawdzać, czy nie podałeś jakiegoś, które się powtarza - mało wydajne. Najlepiej byłoby, gdyby pole `id_producenta` w Twojej bazie danych miało właściwość AUTO_INCREMENT. Wtedy nie musisz podawać ID ręcznie, a zostanie ono przypisane automatycznie przez system bazy danych. Ten post edytował Michasko 9.02.2013, 19:24:56 |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 8.02.2013 Ostrzeżenie: (0%) ![]() ![]() |
@Michasko w 4 linijce usunąłem znak ! ponieważ odwronie działało (IMG:style_emoticons/default/smile.gif) WIelkie dzięki mam nadzieję, zę jutro też bęzdiesz na forum (IMG:style_emoticons/default/smile.gif)
Na dziś już koniec ale jutro będe dalej walczył.Bedziesz jutro? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 06:49 |