Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL]losowy rekord
kleszczoscisk
post 17.10.2008, 14:09:35
Post #1





Grupa: Zarejestrowani
Postów: 164
Pomógł: 3
Dołączył: 13.12.2007

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


Proszę o podpowiedź, jak ugryźć problem: wyświetlanie losowego rekordu z bazy, raz dziennie, czyli od północy do północy przez 24h (albo raz w tygodniu,miesiącu,itp).
Dzięki z góry


--------------------

Siedź cicho, kiedy śpi licho.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kleszczoscisk
post 17.10.2008, 17:33:10
Post #2





Grupa: Zarejestrowani
Postów: 164
Pomógł: 3
Dołączył: 13.12.2007

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


Tak zrobiłem i sprawdzałem - działa. Pewnie rozwiązanie z cronem jest normalniejsze, ale jak sądzicie, tak też można? Czy to w złym stylu? (uczę się php i mysql :-))
Pozdrawiam

  1. <?php
  2. //dzisiejsza data
  3.    $today = date(&#092;"Y-m-d\");
  4.    //zapytanie do bazy dzieladnia
  5.    $zapytanie=(&#092;"SELECT * FROM `dzielodnia` LEFT  JOIN `dziela`  ON dzielodnia.dd_id = dziela.id WHERE dzielodnia.dd_data='$today' \");
  6.    $wykonaj=mysql_query($zapytanie);
  7.  
  8.    //jeśli są wyniki pokazuje
  9.        if(mysql_num_rows($wykonaj) > 0){
  10.        //wyswietlanie wyników
  11.        $wn = mysql_fetch_array($wykonaj);
  12.        echo 'OK. Jest dzieło dnia nr '.$wn['id'].'
  13. ';
  14.        }
  15.    //jeśli nie ma    
  16.        else{
  17.                
  18.        //pobieranie losowego dzieła z bazy, takiego którego nie ma jeszcze w bazie dzieła dnia
  19.        $zapytanie2 = (&#092;"SELECT * FROM `dziela`  LEFT JOIN `dzielodnia` ON dziela.id = dzielodnia.dd_id  WHERE dziela.id<>dzielodnia.dzielo_id ORDER BY RAND() LIMIT 1\");
  20.  
  21.        $wykonaj2=mysql_query($zapytanie2);
  22.        $w2 = mysql_fetch_array($wykonaj2);
  23.            //jeśli jest wynik
  24.            if(mysql_num_rows($wykonaj2) > 0){
  25.                //zmienne            
  26.                $did = $w2['id'];
  27.                //dodanie rekordu do bazy dzielodnia
  28.                $zapytanie3 =  mysql_query(&#092;"INSERT INTO `dzielodnia` VALUES ('','$did','$today')\") or die('blad 3');
  29.            }
  30.            // jednorazowy komunikat
  31.            $wn = mysql_fetch_array($wykonaj);
  32.            echo 'OK. Wlasnie wybrałem dzieło dnia. Odśwież tę stronę aby je zobaczyć
  33. ';
  34. }
  35. ?>


edit: źle działa - problem z duplikatami ($zapytanie2) :-|

poprawiam, teraz chyba jest OK:
  1. <?php
  2. $zapytanie2 = (&#092;"SELECT * FROM `dziela`  LEFT JOIN `dzielodnia` ON dziela.id <> dzielodnia.dzielo_id ORDER BY RAND() LIMIT 1\");
  3. ?>

Nie działa :-|

tak też nie działa...
  1. <?php
  2. $zapytanie2 = ("SELECT dziela.id, dzielodnia.dd_dzielo FROM dziela, dzielodnia WHERE dziela.id <> dzielodnia.dd_dzielo ORDER BY RAND() LIMIT 1");
  3. ?>

help!
Jak pobrać z jednej tabeli 'id' taki aby nie było go w drugiej tabeli, po to by go do niej wprowadzić ?

Ten post edytował kleszczoscisk 17.10.2008, 18:30:34


--------------------

Siedź cicho, kiedy śpi licho.
Go to the top of the page
+Quote Post

Posty w temacie


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: 14.08.2025 - 19:36