Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL] Proste zapytanie z przypisaniem wyników
-pararam-
post
Post #1





Goście







Witam, mam od paru minut problem z dość prostym skryptem, w którym użytkownik może nabyć maksymalnie trzy numerowane kolejno losy i w każdej chwili może zobaczyć jakie numery mają jego szanse na myljon. I tak:

  1. <?php
  2. global $userrow, $numqueries;            //pobranie zapytania z tabeli użytkownika
  3. $ilelosow = $userrow["lottery"];                  // pod userrow[lottery] jest liczba kupionych przez użytkownika losów
  4. $lotteryquery = doquery("SELECT * FROM {{table}}", "lottery");         // zapytanie do tabeli zawierającej kolumny ID i OWNER, odpowiednio numer losu i ID jego właściciela
  5. $lotteryrow = mysql_fetch_array($lotteryquery);
  6. $los1=0; $los2=0; $los3=0;           // wyzerowanie wartości losów
  7. while ($lotteryrow = mysql_fetch_array($lotteryquery)) {        // wejście w pętlę
  8. if ( $lotteryrow["owner"] == $userrow["id"] ) {            // jeśli użytkownik jest właścicielem losu...
  9.        if ($los1 == 0) {$los1 = $lotteryrow["id"];}            // i los1 jest zerem to przypisz numer losu do los1
  10.        elseif ($los2 == 0) {$los2 = $lotteryrow["id"];}       // a jeśli los2 jest zerem to przypisz do los2
  11.        elseif ($los3 == 0) {$los3 = $lotteryrow["id"];}       // i analogicznie los3
  12.    }
  13. }             // wyjście z pętli
  14. ?>



Jako sprawdzajkę używam $los1 - $los2 - $los3 i dla użytkownika, który kupił pierwsze dwa losy (ID 1 i 2) otrzymuję 2 - 0 - 0, po kupnie trzeciego losu (o ID 3) skrypt zwraca 2 - 3 - 0, czyli jakimś cudem >pomija< pierwszy rekord. Byłbym wdzięczny za pomoc, mi już się pomysły skończyły...
Go to the top of the page
+Quote Post
bigZbig
post
Post #2





Grupa: Zarejestrowani
Postów: 740
Pomógł: 15
Dołączył: 23.08.2004
Skąd: Poznań

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


usuń wiersz 6 czyli
Kod
$lotteryrow = mysql_fetch_array($lotteryquery);


--------------------
bigZbig (Zbigniew Heintze) | blog.heintze.pl
Go to the top of the page
+Quote Post
-pararam-
post
Post #3





Goście







Działa, wielkie dzięki... Nie wiem nawet dlaczego, identyczny skrypt z inną tabelą działał w ten sposób a ten nie chciał... Byłbym wdzięczny za ewentualne wyjaśnienie na przyszłość
Go to the top of the page
+Quote Post
melkorm
post
Post #4





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

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


Cytat
Byłbym wdzięczny za ewentualne wyjaśnienie na przyszłość


hmm dziwne że działał z inną tabelą - lub miałeś więcej wierszy i nie zauważałeś błędu ponieważ ten kod który kolega wyżej poradził wyciąć powodował to iż pierwszy wiersz z wyniku "uciekał" tzn.: przypisując go do zmiennej "$lotteryrow" mysql_fetch_array przeskoczyl wskaźnikiem na 2 wiersz i gdy skrypt dochodzi do pętli 1 wiersz znajdujący się w $lotteryrow nadpisujesz już drugim wierszem na który obecnie wskazuje mysql_fetch_array smile.gif

Nie jest to jakieś fachowe wytłumaczenie ale chyba zrozumiałem - mam nadzieje smile.gif


--------------------
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: 21.08.2025 - 17:18