[MySQL][SQL] Pętla wykonująca się tyle razy, ile jest rekordów w tabeli |
[MySQL][SQL] Pętla wykonująca się tyle razy, ile jest rekordów w tabeli |
30.08.2011, 23:57:09
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 31.10.2008 Ostrzeżenie: (0%) |
Przepraszam, nie przywitałem się nawet jak należy! Do tej pory wyłącznie czytałem, unikając pytań, kiedy to tylko było możliwe- i udawało się od 2008 roku, aż do dzisiaj! Tedy jeśli odpowiedź gdzieś jest, a nie znalazłem jej- serdecznie przepraszam, ale statystykę i tak mam dobrą!
W związku z powyższym- Hilary, kłaniam się Mam problem, otóż nie wiem, jak skonstruować zapytanie, w którym będzie pętla wykonująca się tyle razy, ile jest rekordów w danej encji. Rozpisując to prościej, acz brutalnie opisowo. a = SELECT COUNT(*) FROM `tabela`; b = 1; while a > b loop /*cuś tutaj mojego,z tym dam sobie radę, jak sądzę */ b++; end loop Nie ująłem powyszego w tagi kodu, bowiem byłaby to zbrodnia przeciw twórcom tego cudu (w moim odczuciu ). Mam nadzieję, że przykład mimo wszystko jest czytelny, z góry dziękuję za pomoc. Ten post edytował hipekhop 30.08.2011, 23:59:52 |
|
|
31.08.2011, 00:25:03
Post
#2
|
|
Grupa: Zarejestrowani Postów: 450 Pomógł: 135 Dołączył: 18.11.2010 Skąd: Wschowa Ostrzeżenie: (0%) |
Zachęcam do używania PDO przy wyciąganiu danych z bazy. Ten post edytował tolomei 31.08.2011, 00:26:05 -------------------- “ Computers are good at following instructions, but not at reading your mind. ” - Donald Knuth |
|
|
31.08.2011, 00:27:12
Post
#3
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 31.10.2008 Ostrzeżenie: (0%) |
Dziękuję pięknie za odpowiedź, ale... rzecz w tym, że chcę to wszystko zrobić czystem SQL, z użyciem w tym wszystkim php dałbym sobie radę, bo już tak kiedyś zrobiłem.
Dziś jednak dojrzałem do tej decyzji- musi to być w czystem sql niestety:/ |
|
|
31.08.2011, 00:28:10
Post
#4
|
|
Grupa: Zarejestrowani Postów: 715 Pomógł: 47 Dołączył: 5.12.2010 Ostrzeżenie: (0%) |
Ja bym proponował użycie pętli foreach jest bardziej bezpieczniejsza.
|
|
|
31.08.2011, 00:30:10
Post
#5
|
|
Grupa: Zarejestrowani Postów: 450 Pomógł: 135 Dołączył: 18.11.2010 Skąd: Wschowa Ostrzeżenie: (0%) |
@Rid uzasadnij swoją wypowiedź proszę - jestem bardzo ciekawy.
Po której tablicy byś się poruszał ? @hipekhop jak chcesz wykonać "jakiś tam własny kod" ilość razy odpowiadającą ilości rekordów w bazie nie używając PHP ? Ten post edytował tolomei 31.08.2011, 00:33:26 -------------------- “ Computers are good at following instructions, but not at reading your mind. ” - Donald Knuth |
|
|
31.08.2011, 00:44:49
Post
#6
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 31.10.2008 Ostrzeżenie: (0%) |
|
|
|
31.08.2011, 00:55:24
Post
#7
|
|
Grupa: Zarejestrowani Postów: 450 Pomógł: 135 Dołączył: 18.11.2010 Skąd: Wschowa Ostrzeżenie: (0%) |
Zrozumiałem, że kod wewnątrz pętli ma być kodem PHP.
Jeśli wewnątrz pętli chcesz wykonywać kolejne zapytania w języku SQL to oczywiście - da się. Jeśli chodzi o Twój kod to z całą pewnością b powinno być inicjowane wartością zero. Więcej nie jestem w stanie powiedzieć bo nie mam doświadczenia z tego rodzaju tworami Pozdrawiam -------------------- “ Computers are good at following instructions, but not at reading your mind. ” - Donald Knuth |
|
|
31.08.2011, 01:00:05
Post
#8
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 31.10.2008 Ostrzeżenie: (0%) |
Szkoda... nic to, dziękuję pięknie i czekam dalej- może trafi się ktoś, kto jednym słowem mnie naprowadzi
|
|
|
31.08.2011, 01:09:07
Post
#9
|
|
Grupa: Zarejestrowani Postów: 450 Pomógł: 135 Dołączył: 18.11.2010 Skąd: Wschowa Ostrzeżenie: (0%) |
Może to powinno pomóc ?
http://bit.ly/q63pZI -------------------- “ Computers are good at following instructions, but not at reading your mind. ” - Donald Knuth |
|
|
31.08.2011, 01:25:16
Post
#10
|
|
Grupa: Zarejestrowani Postów: 715 Pomógł: 47 Dołączył: 5.12.2010 Ostrzeżenie: (0%) |
Cytat Rid uzasadnij swoją wypowiedź proszę - jestem bardzo ciekawy. smile.gif Po której tablicy byś się poruszał ? Powiem ,krótko w pętli for można popełnić wiele błędów w ineksowniu(np.wykrocznie poza zakres tablicy). Tutaj ma Pan przykłady jakie błędy może Pan popełnić w pętli for.Kurcze długo szukałem tych przykładów. W pętli foreach,nie ma możliwości zrobienia takich błędów. Odnośnie problemu,albo utworzy Pan procedurę składową ,albo pozostaje pętla której pan nie chce(tylko nie wiem czemu), w samym zapytaniu Pan tego nie zrobi. Ten post edytował Rid 31.08.2011, 01:30:35 |
|
|
31.08.2011, 01:29:46
Post
#11
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 31.10.2008 Ostrzeżenie: (0%) |
Ciężko mi to ogarnąć, ale postaram się, bo chyba faktycznie pomoże. Dzięki
|
|
|
31.08.2011, 09:48:24
Post
#12
|
|
Grupa: Zarejestrowani Postów: 450 Pomógł: 135 Dołączył: 18.11.2010 Skąd: Wschowa Ostrzeżenie: (0%) |
@Rid nie wiem czy zauważyłeś, ale post który podałeś w linku jest o VBA, a nie o PHP.
To prawda, że łatwo można popełnić błąd i wykroczyć poza rozmiar tablicy, tak jak w poniższym przykładzie:
Jednakże nie jest to dowód na to pętla for jest niebezpieczna. Za pomocą każdej pętli możemy wykroczyć poza rozmiar tablicy, gdy kod jest źle skonstruowany. W takim przypadku mówmy o jakości programisty, a nie o jakości pętli. Dla przypadku z mojego pierwszego posta - nie widzę sensownego zastosowania pętli foreach. Pozdrawiam -------------------- “ Computers are good at following instructions, but not at reading your mind. ” - Donald Knuth |
|
|
2.09.2011, 00:43:54
Post
#13
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 31.10.2008 Ostrzeżenie: (0%) |
Ok, to mam pytanie...
Tę procedurę podano tutaj: http://publib.boulder.ibm.com/infocenter/d...oc/c0024352.htm A mimo to otrzymuję błąd: #1064 - 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 '' at line 4 Nie rozumiem o co chodzi, jeśli chodzi o mojego locala, to na wamp postawiłem i mam takie o: Wersja klienta MySQL: mysqlnd 5.0.7-dev - 091210 - $Revision: 304625 $ I co tutaj się dzieje nie rozumiem i jestem po prostu głupi... czy ktoś umiałby mi pomóc? :/ |
|
|
2.09.2011, 01:10:24
Post
#14
|
|
Grupa: Zarejestrowani Postów: 450 Pomógł: 135 Dołączył: 18.11.2010 Skąd: Wschowa Ostrzeżenie: (0%) |
Pod okienkiem, gdzie wpisujesz SQL jest coś takiego:
Separator: [ ; ] Zmień to na znak ^ . PS. Nie jesteś głupi Ten post edytował tolomei 2.09.2011, 01:10:59 -------------------- “ Computers are good at following instructions, but not at reading your mind. ” - Donald Knuth |
|
|
2.09.2011, 14:16:45
Post
#15
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 31.10.2008 Ostrzeżenie: (0%) |
Już dawno nie miałem takiej ucieszonej miny!
No, może kiedy zdesperowany zacząłem szukać ciekawych filmów na youtube i znalazłem to: http://www.youtube.com/watch?v=tqv-ZzXpeAs Dzięki ogromne, wszystko działa, gra i bucy! A co do PS, to cóż... jak nie głupi, to ślepy Ten post edytował hipekhop 2.09.2011, 14:17:36 |
|
|
Wersja Lo-Fi | Aktualny czas: 25.04.2024 - 14:46 |