![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 6.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Potrzebuję za pomocą pętli WHILE wydobyć z bazy danych jedną daną (LIMIT 1) i używać jej wielokrotnie w różnych miejscach kodu PHP na mojej stronie. Strona jest dość długa...
Potrzebuję również wyciągnąć następną podobną jedną daną z tej samej bazy i również wielokrotnie jej użyć naprzemiennie z daną pierwszą. Nie wiem jak to zrobić --- gdzieś popełniłam jakiś błąd bowiem prawie identyczny przykład na innej bazie działa bezbłędnie (IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/questionmark.gif) ?
Jestem ciemną blondynką i staram sie nie zaliczać do "jasnych" ale tu zgłupiałam całkowicie. Jestem po 2-miesięcznych wykładach PHP/MySQL zaś praktyki mam mało i staram się uczyć na przykładach? Proszę o prostą podpowiedź. Alina Malikowska mail: alinamala na *niezbędnym do życia gazie*
Powód edycji: [erix]: obfuskacja ;)
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 580 Pomógł: 85 Dołączył: 25.03.2010 Skąd: Skrzyszów :) Ostrzeżenie: (0%) ![]() ![]() |
Zacznij od usunięcia swojego maila z forum, bo się od spamu nie opędzisz. Pętle są niepotrzebne. Używaj prostszych nazw zmiennych. Kod wyświetla się tak
Ten post edytował zend 6.06.2010, 20:08:30 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 6.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
to (chyba) nie dziala... Próbowałam różnych kombinacji, owszem - pamięta ostatnie - czyli "$toJestMojaNAZWA2" unicestwiając poprzednią (czyli "$toJestMojaNAZWA1" jest wyzerowane). Musi być jakiś PROSTY sposób zapamietania na stałe danej wartości (oczywiścia bez """ foreach() {...} """ --- gdzie muszę to objąć klamrowymi nawiasami...) -- wiem o tym bo jak pisalam użyłam identycznego kodu na innej TABELI i tam jest OK, muszą być jakieś zależności może w samej bazie danych, a może coś innego. Próbowałam samych nazw ( = $rekord['nazwa'] ) oraz numerów rekordów ( = $rekord[2] ) i nic...
Potrzebuję PROSTEGO!!! rozwiązania wyciągnięcia "danej chwilowej" i zamiany jej na $zmienną zapamiętaną na stale... POMOCY --- >> w prosty sposob |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 580 Pomógł: 85 Dołączył: 25.03.2010 Skąd: Skrzyszów :) Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Podam algorytm zamiast gotowego rozwiązania wpierw byś popatrzyła co może być nie tak w Twoim podejściu:
1. Piszemy zapytanie. 2. Wysyłamy je do bazy. 3. Sprawdzamy czy zapytanie wykonało się poprawnie. 4. Jeśli nie - wyrzucamy błąd. Jeśli ok - liczymy czy mamy choć jeden rekord wyniku ( dobre zapytanie może nie zwrócić żadnego pasującego! ) 5. Jeśli mamy rekord wpisujemy go po prostu do zmiennej. Skoro mamy tylko jeden rekord wyniku maksymalnie to pętle są zbędne (!) Widzę jednak, że coś sama próbowałaś, więc dam Ci mocno skróconą o obsługę błędów wersję dla jednego zapytania. Drugie jest analogiczne (IMG:style_emoticons/default/smile.gif) I teraz zerknij sobie co Ci var_dump zwrócił. Tablicę rekordu czy może false i komunikaty błędów (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 6.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Przez kilka dni stydiowałam. Jutro trochą wolnego więc wracam do tematu... Thek - Twoje zapytanie dalo wynik: "" Houston, baza ma problem: 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 'Resource id #5' at line 1bool(false) "" Zend - niestety wynik dalej zanika. ========= Może raz jeszcze napiszę o co mi chodzi; - POTRZEBUJĘ TRZYKROTNIE WYKONAĆ identyczne zapytanie i trzykrotnie wybrać z tych samych kolumn pojedyncze (jednorekordowe) wyniki. Za każdym razem przy innych warunkach WHERE... Chodzi o to aby OSTATNIE (tu trzecie) ZAPYTANIE nie kasowało wcześniejszych wyników i aby wcześniejsze wyniki zapamiętane były na stałe (na tej stronie PHP) bowiem wykorzystywane będzie jeszcze kilkakrotnie - więc nie chcę obejmować ich {klamrami}... Potrzebuję $toJestMojaNAZWA1, $toJestMojaNAZWA2, $toJestMojaNAZWA3... mieć stale do użycia. Koleżanka powiedziała mi, że jest to możliwe ale nie miała już tego przykłady więc nie miałam na czym się oprzeć.
Proszę mi podpowiedzieć jak w prosty sposob to zrobić... Alina |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 568 Pomógł: 192 Dołączył: 7.03.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Możesz jednym zapytaniem pobrać te trzy stosując operator OR dla SQL.
Później pobrane dane wrzucasz do tablicy, a następnie foreachem, czy też tam bez wyciągasz je. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 6.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
niestety nie mogę tak zrobić. Musiałam wybrać opisany sposób i dlatego się męczę ale mam nadzieją, że ktoś wpadnie na jakiś prosty i genialny sposób...
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 568 Pomógł: 192 Dołączył: 7.03.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Dlaczego musisz tak zrobić?, przedstaw opis tego co chcesz wykonać, zawsze istnieją inne optymalne a nawet lepsze rozwiązania.
Piszesz ze chcesz wydobyć jedną daną, stosujesz LIMIT 1 a robisz porównanie większy lub równy, wystarczy chyba tylko równy i nie musi wtedy być limitu. Ten post edytował potreb 9.06.2010, 21:05:06 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 6.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
to jest tylko przykład. Musialam zastosować bardzo różnorakie warunki i zawęzić LIMITem. Chodzi mi o sprawę zapisanie na stałe zmiennej {bez nawiesow aktywności} tak aby się nie kasowala...
(IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/questionmark.gif) ? dostęp do koleżankowej podpowiedzi będę miała dopero za 2 tygodnie o rozwiązanie potrzeuję do 12 czerwca (test...). Podobno jest to proste ale nie dla mnie...... POMOCY w tymmmm. Czekam aż Ktoś mi pomoże...... |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 1 Dołączył: 8.05.2010 Ostrzeżenie: (20%) ![]() ![]() |
Użyj funkcj: SESSION.
Zapisz tą zmienną do sesji. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 6.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Podpowiedź jest dobra ale wolałabym uniknąć tego rozwiązania. SESSION mam już mocno załadowaną a postawione mam zadanie czytelnego kodu.... i nie tylko. Może coś innego - będę wdzięczna. Mam jeszcze czas do jutrzejszego wieczora a jak szczęśliwie się zloży to do najbliższego wtorku. Czekam dalej...
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 1 Dołączył: 8.05.2010 Ostrzeżenie: (20%) ![]() ![]() |
Może zrób bez pętli
albo
zapisz do pliku textowego i odczytaj pozniej |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 17:22 |