Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

3 Stron V   1 2 3 >  
Reply to this topicStart new topic
> [HTML][MySQL][PHP]Wyszukiwanie ilości występowanie liczb zbazy danych, Wyszukiwanie ilości występowanie liczb zbazy danych
woxala123
post
Post #1





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

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


Zrobiłem taki skrypt który wyszukuje ile razy dana liczba pojawiła się w bazie danych. I chcę teraz dodać jeszcze do tego by zliczało ile razy pokazywała się parka czy trójka liczb.
Czy ktoś może naprowadzić jak do tego zabrać się.
Pozdrawiam
KOD skryptu
  1. form action="bn.php" method="POST">
  2. <fieldset>
  3.  
  4.  
  5. <div>
  6. <label for="count">Wprowadź liczby</label>
  7. <input id="count" name="count" class="text" type="text" value=""/>
  8. </div>
  9.  
  10. <div>
  11. <input class="submit" type="submit" value="Wyślij" />
  12. </div>
  13.  
  14. </fieldset>
  15. </form>
  16.  
  17.  
  18. <?php
  19. $count = $_POST['count'];
  20. $host='localhost';
  21. $db = 'ado';
  22. $username = 'xxxt';
  23. $password = 'xxx';
  24. $dsn= "mysql:host=$host;dbname=$db";
  25.  
  26. try{
  27. // create a PDO connection with the configuration data
  28. $conn = new PDO($dsn, $username, $password);
  29.  
  30. // display a message if connected to database successfully
  31. if($conn){
  32. echo "Connected to the <strong>$db</strong> database successfully!";
  33. }
  34. }catch (PDOException $e){
  35. // report error message
  36. echo $e->getMessage();
  37. }
  38.  
  39.  
  40. $count = current($conn->query("select count(*) from loto where l1='$count' || l2='$count' || l3='$count' || l4='$count' || l5='$count'|| l6='$count' || l7='$count' ")->fetch());
  41.  
  42. echo "<p> </p>";
  43. echo "Podana liczba to";
  44. echo - $_POST['count'];
  45. echo "<p> Wystąpiła razy $count: </p>";
  46.  
  47.  
  48.  
Go to the top of the page
+Quote Post
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


  1. SELECT IF(l1/5=1,1,0)+ IF(l2/5=1,1,0)+ IF(l3/5=1,1,0)+ IF(l4/5=1,1,0)+ IF(l5/5=1,1,0)+ IF(l6/5=1,1,0)+ IF(l7/5=1,1,0) FROM loto

To zapytanie da ilość piątek.
Go to the top of the page
+Quote Post
woxala123
post
Post #3





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

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


Dzięki Tobie za zainteresowanie się tematem- tylko np: wprowadzam w pole input liczby np 21,23,24,25,26 i co mi to to daje- może dałbyś jakiś przykąłd wykorzystując formularz>
Pozdrawiam
Go to the top of the page
+Quote Post
trueblue
post
Post #4





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


W input wprowadzasz liczby czy jedną liczbę?
Co przechowujesz przykładowo w jakimś wierszu w kolumnie l1?
Go to the top of the page
+Quote Post
woxala123
post
Post #5





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

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


[sql]
CREATE TABLE `loto` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`data` DATE NOT NULL,
`l1` INT(11) NOT NULL,
`l2` INT(11) NOT NULL,
`l3` INT(11) NOT NULL,
`l4` INT(11) NOT NULL,
`l5` INT(11) NOT NULL,
`l6` INT(11) NOT NULL,
`l7` INT(11) NOT NULL,
PRIMARY KEY (`id`)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
AUTO_INCREMENT=20
;

/sql]W tym przykłądzie kóry jest u góry podaje tylko jedna liczbę. Teraz chcę zrobić tak że podaje np: 3 liczby -21,2,24 i chce uzyskac ile razy ta trójka pokazała sie w mojej bazie losowań.
W kolumnie przechowuję 1 liczbę. i tak dalej od l1 do l7

Ten post edytował woxala123 20.08.2017, 12:49:12
Go to the top of the page
+Quote Post
trueblue
post
Post #6





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


To musisz swój warunek, który pokazałeś wyżej, powtórzyć trzykrotnie dla każdej liczby, łącząc każdy taki fragment operatorem AND.

Łatwiej by Ci było, gdybyś każdą liczbę przechowywał w odrębnym rekordzie (jedna tabela na dane ogólne losowania, druga tabela na szczegóły losowania).

Ten post edytował trueblue 20.08.2017, 12:51:16
Go to the top of the page
+Quote Post
woxala123
post
Post #7





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

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


Okey sróbuję to zrobić za chwilę i poinformuję Ciebie jak to wychodzi.

Jednak pokazuje to ze żlicza wszystkie podane liczby w jedną ilość która występuje w bazie
Go to the top of the page
+Quote Post
trueblue
post
Post #8





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


A pokażesz zapytanie czy będziesz trzymał w tajemnicy?
Go to the top of the page
+Quote Post
woxala123
post
Post #9





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

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


okey dla przykłądu
  1. select count(*) from loto where l1=23 || l2=23 || l3=23 || l4=23 || l5=23|| l6=23 || l7=23 AND l1=44 || l2=44 || l3=44 || l4=44 || l5=44|| l6=44 || l7=44
  2.  

Może tu dodac jeszcze po id ale nei wiem jestem w czarnej dziurze

Ten post edytował woxala123 20.08.2017, 13:24:31
Go to the top of the page
+Quote Post
trueblue
post
Post #10





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Każdy fragment ma być objęty nawiasem.
Go to the top of the page
+Quote Post
woxala123
post
Post #11





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

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


no właśnie zaraz spróbuję-
Wyszło dzięki Pomogłeś =tak i jak kolega wyżej.
Piwo dla was
Tylko mam pytanko czy trzeba modyfikować zmienną $count by móc wprowadzać np: 2 liczby czy tam 3 liczby i czy to mam być po przecinkach?

Teraz mam problem jak zdefiniować $count bym mógł wprowadzić 2 liczby czy np więcej. Proszę o pomoc
Pozdrawiam
Kod wygląda tak
  1. <form action="bn.php" method="POST">
  2. <fieldset>
  3.  
  4.  
  5. <div>
  6. <label for="count">Wprowadź liczby</label>
  7. <input id="count" name="count" class="text" type="text" value=""/>
  8. </div>
  9.  
  10. <div>
  11. <input class="submit" type="submit" value="Wyślij" />
  12. </div>
  13.  
  14. </fieldset>
  15. </form>
  16.  
  17.  
  18. <?php
  19. $count = $_POST['count'];
  20. $db = 'ado';
  21. $username = 'xxxt';
  22. $password = 'xxx';
  23. $dsn= "mysql:host=$host;dbname=$db";
  24.  
  25. try{
  26. // create a PDO connection with the configuration data
  27. $conn = new PDO($dsn, $username, $password);
  28.  
  29. // display a message if connected to database successfully
  30. if($conn){
  31. echo "Connected to the <strong>$db</strong> database successfully!";
  32. }
  33. }catch (PDOException $e){
  34. // report error message
  35. echo $e->getMessage();
  36. }
  37.  
  38.  
  39. $count = current($conn->query("select count(*) from loto where (l1='$count' || l2='$count' || l3='$count' || l4='$count' || l5='$count'|| l6='$count' || l7='$count') AND (l1='$count' || l2='$count' || l3='$count' || l4='$count' || l5='$count'|| l6='$count' || l7='$count') ")->fetch());
  40.  
  41. echo "<p> </p>";
  42. echo "Podana liczba to";
  43. echo - $_POST['count'];
  44. echo "<p> Wystąpiła razy $count: </p>";
  45.  
  46.  
  47.  
  48.  


Czy zrobić 2 pola input i złączyć je jako całość w zmienną count?

Ten post edytował woxala123 20.08.2017, 17:02:43
Go to the top of the page
+Quote Post
trueblue
post
Post #12





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


A dlaczego miałbyś łączyć wartości z pól?

A gdyby było jedno pole. Wiesz jak rozdzielić string gdzie fragmenty są połączone przecinkiem?
Go to the top of the page
+Quote Post
woxala123
post
Post #13





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

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




CZy jest ktoś w stanie pomóc?
kod jest obecnie taki
  1. <form action="bn.php" method="POST">
  2. <fieldset>
  3.  
  4.  
  5. <div>
  6. <label for="count">Wprowadź liczby</label>
  7. <input id="count" name="count" value="" class="text" type="text" />
  8. </div>
  9.  
  10. <div>
  11. <input class="submit" type="submit" value="Wyślij" />
  12. </div>
  13.  
  14. </fieldset>
  15. </form>
  16.  
  17.  
  18. <?php
  19.  
  20. $server = 'localhost';
  21. $username = 'xx';
  22. $password = 'xxx';
  23. $database = 'xxx';
  24.  
  25. try{
  26. $conn = new PDO("mysql:host=$server;dbname=$database;", $username, $password);
  27. } catch(PDOException $e){
  28. die( "Connection failed: " . $e->getMessage());
  29. }
  30. $count = explode(',', $_POST['count']);
  31. $ount = current($conn->query("select count(*) from loto where (l1='$count' || l2='$count' || l3='$count' || l4='$count' || l5='$count'|| l6='$count' || l7='$count') AND (l1='$count' || l2='$count' || l3='$count' || l4='$count' || l5='$count'|| l6='$count' || l7='$count') ")->fetch());
  32.  
  33. echo "<p> </p>";
  34. echo "Podana liczba to";
  35. echo - $_POST['count'];
  36. echo "<p> Wystąpiła razy $ount: </p>";
  37.  

I wywala komunikat Notice: "Array to string conversion in C:\xampp\htdocs\suzo\bn.php on line 31"

Ten post edytował woxala123 20.08.2017, 17:50:02
Go to the top of the page
+Quote Post
trueblue
post
Post #14





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Zrób jak Ci wygodniej, jak uważasz.
W obydwu przypadkach musisz uwzględnić zmienną ilość wprowadzonych liczb. W przypadku odrębnych pól możliwość wypełnienia np. tylko trzech ostatnich lub pierwszej i ostatniej (choć w przypadku jednego pola też może się zdarzyć, że ktoś wpis 1,,7). W przypadku jednego pola ktoś może wpisać również więcej niż 7 liczb.
Go to the top of the page
+Quote Post
woxala123
post
Post #15





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

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


Po prostu co mam poprawić w tym kodzie aby obliczał choćby parki po wprowadzeniu 2 liczb np po przecinku 23,24.
Go to the top of the page
+Quote Post
trueblue
post
Post #16





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Zmienić zapytanie aby obsługiwało 2 liczby, a nie 3.
A wartość z input przekształcić na dwie liczby za pomocą explode.
Go to the top of the page
+Quote Post
woxala123
post
Post #17





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

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


No tak ale zapytanie jest na dwie liczby a nie wiem jak przekształcić pole input na dwie liczby za pomoca explode? Może jakiś przykład tylko najlepiej z liczbami,
Pozdrawiam
Go to the top of the page
+Quote Post
trueblue
post
Post #18





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Nie wiesz jak użyć funkcji explode? Przecież jest manual i tam są przykłady.
Go to the top of the page
+Quote Post
woxala123
post
Post #19





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

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


Próbuje już różne przykłady chocby i taki
$count = explode('|',$_POST['count']);
Go to the top of the page
+Quote Post
trueblue
post
Post #20





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


W polu wpisujesz liczby w postaci: 1|33 ?
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 14.09.2025 - 23:43