Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Rozpisanie kombinacji z zakresu liczb.
woxala123
post 31.08.2017, 17:32:41
Post #1





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


Witam. Zrobiłem taki początkowy skrypt który najpierw pobiera liczby jakie występowały, apotem chce ten wynik zapytania rozpisać jakby dalszym kodem. I znów błądzę jak to ugryżć.
Oto kod
  1. try
  2. {
  3. $sql=" SELECT liczba FROM ` liczby` ";
  4.  
  5. $result = $pdo->query($sql);
  6.  
  7. }
  8. catch (PDOException $e)
  9. {
  10. $error = 'Error: ' . $e->getMessage();
  11. ;
  12. exit();
  13. }
  14. $result = $pdo->query($sql)->fetchAll();
  15. if (count($result) > 0) {
  16. foreach ($result as $row) {
  17. echo $row['liczba']. ' ';
  18. }
  19. }
  20. //Dalsza część kodu która ma za zadanie rozpisać z tych liczb kombinacje.
  21. $words = // I w tym miejscu nie wiem co wpisać by były liczby z tego zapytania powyżej by mógł potem rozpisać kombinacje
  22. //Jeśli wpiszę dla przykładu wpiszę array('21', '24', '31', '35'); to fajnie to rozpiszę. Tylko chciałbym to robić wynikiem zapytania.
  23. //Proszę o pomoc.
  24.  
  25.  
  26. $num = count($words );
  27.  
  28.  
  29.  
  30. //The total number of possible combinations
  31.  
  32. $total = pow(2, $num);
  33.  
  34.  
  35.  
  36. //Loop through each possible combination
  37.  
  38. for ($i = 0; $i < $total; $i++) {
  39.  
  40. //For each combination check if each bit is set
  41. for ($j = 0; $j < $num; $j++) {
  42.  
  43. //Is bit $j set in $i?
  44.  
  45. if (pow(2, $j) & $i) echo $words[$j] . ' ';
  46. }
  47. echo '<br />';
  48. }
  49.  


Ten post edytował woxala123 31.08.2017, 17:33:25
Go to the top of the page
+Quote Post
Pyton_000
post 31.08.2017, 17:47:33
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


przecież wyświetlasz liczby więc jaki problem dodawać je do tablicy?
Go to the top of the page
+Quote Post
woxala123
post 31.08.2017, 17:53:39
Post #3





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


No włąśnie i znów leżę z tymi tablicami. Zgadza się wyświetla tylko co podstawić do tego $words? Czyli sugerujesz echo $row['liczba']. ' ';
Robię coś takiego $words= explode(',', $result); i dostaje komunikat
! ) Warning: explode() expects parameter 2 to be string, array given in C:\xampp\htdocs\suzo\vn.php on line 39
Call Stack
# Time Memory Function Location
1 0.0008 359704 {main}( ) ...\vn.php:0
2 0.0054 381240 explode ( ) ...\vn.php:39

C:\xampp\htdocs\suzo\vn.php:45:null


Ten post edytował woxala123 31.08.2017, 18:07:34
Go to the top of the page
+Quote Post
Pyton_000
post 31.08.2017, 18:08:45
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Wątpię że ten kod Ty napisałeś....

https://4programmers.net/PHP/Tablice_w_PHP
Go to the top of the page
+Quote Post
woxala123
post 31.08.2017, 18:20:14
Post #5





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


Okey dzięki Tobie za link ale tu nie chodzi bym teraz studiował tablice, bo owszem tu są proste przykłady tylko rzadko pokazane na przykładach ze zmiennymi. Proszę o mała podpowiedź.
Go to the top of the page
+Quote Post
trueblue
post 31.08.2017, 18:26:19
Post #6





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


Mam nadzieję, że Ci znów nie namieszam, ale zobacz przykład #2: http://php.net/manual/en/pdostatement.fetchall.php


--------------------
Go to the top of the page
+Quote Post
woxala123
post 31.08.2017, 19:53:48
Post #7





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


Możliwe że namieszasz, ale spróbuje to ogarnąć. Ale chcę spokojnie to skonczyć i rozpocząć długi weekrnd.

jak zrobię coś takiego

  1.  
  2. $words[] = array($row['liczba']);

Komunikat dostaje
C:\xampp\htdocs\suzo\vn.php:44:
array (size=1)
0 =>
array (size=1)
0 => string '49' (length=2)



( ! ) Notice: Array to string conversion in C:\xampp\htdocs\suzo\vn.php on line 64
Call Stack
# Time Memory Function Location
1 0.0007 359664 {main}( ) ...\vn.php:0
Array
Czyli pokazuje ostatnią liczbę w szeregu.
Co dalej zrobić z tym fantem. Powiem jeszcze mnie ciemnota o php bierze.

Czy ktoś dalej ruszy temat, bo jeśli wyświetla liczby to jak je teraz zastosować w tej zmiennej?. Niewiem czy arrayem czy explode itd itd...itd. Proszę o pomoc.
Go to the top of the page
+Quote Post
Pyton_000
post 31.08.2017, 20:17:13
Post #8





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Dostałeś link o tablicach. Skoro nie chce Ci się czytać to nie licz na pomoc. Leniom mówimy nie.
Go to the top of the page
+Quote Post
woxala123
post 31.08.2017, 20:22:28
Post #9





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


Czytam o tych tablicach i trudno jest mi coś zastosować do tego przykładu. Może podpowiedz który punkt by pasował to tego rozwiązania a spróbuję to przeanalizować.
A co do lenia to mi daleko. Mam dużo obowiązków i nawet kolego byś tego nie ogarnął. PHP traktuję jako oderwanie się trochę od przyziemnych spraw. Jeśli Ciebie mogę prosić postaraj mnie to jeszcze abrdziej zgłębić bo najwidoczniej nie umiem tych tablic zastosować do tego przykłądu.
Pozdrawiam

Ten post edytował woxala123 31.08.2017, 20:33:52
Go to the top of the page
+Quote Post
trueblue
post 31.08.2017, 20:32:37
Post #10





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


Czy przejrzałeś przykład, który Ci podałem?


--------------------
Go to the top of the page
+Quote Post
woxala123
post 31.08.2017, 20:35:18
Post #11





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


Przejrzałem i nie wiem jak do tego podejść.
Go to the top of the page
+Quote Post
trueblue
post 31.08.2017, 20:37:28
Post #12





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


To przejrzyj jeszcze raz i:
1. Sprawdź jakiej konkretnie metody dotyczy podany wpis w dokumentacji.
2. Jak została użyta ta metoda (a jak Ty używasz).
3. Jaki wynik dała ta metoda.


--------------------
Go to the top of the page
+Quote Post
woxala123
post 31.08.2017, 20:39:25
Post #13





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


I tak nadal będę tkwił w miejscu. Tylko teraz nie wiem skoro robie to co powyżej pokazuje mi się w zmiennej 1 liczba.
Go to the top of the page
+Quote Post
trueblue
post 31.08.2017, 20:45:03
Post #14





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


W miejscu tkwisz, bo nie chce Ci się poświęcić chwili i przeanalizować przykładów. Czekasz po prostu na gotowiec.
Jeśli masz dużo obowiązków, to zajmij się nimi i nie trać czasu na PHP.


--------------------
Go to the top of the page
+Quote Post
woxala123
post 31.08.2017, 21:29:34
Post #15





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


Fajnie że umiesz doradzać, ale nie doradzaj co ja mam robić w życiu. Nie chcę gotowca, tylko chcę zrozumieć jak wynik zapytania zastosować w zmiennej by poniższym kodem obliczyć to co mnie interesuje i to wszystko. .
Pozdrawiam

Po przeczytaniu, dochodzę do wniosku że warto zastosować FETCH_COLUM, Zobaczę co z tego wyjdzie.

Rozwiązanie było banalnie proste. Oto kod.
  1. try
  2. {
  3. $sql=" SELECT liczba FROM ` liczby` ";
  4.  
  5. $result = $pdo->query($sql)->fetchAll(PDO::FETCH_COLUMN, 0);
  6.  
  7. }
  8. catch (PDOException $e)
  9. {
  10. $error = 'Error: ' . $e->getMessage();
  11. ;
  12. exit();
  13. }
  14.  
  15.  
  16.  

Dzięki Ci za podpowiedź.trueblue. Mieli trochę przy dużej ilości liczb, ale to już następny temat który będę sobie wałkował. Bo można te rozpiskę zrobić do jednego dnia a potem ile razy dany układ się pokazywał. Dobranoc
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: 26.04.2024 - 12:21