![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 1.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
witam, jako ze jestem bardzo poczatkujacy moje pytanie pewnie wyda sie wam glupi i mimo iz ja mecze sie juz 2 dni nie moge sobie poradzic, w zwiazku z tym prosze o pomoc:
oto kod dodawania ksiazki do bazy magazyn (oczywiscie tabela i baza istnieje) a przedstawione skrypty sa w 1 pliku
chodzi mi o to zeby w 15 linijce przed zapytaniem mysql wprowadzic instrukcje if zeby sprawdzala czy dana ksiazka jest juz w magazynie a jesli tak zeby jej nie dodawala, i aby po kazdorazowym dodaniu ksiazki wyswietlony zostal stan magazynu, probowalem select * from ksiazki ale jakos nie moge sobie poradzic, przypominam ze jestem poczatkujacy wiec bede wdzieczny za objasnienia, z gory dzieki Ten post edytował jjerry 7.08.2006, 12:30:54 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
![]() Po drugie nie wstawiaj wartości do kolumny z auto_increment. Poczytaj sobie jak inaczej można zapisać zapytanie INSERT: http://home.pl/pomoc/1699 Po trzecie najpierw sprawdź SELECT'em czy jest już książka o danym tytule i autorze w bazie - jeśli nie (mysql_num_rows" title="Zobacz w manualu php" target="_manual) to dopiero potem wstawiaj nowy wiersz do tabeli. -------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
-Gość- |
![]()
Post
#3
|
Goście ![]() |
![]() Po trzecie najpierw sprawdź SELECT'em czy jest już książka o danym tytule i autorze w bazie - no wlasnie tego jak do tej pory nie potrafie zrobic, jak to wykonac? gdy select ma zwracac prawde lub fausz lub wyswietlic czy jest dana ksiazka to otzrymuje jedynie "resource id#3" |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
mysql_fetch_row" title="Zobacz w manualu php" target="_manual
mysql_fetch_array" title="Zobacz w manualu php" target="_manual mysql_fetch_assoc" title="Zobacz w manualu php" target="_manual do wyboru do koloru A co do tego błędu w przypadku nieznalezienia tabeli w bazie, to upewnij się, że jest ci to do szczęścia potrzebne... -------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
-Gość- |
![]()
Post
#5
|
Goście ![]() |
no moze faktycznie nie jest to profesjonalne
![]() dzieki za nfo |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 1.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
zastosowalem sie do rad ale teraz mam :
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in c:\usr\krasnal\www\P_H_P\sklep\dodaj.php on line 27 wierszy dodam ze linia 27 to "$num_rows = mysql_fetch_row($result);" |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 165 Pomógł: 9 Dołączył: 9.04.2002 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
Ten błąd oznacza że sknociłeś coś w zapytaniu SQL, np. odwołujesz się do nieistniejącego pola w tabeli (sprawdź literówki)
Łukasz -------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 114 Pomógł: 0 Dołączył: 6.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
1. Hmm, niepotrzebnie za każdym razem gdy uruchamiasz skrypt tworzysz tabelę. Tworzenie baz, oraz strukturę tabel najlepiej wrzucić do jednego pliku np. o nazwie install.php i uruchamiasz go tylko raz.
2. Poleceniem SELECT sprawdź jakie ksiązki w bazie już istnieją. 3. Proponuję dodać jeszcze jedno pole do tabeli ksiązki a mianowicie kod ISBN. Jest to niepowtarzalny dziesięciocyfrowy identyfikator książki. 4. Sprawdzać przy pomocy ISBN'a czy taki wpis już istnieje czy nie. Porównaj to co sprawdziłeś poleceniem SELECT z $_POST['isbn'] 5. Jeśli po dodaniu chcesz wyswietlić stan magazynu użyj funkcji header P.S. Jeśli poda jakaś wartość do pola w tabeli które jest auto_increment to i tak wartość ta zostanie zmieniona na taką jaka powinna być, z tym że nie jestem pewien czy powinna ona być w apostrofach. Ale jednak lepiej omijać to pole ![]() -------------------- Początkujący
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 108 Pomógł: 0 Dołączył: 7.05.2004 Skąd: Jelenia Góra Ostrzeżenie: (0%) ![]() ![]() |
A Wam wszystkim ciężko opisać problem, tylko z błota w bagno kolege wprowadzacie?
Więc może ja spróbuje pomóc. Opiszmy więc problem.
Do linijki 2 jest dobrze, a w niej:
Jeżeli nie korzystasz z mysql w formie okienkowej, tylko łączysz się za pomocą standardowych funkcji w php, to polecenie wygląda nieco inaczej:
Linia nr. 3. Niby wszystko ok, ale zapewne jesteś nastawiony na przyjmowanie tego typu zgłoszeń, czyli książek, więc śmiało możesz ręcznie (poprzez np. phpMyAdmin'a) wstawić tabelę do bazy danych aby nie przejmować się tym później w skrypcie. Możesz śmiało wyrzucić tę linijkę. Linia nr. 5. Zapytanie możesz śmiało zadeklarować w momencie w którym będzie ono potrzebne więc linijka jest do przeniesienia. Przechodzimy do if'a. Dobrze jest sprawdzana pierwsze zmienna, czyli '$laczenie', druga zaś, tak jak wcześniej wspomniałem, jest zbędna. Przejdźmy do pierwszego zagnieżdzonego if'a:
- to zapytanie spróbuje utworzyć tabelę w bazie danych, co wywoła niepotrzebnie zapytanie, to już omawialiśmy. Dalej:
Jeżeli chodzi o tablice asocjacyjne to należy nazwy pól ujmować w apostrofy lub cudzysowy, czyli ilustrując przykładem: . I tutaj w tym miejscu należy wykonać zapytanie. Nie jest koneiczne najpierw umieszczanie treści zapytania w zmiennej a później deklarowanie w funkcji mysql_query(), bo to niepotrzebne zajmowanie pamięci. Czyli teraz deklarujemy zapytanie:
W tym miejscu zanim wypiszemy treść: 'dodano rekord', przydałoby się sprawdzić czy zapytanie zostało poprawnie wykonane. Pomoże nam w tym zmienna $zapytanie, do której 'wrzucony' został efekt wykonywania zapytania.
Ok więc omówinie skryptu chyba zakończone. Przejdźmy do dalszych pytań. Cytat chodzi mi o to zeby w 15 linijce przed zapytaniem mysql wprowadzic instrukcje if zeby sprawdzala czy dana ksiazka jest juz w magazynie a jesli tak zeby jej nie dodawala Powinniśmy więc zaraz za sprawdzenie połączenia wywołać zapytanie które sprawdzi czy istnieje dana książka w bazie danych. Nie mamy tutaj neistety zabardzo jak zidentyfikować książki, np. po identyfikatorze ISBN, więc posłużymy się tytułem.
Cytat aby po kazdorazowym dodaniu ksiazki wyswietlony zostal stan magazynu Więc zaraz za funkcją dodającą książkę należy wyświetlić stan:
Ok. Troszkę namotałem więc przedstawię jak to powinno wyglądać w caej okazałości.
Uff... chyba wszystko jest ok EDIT: oops, zapomnialem o wybraniu bazy, omg - juz dodałem do tego ostatniego kodu Ten post edytował MagnuM 7.08.2006, 14:00:54 -------------------- ![]() |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 1.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
magnum wielkie dzieki juz dziala, (musialem troszku zmienic) wszystko pieknie dziala,
wielkie dzieki za odpowiedzi po przerobkach wyglada MNIEJ WIECEJ* to tak:
i co najwazniejsze dziala *mniej wiecej bo do forum wstawiaja sie znaczniki \ przed " itp Ten post edytował jjerry 7.08.2006, 18:11:44 |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 1 165 Pomógł: 9 Dołączył: 9.04.2002 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
Dobrze że wstawia ukośniki :-) (to dla bezpieczeństwa)
Wyświetlając dane na stronie usuwaj je za pomocą funkcji: stripslashes aby je dodawać stosuje się funkcję: addslashes Łukasz -------------------- |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 1.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 1 165 Pomógł: 9 Dołączył: 9.04.2002 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
usuwasz ukośniki na stronie (stripslashes) aby ładnie wyglądało :-) nie są potrzebne przecież, tylko dodając do bazy robisz to dla bezpieczeństwa ale chyba na stronie nie chcesz mieć tytułu książki \"Sierotka Marysia\" tylko "Sierotka Marysia" bez ukośnikow :-)
Łukasz -------------------- |
|
|
-Gość- |
![]()
Post
#14
|
Goście ![]() |
aha
![]() dzieki za nfo bede pamietal |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 6.07.2025 - 07:12 |