Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Rand + Update bazy
Forum PHP.pl > Forum > PHP
awek520
Witam.. Próbuje zrobic takie coś jak "nieokryte pola"..

Chodzi mi o to.. żeby gdy klikamy w link, następuje zdarzenie losowe, powiedzmy jedno z 5.. zrobiłem takie coś na funkcjii rand..

No ale nie aktualizuje bazy, szukałem na necie jak to można zrobic, ale nie doszukałem się..
Poradzicie coś?

Następnie, jak zrobic % wyświetlanie wyników? np, że na pierwszy tekst będzie 70% szans na wyświetlanie.. a na drugi tylko 30%

  1. <?php
  2. $tekst[0]='Coś tam pierwsze<br>
  3. mysql_query("UPDATE users SET hp = 0 WHERE id=$_SESSION[id] LIMIT 1")';
  4.  
  5. $tekst[1]='Coś tam drugie<br>
  6. mysql_query("UPDATE users SET cash = cash+500 WHERE id=$_SESSION[id] LIMIT 1");';
  7.  
  8. $los=rand(0,1);
  9. echo($tekst[$los]);
  10. ?>


Pozdrawiam
kartin
Zamiast rand() użyj mt_rand() - jest szybsze a rozkład liczb pseudolosowych jest znany.
  1. $los = mt_rand(1, 100);
  2. if ($los > 30) {
  3. //70%
  4. }
  5. else {
  6. //30%
  7. }


  1. $tekst[0]='Coś tam pierwsze<br>
  2. mysql_query("UPDATE users SET hp = 0 WHERE id=$_SESSION[id] LIMIT 1")';
  3.  
  4. $tekst[1]='Coś tam drugie<br>
  5. mysql_query("UPDATE users SET cash = cash+500 WHERE id=$_SESSION[id] LIMIT 1");';
Zamiast powyższego pewnie miałeś na myśli:
  1. $tekst[0]='Coś tam pierwsze<br>';
  2. mysql_query( 'UPDATE users SET hp = 0 WHERE id=' . $_SESSION['id'] );
  3.  
  4. $tekst[1]='Coś tam drugie<br>';
  5. mysql_query( 'UPDATE users SET cash = cash+500 WHERE id=' . $_SESSION['id'] );
awek520
Działa to.. ale trochę dziwnie.. czasem gdy odswieżam albo kilikam w link wyświetla się pusta strona, czasem to działa..

Zrobiłem tak..
  1. <?php
  2. $los = mt_rand(1, 100);{
  3. if ($los > 90) {
  4. $tekst[1]='Coś tam pierwsze<br>';
  5. mysql_query('UPDATE users SET hp = 0 WHERE id='.$_SESSION['id'].' LIMIT 1');
  6. }
  7. else {
  8. $tekst[2]='Coś tam drugie<br>';
  9. mysql_query('UPDATE users SET cash = cash+500 WHERE id='.$_SESSION['id'].' LIMIT 1');
  10. }
  11. }
  12. $los=rand(1,2);
  13. echo($tekst[$los]);
  14. ?>



PS. A jeśli chciałbym dodac kolejne teksty ? to jako??
daniel1302
  1. <?php
  2. $tablica = array();
  3. $tablica[0] = array('tekst' => 'Jakiś tekst', 'zapytanie' => 'UPDATE coś tam...');
  4. $tablica[1] = array('tekst' => 'Jakiś tekst1', 'zapytanie' => 'UPDATE coś tam...');
  5. $tablica[2] = array('tekst' => 'Jakiś tekst2', 'zapytanie' => 'UPDATE 1 coś tam...');
  6.  
  7. $randomKey = array_rand($tablica);
  8.  
  9. echo $tablica[$randomKey]['tekst'];
  10. mysql_query($tablica[$randomKey]['zapytanie']);


Teraz wystarczy dodać nowe elementy do tablicy i nie musisz nic innego zmieniać w kodzie, a elementy można np pobrać z bazy i mieć wszystko dodawane z poziomu panelu admina
awek520
Dziękuje smile.gif o to chodziło smile.gif
kartin
  1. mysql_query('UPDATE users SET hp = 0 WHERE id='.$_SESSION['id'].' LIMIT 1');
W jakim celu jest w zapytaniach LIMIT 1?
awek520
Nie wiem.. myślałem że jest potrzebne wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.