Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Odlicznie
Forum PHP.pl > Forum > PHP
kamil18
Mam taki kod:

  1. <?php
  2. require("check.php");
  3. ?>
  4.  
  5. <html>
  6. <head>
  7.  
  8. <meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
  9. <link rel="stylesheet" href="styl.css" type="text/css">
  10. <title>Umiejętnoiści</title>
  11.  
  12. <?php
  13. session_register("kre1, log1, kon1, tech1");
  14.  
  15. mysql_connect('localhost','root','krasnal');  //polaczenie z mysql
  16. mysql_select_db('test'); //wybor bazy
  17.  
  18. $sql = 'SELECT `kreatywnosc` FROM `umiejetnosci` LIMIT 0,1 ';
  19. $wynik = mysql_query($sql);
  20. $rekord=mysql_fetch_array($wynik);
  21. $kre = $rekord[kreatywnosc];
  22. $kre1 = $kre + 1;
  23.  
  24. $sql = 'SELECT `logika` FROM `umiejetnosci` LIMIT 0,1 ';
  25. $wynik = mysql_query($sql);
  26. $rekord=mysql_fetch_array($wynik);
  27. $log = $rekord[logika];
  28. $log1 = $log + 1;
  29.  
  30. $sql = 'SELECT `kondycja` FROM `umiejetnosci` LIMIT 0,1 ';
  31. $wynik = mysql_query($sql);
  32. $rekord=mysql_fetch_array($wynik);
  33. $kon = $rekord[kondycja];
  34. $kon1 = $kon + 1;
  35.  
  36. $sql = 'SELECT `technika` FROM `umiejetnosci` LIMIT 0,1 ';
  37. $wynik = mysql_query($sql);
  38. $rekord=mysql_fetch_array($wynik);
  39. $tech = $rekord[technika];
  40. $tech1 = $tech + 1;
  41.  
  42.  
  43. $czaskre = $kre1 * 10;
  44.  
  45. $czaslog = $log1 * 10;
  46.  
  47. $czaskon = $kon1 * 10;
  48.  
  49. $czastech = $tech1 * 10;
  50.  
  51. ?>
  52.  
  53. <table border="1" align="center">
  54. <tr>
  55. <td width="50" height="50">Kreatywność</td>
  56. <td width="50" height="50">Czas ćwiczenia <?php print("$czaskre"); ?> minut</td>
  57. <td width="50" height="50">Poziom <?php print("$kre"); ?></td>
  58. <tr>
  59. <td width="100" height="100"><img src="obrazki/pianino11.jpg" alt=""/></td>
  60. <td width="400" height="200">Ćwiczenie tej umiejętności pomoże ci w kreatywnym myśleniu.</td>
  61. <td width="50" height="50"><a href="cwiczkre.php">Ćwicz na <?php print("$kre1"); ?> poziom</a></td>
  62. </tr>
  63. <td width="50" height="50">Logika</td>
  64. <td width="50" height="50">Czas ćwiczenia <?php print("$czaslog"); ?> minut</td>
  65. <td width="50" height="50">Poziom <?php print("$log"); ?></td>
  66. <tr>
  67. <td width="100" height="100"><img src="obrazki/29.szachy.jpg" alt=""/></td>
  68. <td width="400" height="200">Ćwiczenie tej umiejętnośi pomoże ci w szybkim i ligicznym myśleniu.</td>
  69. <td width="50" height="50"><a href="cwiczlog.php">Ćwicz na <?php print("$log1"); ?> poziom</a></td>
  70. </tr>
  71. <td width="50" height="50">Kondycja</td>
  72. <td width="50" height="50">Czas ćwiczenia <?php print("$czaskon"); ?> minut</td>
  73. <td width="50" height="50">Poziom <?php print("$kon"); ?></td>
  74. <tr>
  75. <td width="100" height="100"><img src="obrazki/bieznia_elektryczna_bacha.jpg" alt=""/></td>
  76. <td width="400" height="400">Im będziesz więcej ćwiczył tym będziesz silniejszy.</td>
  77. <td width="50" height="50"><a href="cwiczkon.php">Ćwicz na <?php print("$kon1"); ?> poziom</a></td>
  78. </tr>
  79. <td width="50" height="50">Technika</td>
  80. <td width="50" height="50">Czas ćwiczenia <?php print("$czastech"); ?> minut</td>
  81. <td width="50" height="50">Poziom <?php print("$tech"); ?></td>
  82. <tr>
  83. <td width="100" height="100"><img src="obrazki/sam_klucz-2a357505208b43349c5e7a4d6581642a.jpg" alt=""/></td>
  84. <td width="400" height="200">Ćwiczeie tej umiejętności pomoże ci w majsterkowaniu.</td>
  85. <td width="50" height="50"><a href="cwicztech.php">Ćwicz na <?php print("$tech1"); ?> poziom</a></td>
  86. </tr>
  87. </table>
  88.  
  89. </body>
  90. </html>


wizualnie to wygląda tak:



i jaki kod mam napisać że gdy kliknę ćwicz na poziom 2 żeby zamiast tego ćwicz pojawiło się odliczanie 20 minut i po zakończeniu wysyłało zapytanie do bazy danych.
ArekJ
Musiałbyś odliczać dana ilość czasu i mieć dodatkowe pola w bazie danych, a jak chcesz jeszcze, żeby to w razie czego wykonało się jak kogoś nie ma zalogowanego/nie jest na danej podstronie to musisz to sprawdzać CRON'em. Ja Ci dzisiaj więcej nie podpowiem bo słabo u mnie dzisiaj z funkcją myślenia winksmiley.jpg
#luq
Kiedyś dokładnie coś takiego napisałem.
Zajrzyj do tego topica
em1X
odliczanie to javascript nie php

sorry, ale jak patrzę na Twój kod to ręce mi opadają, siekiera się otwiera w kieszeni i muszę poprawić:
zamiast
  1. <?php
  2. $sql = 'SELECT `kreatywnosc` FROM `umiejetnosci` LIMIT 0,1 ';
  3. $wynik = mysql_query($sql);
  4. $rekord=mysql_fetch_array($wynik);
  5. $kre = $rekord[kreatywnosc];
  6. $kre1 = $kre + 1;
  7.  
  8. $sql = 'SELECT `logika` FROM `umiejetnosci` LIMIT 0,1 ';
  9. $wynik = mysql_query($sql);
  10. $rekord=mysql_fetch_array($wynik);
  11. $log = $rekord[logika];
  12. $log1 = $log + 1;
  13.  
  14. $sql = 'SELECT `kondycja` FROM `umiejetnosci` LIMIT 0,1 ';
  15. $wynik = mysql_query($sql);
  16. $rekord=mysql_fetch_array($wynik);
  17. $kon = $rekord[kondycja];
  18. $kon1 = $kon + 1;
  19.  
  20. $sql = 'SELECT `technika` FROM `umiejetnosci` LIMIT 0,1 ';
  21. $wynik = mysql_query($sql);
  22. $rekord=mysql_fetch_array($wynik);
  23. $tech = $rekord[technika];
  24. $tech1 = $tech + 1;
  25. ?>


daj:
  1. <?php
  2. $sql='select kreatywnosc, logika, kondycja, technika from umiejetnosci limit 0,1';
  3. $wynik=mysql_query($sql);
  4. $rekord=mysql_fetch_assoc($wynik);
  5.  
  6. $kre=$rekord['kreatywnosc'];
  7. $kre1=$kre+1;
  8.  
  9. $log=$rekord['logika'];
  10. $log1=$log+1;
  11.  
  12. $kon=$rekord['kondycja'];
  13. $kon1=$kon+1;
  14.  
  15. $tech=$rekord['technika'];
  16. $tech1=$tech+1;
  17. ?>


swoją drogą kod też bez sensu bo co to za limit 0,1 ? zawsze wybierasz jeden rekord zamiast dla konkretnego użytkownika.
kamil18
Dzięki za poprawkę. A z tym limit 0,1 to tylko do testów żeby zobaczyć czy skrypt jest poprawny.

Jeszcze jedno pytanie. Gdy daje tak.

  1. $sql='select kreatywnosc, logika, kondycja, technika from users WHERE `user_login` = "test"';
  2. $wynik=mysql_query($sql);
  3. $rekord=mysql_fetch_assoc($wynik);
  4. mysql_free_result($wynik);


to wszystko działa poprawnie, a gdy daje tak

  1. $sql='select kreatywnosc, logika, kondycja, technika from users WHERE `user_login` = "$login"';
  2. $wynik=mysql_query($sql);
  3. $rekord=mysql_fetch_assoc($wynik);
  4. mysql_free_result($wynik);


to już nie działa. Dlaczego? Jak to naprawić?

zmienna $login jest przesyłana sesją.
nospor
  1. <?php
  2. echo $sql;
  3. ?>

I sobie zobacz dokladnie co tak naprawde ci powstalo.... tongue.gif
kamil18
Gdy dałem echo $sql; to przepisało mi tą całą linijkę $sql. Nie wie ktoś jak zrobić żeby dobrze czytało tą zmienną $login bo gdy usunę linijkę WHERE `user_login` = "$login" to jest poprawnie tylko że czyta mi zawsze pierwszą tabele z bazy danych, a ja chce żeby mi czytało tam gdzie user_login = $login.

Już sobie poradziłem smile.gif wystarczyło zmienić apostrofy i cudzysłowy.
em1X
Cytat(kamil18 @ 23.06.2009, 10:24:22 ) *
Już sobie poradziłem smile.gif wystarczyło zmienić apostrofy i cudzysłowy.


brawo smile.gif
na przyszłość jak coś Ci nie działa to korzystaj z takiej funkcji:
  1. <?php
  2. function debug($v, $exit=true) {
  3.   print '<pre>';
  4.   if (empty($v) || is_scalar($v)) var_dump($v);
  5.   else print_r($v);
  6.   print '</pre>';
  7.   if ($exit) exit;
  8. }
  9. ?>


i sprawdzaj czy wartość, która istnieje, zgadza się z tą, jakiej oczekujesz/oczekuje funkcja:
  1. <?php
  2. debug($twojeZapytanieSql);
  3. ?>
kamil18
Mam taki skrypt

  1. <?php
  2. require("check.php");
  3.  
  4. mysql_connect('localhost','root','krasnal');  //polaczenie z mysql
  5. mysql_select_db('test'); //wybor bazy
  6.  
  7. $sql="select glod from users WHERE `user_login` = '$login'";
  8. $wynik=mysql_query($sql);
  9. $rekord=mysql_fetch_assoc($wynik);
  10. $glod=$rekord['glod'];
  11. $glod1 = $glod + 1;
  12.  
  13. if($glod === "10")$glod1 = "10";
  14.  
  15. mysql_query("UPDATE `users`
  16.     SET `glod` = '$glod1'
  17.     WHERE `user_login` = '$login'
  18.     ") or die("Nie udalo mi sie uaktualnić rekordow");
  19.  
  20. ?>


i chce żeby po jego wywołaniu przekierowało mi na poprzednią stronę czyli co mam napisać po mysql_close; żeby przekierowało mi na poprzednią stronę??
em1X
http://lmgtfy.com/?q=php+redirect
bim2
Ale uaktualniając to nie sprawdzasz czy na serio minęło 20min.

Ja bym to zrobil tak:
- W bazie zapisujesz kiedy będzie można sobie uaktualnić umiejętność.
- Jeśli w bazie czas < teraz to wyświetlasz przycisk "Ćwicz"
- Po kliknieciu na Ćwicz, robisz
  1. <?php
  2. mysql_query('UPDATE user SET umiejetnosc=umiejetnosc+10 WHERE userId=1 AND time<='.time());
  3. ?>
kamil18
Jak zrobić żeby wyświetlało mi wszystkie informacje w tabeli które zostały pobrane z bazy danych. Chce zrobić statystki.
Mateusz10
Dzięki za skrypt przydał się
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.