Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Rand + Update bazy
awek520
post
Post #1





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 28.08.2013

Ostrzeżenie: (20%)
X----


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
Go to the top of the page
+Quote Post
kartin
post
Post #2





Grupa: Zarejestrowani
Postów: 246
Pomógł: 79
Dołączył: 25.05.2010

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


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'] );


Ten post edytował kartin 24.05.2014, 13:01:02


--------------------
Jeśli ten post pomógł to kliknij przycisk po lewej stronie.
Nie pomagam przez PW, GG, e-mail, faks, telegram, znaki dymne, ...
Go to the top of the page
+Quote Post
awek520
post
Post #3





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 28.08.2013

Ostrzeżenie: (20%)
X----


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??

Ten post edytował awek520 24.05.2014, 14:01:28
Go to the top of the page
+Quote Post
daniel1302
post
Post #4





Grupa: Zarejestrowani
Postów: 602
Pomógł: 30
Dołączył: 1.08.2007
Skąd: Nowy Sącz

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


  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
Go to the top of the page
+Quote Post
awek520
post
Post #5





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 28.08.2013

Ostrzeżenie: (20%)
X----


Dziękuje smile.gif o to chodziło smile.gif
Go to the top of the page
+Quote Post
kartin
post
Post #6





Grupa: Zarejestrowani
Postów: 246
Pomógł: 79
Dołączył: 25.05.2010

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


  1. mysql_query('UPDATE users SET hp = 0 WHERE id='.$_SESSION['id'].' LIMIT 1');
W jakim celu jest w zapytaniach LIMIT 1?


--------------------
Jeśli ten post pomógł to kliknij przycisk po lewej stronie.
Nie pomagam przez PW, GG, e-mail, faks, telegram, znaki dymne, ...
Go to the top of the page
+Quote Post
awek520
post
Post #7





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 28.08.2013

Ostrzeżenie: (20%)
X----


Nie wiem.. myślałem że jest potrzebne wink.gif

Ten post edytował awek520 24.05.2014, 17:58:04
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: 22.08.2025 - 00:42