Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [mysql] Ilosc trafnych liczb, Sprawdzanie ilosci trafionych liczb
mario713
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 22.07.2009

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


Witam, mam taki kodzik ktory generuje mi 6 liczb i nastepnie te zapytanie przesyla te liczby do tabeli:

  1. $zadanie = "INSERT INTO `lotto_wygenerowane` (`data`, `liczba1`, `liczba2`, `liczba3`, `liczba4`,`liczba5`, `liczba6`, `schowaj`) VALUES ( '".$data."', '".$liczba1."', '".$liczba2."', '".$liczba3."', '".$liczba4."', '".$liczba5."', '".$liczba6."', '0');";
  2. mysql_query($zadanie);


I teraz zaraz po wykonaniu tego zapytania chcialbym aby wyszukalo mi wszystkie kupony ktore trafily jakas liczbe i zapisalo mi w tych kuponach ilosc traionych liczb w polu ilosctrafien.

Moje tabele wygladaja tak:

tatbela lotto_kupony
struktura id | data | liczba1 | liczba2 | liczba3 | liczba4 | liczba5 | liczba6 | koszt | wygrana | oplacony | wazny | imie | nazwisko | ilosctrafien
przeglad 1 | 22.07.2009 | 33 | 32 | 1 | 16 | 49 | 44 | 20 | 0 | 0 | 0 | Mike | Peterson | NULL

tabela lotto_wygenerowane
struktura id | data | liczba1 | liczba2 | liczba3 | liczba4 | liczba5 | liczba6 | schowaj
przeglad 3 | 8.07.2009 | 34 | 43 | 23 | 42 | 55 | 32 | 0

I wlasnie nie wiem jak sie do tego zabrac...

Ps. Za pomoc pomogl gwarantowane (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował mario713 22.07.2009, 13:57:57
Go to the top of the page
+Quote Post
Fifi209
post
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Dodaj warunek do selecta dla każdej liczby

where `liczba(numer)` in(wylosowane) and `liczba(numer)` in (wylosowane)

(numer) -> numer liczby
(wylosowane) -> zbiór wylosowanych liczb, oddzielonych przecinkami
I analogicznie dla wszystkich liczb tak samo.
Go to the top of the page
+Quote Post
mario713
post
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 22.07.2009

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


ok, biore sie do roboty i jezeli sie uda masz pomogl (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

@EDIT
a jeszcze mogl bys podac maly przykladzik ?
Nie wiem czy do konca dobrze robie ale zrobilem narazie cos takiego:
  1. $zapytanko = "UPDATE lotto_kupony SET `ilosctrafien` = '2' WHERE `liczba1` in (lotto_wygenerowane) and `liczba2` in (lotto_wygenerowane)";

i zeby sprawdzalo te liczby tylko z ta linijka w lotto_wygenerowane ktora ma pole schowaj rowne 0 to gdzie dodac warunek ? (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
@EDIT2
ok zalapalem (IMG:http://forum.php.pl/style_emoticons/default/haha.gif) troche zle ten kodzik zrobilem ^^
qrde ale nadal opornie idzie, moglbys dac przyklad jakis ? (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Ten post edytował mario713 22.07.2009, 14:15:05
Go to the top of the page
+Quote Post
Fifi209
post
Post #4





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(mario713 @ 22.07.2009, 14:02:39 ) *
ok, biore sie do roboty i jezeli sie uda masz pomogl (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

@EDIT
a jeszcze mogl bys podac maly przykladzik ?
Nie wiem czy do konca dobrze robie ale zrobilem narazie cos takiego:
  1. $zapytanko = "UPDATE lotto_kupony SET `ilosctrafien` = '2' WHERE `liczba1` in (lotto_wygenerowane) and `liczba2` in (lotto_wygenerowane)";

i zeby sprawdzalo te liczby tylko z ta linijka w lotto_wygenerowane ktora ma pole schowaj rowne 0 to gdzie dodac warunek ? (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
@EDIT2
ok zalapalem (IMG:http://forum.php.pl/style_emoticons/default/haha.gif) troche zle ten kodzik zrobilem ^^
qrde ale nadal opornie idzie, moglbys dac przyklad jakis ? (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)


Sorki mój błąd, nie pomyślałem/doczytałem że ilość trafień potrzebujesz. To zupełnie zmienia postać rzeczy.
To już bardziej złożony problem, na który póki co nie umiem wymyślić sensownej odpowiedzi.
Go to the top of the page
+Quote Post
kefirek
post
Post #5





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

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


Jak zrobić w to w zapytaniu nie mam pomysłu ale w php wyglądało by to tak i potem zmienną $ilosctrafien wstawiasz do bazy
  1. <?php
  2. $lotto_kupony = array(33,32,1,16,49,44,20);
  3. $lotto_wygenerowane = array(34,43,23,42,55,32);
  4. $ilosctrafien=0;
  5. foreach($lotto_kupony AS $wynik){
  6. if (in_array($wynik, $lotto_wygenerowane)) { $ilosctrafien++; }
  7. }
  8. echo $ilosctrafien;
  9. ?>
Go to the top of the page
+Quote Post
mario713
post
Post #6





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 22.07.2009

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


qrde tylko nie wpada mi do glowy jak tego uzyc aby masowo sprawdzilo ilosc tych trafnych za 1 razem (IMG:http://forum.php.pl/style_emoticons/default/sciana.gif)
Go to the top of the page
+Quote Post
kitol
post
Post #7





Grupa: Zarejestrowani
Postów: 162
Pomógł: 26
Dołączył: 19.01.2007

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


Masz źle zaprojektowane tabele. Błędem jes tworzenie sześciu kolumn (liczba1, liczba2...)
Zastanów sie nad wywaleniem tych kolumn i dodaniem jednej id_losowania która będzie kluczem do nowej tabeli zawierajacej dwie kolumny: id_losowania, wylosowana liczba.
Takie modyfikacje wprowadź w obu dotychczasowych tabelach.

Dla kazdego losowania masz co prawda 6 wierszy w takiej tabeli, ale porównywanie wyników jest wtedy dużo łatwiejsze. Odpowiedni JOIN i GROUP BY z COUNTem powinny rozwiązać problem.
Go to the top of the page
+Quote Post

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: 25.12.2025 - 19:13