Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [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 smile.gif

Ten post edytował mario713 22.07.2009, 13:57:57
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
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.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
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 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 ? tongue.gif
@EDIT2
ok zalapalem haha.gif troche zle ten kodzik zrobilem ^^
qrde ale nadal opornie idzie, moglbys dac przyklad jakis ? 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 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 ? tongue.gif
@EDIT2
ok zalapalem haha.gif troche zle ten kodzik zrobilem ^^
qrde ale nadal opornie idzie, moglbys dac przyklad jakis ? 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.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
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 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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 22:18