Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Pobieranie kilku rekordów bez pętli
troian
post 19.11.2014, 23:06:09
Post #1





Grupa: Zarejestrowani
Postów: 184
Pomógł: 2
Dołączył: 3.02.2013

Ostrzeżenie: (0%)
-----


Witam, mam w bazie danych tabelkę oto jak wygląda ona:

| ID | ID_KONTA | OSIAGNIECIE |

rekordy w bazie wyglądają następująco:

| 1 | 25 | czas_1 |
| 1 | 25 | czas_2 |
| 1 | 25 | czas_3 |
| 1 | 25 | czas_4 |

Jak widać do jednego konta mamy przypisane kilka rekordów, potrzebuje wyciągnąć wszystkie rekordy z mysql'a jednak nie mogę do tego wykorzystać pętli while
I tutaj jest moje pytanko jak mam przerobić tak to zapytanie aby samo pobrało wszystkie rekordy z bazy danych:
  1. $zap_osiagniecia = "SELECT * FROM ".BAZA.".osiagniecia WHERE id_konta = '".$_SESSION['id']."'";
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 19)
slash^
post 19.11.2014, 23:50:20
Post #2





Grupa: Zarejestrowani
Postów: 278
Pomógł: 36
Dołączył: 9.04.2003
Skąd: Płock

Ostrzeżenie: (0%)
-----


Pokaż jak chciałbyś otrzymać te dane (w jakiej formie danych) w php


--------------------
d(^^)b
Go to the top of the page
+Quote Post
mmmmmmm
post 19.11.2014, 23:58:49
Post #3





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

Ostrzeżenie: (0%)
-----


GROUP_CONCAT
Go to the top of the page
+Quote Post
nospor
post 20.11.2014, 07:48:15
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
jednak nie mogę do tego wykorzystać pętli while
Nauczyciel zabronił? Bo jeśli nie, to bez żadnego problemu możesz uzyc pętle WHILE


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
troian
post 20.11.2014, 11:27:07
Post #5





Grupa: Zarejestrowani
Postów: 184
Pomógł: 2
Dołączył: 3.02.2013

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 20.11.2014, 07:48:15 ) *
Nauczyciel zabronił? Bo jeśli nie, to bez żadnego problemu możesz uzyc pętle WHILE


mam poprostu coś takiego

wynik z mysql'a

if($echo['osiagniecie'] == 'czas_1')
{
echo 'Spędzony czas na serwerze 1 Godzina Zdobyto Osiągnięcie';
}else{
echo 'Spędzony czas na serwerze 1 Godzina Nie zdobyto osiągnięcia';
}

i mam tak z 50 osiągnięć wypisanych więc jak to do pętli włożyć? będzie mi generować tych 50 wpisów 50 razy...
Go to the top of the page
+Quote Post
nospor
post 20.11.2014, 11:38:01
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




A kto ci broni pobrac w petli WHILE wszystkie rekordy, wynik dopisywac do jednej zmiennej a dopiero potem IF zrobic na tej jednej zmiennej? Bez sensu jest dawac ten IF w petli


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
troian
post 20.11.2014, 11:45:12
Post #7





Grupa: Zarejestrowani
Postów: 184
Pomógł: 2
Dołączył: 3.02.2013

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 20.11.2014, 11:38:01 ) *
A kto ci broni pobrac w petli WHILE wszystkie rekordy, wynik dopisywac do jednej zmiennej a dopiero potem IF zrobic na tej jednej zmiennej? Bez sensu jest dawac ten IF w petli


nie rozumiem, mam w pętlę dać mysql_query?
Go to the top of the page
+Quote Post
nospor
post 20.11.2014, 11:47:43
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Jakie mysql_queryw srodku while....
Umiesz pobrac rekordy z bazy przy pomocy WHILE? Jak umiesz, to widziales tam gdzies w srodku mysql_query? Jak nie umiesz, to sie naucz, w manualu masz przyklady przy mysql_fetch_array


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
troian
post 20.11.2014, 11:50:16
Post #9





Grupa: Zarejestrowani
Postów: 184
Pomógł: 2
Dołączył: 3.02.2013

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 20.11.2014, 11:47:43 ) *
Jakie mysql_queryw srodku while....
Umiesz pobrac rekordy z bazy przy pomocy WHILE? Jak umiesz, to widziales tam gdzies w srodku mysql_query? Jak nie umiesz, to sie naucz, w manualu masz przyklady przy mysql_fetch_array


No ja pętlę pisze w taki sposób:

$zapytanie = mysql_query("SELECT * FROM ...");
while($echo = mysql_fetch_assoc($zapytanie))
{
$echo['osiagniecia'];
}
Go to the top of the page
+Quote Post
nospor
post 20.11.2014, 11:52:14
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No brawo. I tak ma byc.
No i teraz w tej petli masz zapisywac to co chcesz do zmiennej albo tablicy

  1. $zapytanie = mysql_query("SELECT * FROM ...");
  2. $tab = array()
  3. while($echo = mysql_fetch_assoc($zapytanie))
  4. {
  5. $echo['osiagniecia'];
  6. $tab[$echo['osiagniecia']] = 1;
  7. }

Teraz w tablicy $tab masz unikalne osiagniecia. Mozesz sobie teraz z tym zrobic co chcesz


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
troian
post 20.11.2014, 11:54:08
Post #11





Grupa: Zarejestrowani
Postów: 184
Pomógł: 2
Dołączył: 3.02.2013

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 20.11.2014, 11:52:14 ) *
No brawo. I tak ma byc.
No i teraz w tej petli masz zapisywac to co chcesz do zmiennej albo tablicy

  1. $zapytanie = mysql_query("SELECT * FROM ...");
  2. $tab = array()
  3. while($echo = mysql_fetch_assoc($zapytanie))
  4. {
  5. $echo['osiagniecia'];
  6. $tab[$echo['osiagniecia']] = 1;
  7. }

Teraz w tablicy $tab masz unikalne osiagniecia. Mozesz sobie teraz z tym zrobic co chcesz


ale jak do tej tablicy mam dodać że jeżeli znajdzie czas_1 to pokaże że zdobyło a jak nie znalazł to wykona else?

'czas_1' => 'Zdobyto Osiągnięcie ', a gdzie else do każdego osiągnięcia?

Ten post edytował troian 20.11.2014, 11:54:55
Go to the top of the page
+Quote Post
nospor
post 20.11.2014, 11:55:29
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Prosty IF i operacja na tablicy...

  1. if(isset($tab['czas_1']))
  2. {
  3. echo 'Spędzony czas na serwerze 1 Godzina Zdobyto Osiągnięcie';
  4. }else{
  5. echo 'Spędzony czas na serwerze 1 Godzina Nie zdobyto osiągnięcia';
  6. }

Tylko to ma byc poza petlą


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
troian
post 20.11.2014, 12:01:08
Post #13





Grupa: Zarejestrowani
Postów: 184
Pomógł: 2
Dołączył: 3.02.2013

Ostrzeżenie: (0%)
-----


  1. $tablica = array();
  2. while($rangi = mysql_fetch_assoc($osiagniecia))
  3. {
  4. $rangi['osiagniecie'];
  5. $tablica[$echo['osiagniecia']] = 1;
  6. }
  7. if(isset($tablica['ranga_1']))
  8. {
  9. echo '<div align="center" class="os_on">'.$ranga_1.'Odblokowane!</div>';
  10. }else{
  11. echo '<div align="center" class="os_off">'.$ranga_1.'Zablokowane!</div>';
  12. }


Chyba coś źle zrozumiałem bo nie działa
Go to the top of the page
+Quote Post
nospor
post 20.11.2014, 12:02:15
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




facepalmxd.gif

Najpier wiersz zapisywales do $echo, teraz wiersz zapisujesz do $rangi.... Kurde, weź sie chlopie ogarnij i jak cos zmieniasz to zmieniaj wszedzie :/


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
troian
post 20.11.2014, 12:03:41
Post #15





Grupa: Zarejestrowani
Postów: 184
Pomógł: 2
Dołączył: 3.02.2013

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 20.11.2014, 12:02:15 ) *
facepalmxd.gif

Najpier wiersz zapisywales do $echo, teraz wiersz zapisujesz do $rangi.... Kurde, weź sie chlopie ogarnij i jak cos zmieniasz to zmieniaj wszedzie :/


Wcześniej pisałem query dlatego dawałem $echo teraz skopiowałem fragment kodu który zmodyfikowałem w pliku .php dlatego zamiast $echo jest $ranga.


a to $tablica[$echo['osiagniecia']] = 1; zedytowałem zaraz bo skopiowałem twój fragment tylko tutaj wgrałem przed poprawieniem na $ranga

Sory ^^

Ten post edytował troian 20.11.2014, 12:05:06
Go to the top of the page
+Quote Post
nospor
post 20.11.2014, 12:05:46
Post #16





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No dobra, ale tu:
$tablica[$echo['osiagniecia']] = 1;
nie zmieniles na ranga.. O to mi chodzi... POpraw i powiedz czy dziala czy nie i jak nei dziala to napisz laskawie czym sie objawia nie dzialanie...

I weź sie wkoncu zastosuj do tego tematu
Temat: Jak poprawnie zada pytanie
bo taka zabawa w kotka i myszke to nie zabawa...


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
troian
post 20.11.2014, 12:08:34
Post #17





Grupa: Zarejestrowani
Postów: 184
Pomógł: 2
Dołączył: 3.02.2013

Ostrzeżenie: (0%)
-----


Tamto poprawiłem ale nie działa, oto cały fragment kodu php

  1. $ranga_1 ='<b>RANGA POZIOM 1</b><div style="margin-top:7px;"></div>Zdobądź 2000 PKT Rangi Dodatniej<br><br>';
  2. $ranga_2 ='<b>RANGA POZIOM 2</b><div style="margin-top:7px;"></div>Zdobądź 4000 PKT Rangi Dodatniej<br><br>';
  3. $ranga_3 ='<b>RANGA POZIOM 3</b><div style="margin-top:7px;"></div>Zdobądź 6000 PKT Rangi Dodatniej<br><br>';
  4. $ranga_4 ='<b>RANGA POZIOM 4</b><div style="margin-top:7px;"></div>Zdobądź 8000 PKT Rangi Dodatniej<br><br>';
  5. $ranga_5 ='<b>RANGA POZIOM 5</b><div style="margin-top:7px;"></div>Zdobądź 20000 PKT Rangi Dodatniej<br><br>';
  6. $zap_osiagniecia = "SELECT * FROM ".BAZA_PLAYER.".osiagniecia WHERE id_konta = '".$_SESSION['id']."'";
  7. $osiagniecia = mysql_query($zap_osiagniecia, $polaczenie);
  8. $tablica = array();
  9. while($rangi = mysql_fetch_assoc($osiagniecia))
  10. {
  11. $rangi['osiagniecie'];
  12. $tablica[$rangi['osiagniecia']] = 1;
  13. }
  14. if(isset($tablica['ranga_1']))
  15. {
  16. echo '<div align="center" class="os_on">'.$ranga_1.'Odblokowane!</div>';
  17. }else{
  18. echo '<div align="center" class="os_off">'.$ranga_1.'Zablokowane!</div>';
  19. }
  20. if(isset($tablica['ranga_5']))
  21. {
  22. echo '<div align="center" class="os_on">'.$ranga_5.'Odblokowane!</div>';
  23. }else{
  24. echo '<div align="center" class="os_off">'.$ranga_5.'Zablokowane!</div>';
  25. }


Mimo iż w bazie mysql mam zdobyte dla danego konta raga_5 to wyświetla się jako zablokowane.
Go to the top of the page
+Quote Post
nospor
post 20.11.2014, 12:09:59
Post #18





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Prosilem bys zastosowal sie do tematu, do ktorego dalem ci linka. Jesli tego nie zrobisz, zamkne temat.

Tymczasem znajdz 10 roznic
$rangi['osiagniecie'];
$rangi['osiagniecia'];


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
troian
post 20.11.2014, 12:11:42
Post #19





Grupa: Zarejestrowani
Postów: 184
Pomógł: 2
Dołączył: 3.02.2013

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 20.11.2014, 12:09:59 ) *
Prosilem bys zastosowal sie do tematu, do ktorego dalem ci linka. Jesli tego nie zrobisz, zamkne temat.

Tymczasem znajdz 10 roznic
$rangi['osiagniecie'];
$rangi['osiagniecia'];


Dobra, chyba czas zacząć wcześniej chodzić spać i pić rano kawę... Dość głupio taki prosty błąd no nic wielkie dzięki Mistrzu za pomoc ^.^
Go to the top of the page
+Quote Post
nospor
post 20.11.2014, 12:19:02
Post #20





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Jakbys zastosowal sie do tematu, do ktorego prosilem, to bys na ekranie zobaczyl bledy informujace o tym bledzie...


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 15.06.2025 - 07:41