![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 8.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Potrzebuje pomocy. Mam wykonać zapytanie do bazy danych (MySQL, PHP4, Apache) polegające na wstawieniu do kolumny np. p1 (mam kolumny w tabeli od p1 do p50) znaku 1. Nie było by problemu, gdyby nie fakt, że z tablicy ($przed[„id_p”]) jest pobierany numer kolumny (1-50) i trzeba go dodać do litery p, tak aby powstał np. p1, Niżej przedstawiam moje zapytanie, które nie działa. Wyświetlany jest komunikat: Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' In ... Kod $zapytanie = "insert into xxx (p'$przed["id_p"]')values (1)
Czyli chce wstawić do kolumny p+cyferka z tablicy (tak aby było np. p2) wartość 1. Da się to zrobić? Można połączyć zwykły tekst ze zmienną, tak żeby powstał ciąg znaków? W tabeli musiałem zrobić kolumny ze znakiem p na początku(p1,p2,p3), bo nie da się stworzyć kolumn o indeksach złożonych z samych cyfr, czy tak jest? Ja nie mogłem tego zrobić. Robił ktoś może coś w rodzaju wywiadówki przez Internet? Robię coś takiego i mam problemy z zaprojektowaniem bazy danych dla wszystkich klas, przedmiotów i ocen poszczególnych uczniów. Jeśli ktoś zna ten problem to pomoc mile widziana, chodzi mi o sam szkielet bazy danych. Dzięki. Pozdrawiam. Myrek |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 20.03.2002 Skąd: Nowy Dwór Mazowiecki Ostrzeżenie: (0%) ![]() ![]() |
Ja by to zrobil w ten sposob...
Kod $i = "p".$przed['id_p']; $zapytanie = "insert into xxx ($i)values ('1')"; moze sie myle.. ale jak na moj gust powinno zadzialac.. Pozdrawiam! |
|
|
![]()
Post
#3
|
|
![]() Grupa: Przyjaciele php.pl Postów: 786 Pomógł: 0 Dołączył: 18.03.2002 Skąd: Wroclaw/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Cytat Nie było by problemu, gdyby nie fakt, że z tablicy ($przed["id_p"]) jest pobierany numer kolumny (1-50) i trzeba go dodać do litery p, tak aby powstał np. p1,
[..] Kod $zapytanie = "insert into xxx (p'$przed["id_p"]')values (1)
[..] Można połączyć zwykły tekst ze zmienną, tak żeby powstał ciąg znaków? problem nie dotyczy bazy danych a zdecydowanie php. zwroc uwage ze masz problem ze stworzeiem zapytania a nie z jego obsluzeniem. z tego co zgaduje dotychczas podstawiales zmienne do stringow korzystajac z tego ze wewnatrz "" wszystkie $zmienne sa podstawiane na wartosci - tzn "czesc $imie , milo ciebie widziec"; tak rzeczywiscie jest ale jak widac problemy powstaja gdy chcesz odczytac jakas zmienna z tablicy - wowczas moze powstac konflikt "" (poczatek deklaracji zmiennej typu string zaczyna sie od " i konczy ") zeby zaradzic tego typu problemow mozemy albo "sklejac" nasze zapytania czy inne lancuchy z fragmentow (1) albo inaczej podstawiac elementy tablicy wewnatrz lancuchow (2) 1) aby polaczyc w php zmienne typu string uzywamy . (kropki) do laczenia ich w lancuch. np: Kod $powitanie = "czesc " . $imie . " milo ciebie spotkac"; dokladnie cos takiego musisz zrobic:
Kod $zapytanie = "insert into xx (p" . $przed["id_p"] . ") values (1)";
2) aby odwolac sie do elementu tablicy uzywamy ' ' do oznaczenia kolumny np Kod $powitanie = "czesc $dane['imie'] milo ciebei spotkac";
analogicznie Kod $zapytanie = "insert into xxx (p$['id_p']) values (1)";
trzeba jednak uwazac przy wielu wymiarach, tzn odowlywaniu sie do wiecej niz jednego indeksu tablicy. np $dane['nazwisko']['rodowe']; Nie ma zadnych problemow z przekazaniem tego typu danych do tworzenego lancucha korzystajac z metody 1). nie uda sie jednak w prost skorzystac z metody 2). tutaj z pomoca przychodza {}: Kod $powitanie = "jestes z domu: {$dane['nazwisko']['rodowe']} milo ciebei spotkac";
uff starczy ;) jak cos wszystkie w/w informacje znajdziesz na poczatku dokumentacji w informacji o samym jezyku php. -------------------- .. make web your home ..
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 8.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki serdeczne za tak wyczerpującą odpowiedz. Przepraszam za umieszczenie tego postu w sekcji baz danych. Popracuje nad tym i zobaczymy co z tego wyjdzie.
Pozdrawiam. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 23.06.2025 - 22:29 |