Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Wszystkie wyniki pętli w jednej zmiennej
Forum PHP.pl > Forum > Przedszkole
kubax33
Mam problem i całkowicie nie wiem jak go rozwiązać. Mam bazę dla przykładu

ID | position | title_number |
5 | 2 | 300
9 | 3 | 300

  1. $result = mysql_query("SELECT * FROM informacje WHERE title_number=$nr");
  2. while($info= mysql_fetch_assoc($result))
  3. {
  4. $wynik = $info['title_number'];
  5. }
  6.  
  7. $zmienna_do_zapisu = $wynik;
  8.  


chcę wyciągnąć wszystkie title_number, które mają 300 i w pętli rzecz jasna zawsze wyświetli mi ostatni przelot czyli wynik tylko 300 jeśli dam zmienną $wynik bo gdybym dał echo wyświetli wszystko ok, chciałbym, aby wyświetliło mi wszystkie rekordy za tą pętlą bo potrzebują wynik zapisać. Czy jest na to jakiś sposób? Proszę o rady.
nospor
Utworz tablice...

$wynik[]= $info['title_number'];
kubax33
Dzięki, a jakoś można oddzielić wyniki przecinkiem, aby nie robić tego tak jak ja zrobiłem niżej bo implode tutaj chyba nie można użyć?

  1. while($info= mysql_fetch_assoc($result))
  2. {
  3. $wynik[]= $info['title_number'];
  4. }
  5.  
  6. $zmienna_do_zapisu = ''.$wynik[0].','.$wynik[1].'';
  7.  


W sumie będzie zawsze max 7 wyników, ale robienie tego w taki sposób to trochę bezsens i jeśli zrobię tak z 8 wynikamu będę miał przy 2 wynikach 6 przecinków. Można sprawdzić czy zmienna z tablicy istnieje, ale czy to jedynie rozwiązanie?
nospor
A czemu ci przyszlo do glowy, ze nie mozna uzyc implode?? Mozna.
viking
Możesz nawet od razu na bazie to wybrać. Przykłady
https://www.percona.com/blog/2013/10/22/the...s-group_concat/
kubax33
Cytat(nospor @ 22.01.2016, 12:05:12 ) *
A czemu ci przyszlo do glowy, ze nie mozna uzyc implode?? Mozna.


  1. $wynik[]= implode(",", $info['title_number']);


testowałem na kilka wariantów i coś robię źle. Za pętlą też próbowałem i nic.


  1. $zmienna1= implode(",", $wynik[1]);


Działa w zakręconej formie

  1. if (!empty($wynik[0]))
  2. {
  3. $wynik0 = $wynik[0];
  4. }
  5. if (!empty($wynik[1]))
  6. {
  7. $wynik1 = ','.$wynik[1].'';
  8. }
  9. $zmienna_do_zapisu = $wynik0.$wynik1;

nospor
implode sie robi na TABLICY a nie na ELEMENCIE TABLICY... zagladaj do manuala. Tam masz podane przyklady i opis a nie strzelasz.
kubax33
Cytat(nospor @ 22.01.2016, 13:48:09 ) *
implode sie robi na TABLICY a nie na ELEMENCIE TABLICY... zagladaj do manuala. Tam masz podane przyklady i opis a nie strzelasz.



Ok działa mi w takiej formie:

  1. if (!empty($wynik[0]))
  2. {
  3. $wynik0 = $wynik[0];
  4. }
  5. if (!empty($wynik[1]))
  6. {
  7. $wynik1 = ','.$wynik[1].'';
  8. }
  9. $zmienna_do_zapisu = $wynik0.$wynik1;


spróbuję coś poczytać może dojdę. Dzięki
nospor
Cytat
Ok działa mi w takiej formie:
Forma co podales jest beznadziejna.
Zajrzyj do tego manuala jak prosilem i tam nie ma co sie mozowac, bo tam masz podany wyrazny i jednoznaczny przyklad... Trzeba sie mocno starac by go nie zrozumiec
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.