Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] pytanie odnośnie mini gry
grzegosh
post
Post #1





Grupa: Zarejestrowani
Postów: 51
Pomógł: 3
Dołączył: 26.06.2008

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


Witam.
Jestem amatorem jeśli chodzi o php i mysqla, uczę się go od kilku dni. Problemem nie jest dla mnie składnia php, bo dobrze znam składnię C++, która jest podobna, lecz ogranicza mnie wyobraźnia...

Mianowicie, chciałem zrobić sobie taką mini grę. Tzn rejestrujesz się, logujesz i masz jakąś tam postać, której możesz rozdać np 20 statystyk (np do siły, zręczności itp). Potem, wybierasz innego usera i walczysz z nim.
Stworzyłem (a raczej połączyłem 2 i przerobiłem lekko) system logowania i rejestrowania.
I tutaj zaczyna się problem.
Może po kolei. Tabela do logowania wygląda tak:
  1. CREATE TABLE `users` (
  2. `user_id` INT NOT NULL AUTO_INCREMENT ,
  3. `user_login` VARCHAR( 30 ),
  4. `user_haslo` VARCHAR( 32 ),
  5. PRIMARY KEY ( `user_id` )
  6. );


Podczas rejestracji, zapisywany jest login oraz zakodowane md5 hasło.
No i co dalej?
Myślę, że stworzyć tabelę np wojownik, w której będzie wojownik_id, user_id (z tabeli users), sila, zrecznosc etc...
I tu się już gubię... Nie wiem jak powiązać te tabele, tak, by jak ktoś zalogiuje się swoim loginem i haslem, zobaczył statystyki czyli nick, sila itp tylko swojego wojownika.
Tzn logując się by miał dostęp do swojej postaci i jej statystyk, które są zapisane w innej tabeli.
Nie wiem nawet jak wyświetlić owe statystyki przypisane do zalogowanego użytkownika.

Prosiłbym o pomoc, za którą bardzo bym podziękował.
Jeśli potrzeba, wrzucę kod wszystkich obecnych plików.

Ten post edytował batman 26.06.2008, 15:05:04
Powód edycji: poprawiłem temat
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
grzegosh
post
Post #2





Grupa: Zarejestrowani
Postów: 51
Pomógł: 3
Dołączył: 26.06.2008

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


Zrobiłem tak jak mówiłeś (mam nadzieję).
Nie byłem pewny tylko co do tego "$_SESSION['logowanie']" co napisałeś, chyba chodziło Ci o stworzenie w indexie $_SESSION['login'] i przekazanie jej wartości zmiennej $login, a potem sprawdzenie:
$wynik2 = mysql_query("SELECT * FROM wojownik WHERE login='".$_SESSION['login']."'");
tak?

Stworzyłem w indexie czyli w miejscu logowania zmienną sesji o nazwie login, przypisałem jej wartość w tym miejscu:
  1. <?php
  2. if($_SESSION["zalogowany"]!=1)
  3. {
  4. if(!empty($_POST["login"]) && !empty($_POST["haslo"]))
  5. {
  6. $login=$_POST["login"];
  7. $haselko=md5($_POST["haslo"]);
  8. if(mysql_num_rows(mysql_query("select * from users where user_login = '".htmlspecialchars($_POST["login"])."' AND user_haslo = '".htmlspecialchars($haselko)."'")))
  9. {
  10. echo "Zalogowano poprawnie. <a href='index.php'>Przejdź na stronę główną</a>";
  11. $_SESSION["zalogowany"]=1;
  12. $_SESSION["login"]=$login; //  --------------  TUTAJ  ------------- 
  13. }
  14. else echo formularz_logowania("Podano zle dane!!!");
  15. }
  16. else formularz_logowania();
  17. }
  18. ?>


Moj plik main.php gdzie mają być wypisywane statystyki wygląda teraz tak:
  1. <?php require("sprawdz.php"); ?>
  2.  
  3. <head>
  4. <title>tytul</title>
  5. <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
  6. </head>
  7.  
  8. <?
  9.  
  10. require('ustawienia.php'); // łączenie z Twoją bazą
  11. $wynik2 = mysql_query("SELECT * FROM wojownik WHERE login='".$_SESSION['login']."'");
  12. // pobieranie rekordów z tabeli wojownik według zalogowanego użytkownika
  13. $dane2 = mysql_fetch_array($wynik2);
  14.  
  15. $dane2['user_sila']; // pobrana wartość z rekordu user_sila
  16. $dane2['user_zycie']; // pobrana wartość z rekordu user_zycie
  17. ?>
  18.  
  19. <br><a href='index.php?wyloguj=tak'>wyloguj się</a>
  20. </body>
  21. </html>

No i gdy się rejestruję (oczywiscie podczas rejestracji wysyłam do bazy dane z id, loginem, siłą i zyciem jak pisałeś) i loguję potem, próbuję wejśc na main.php i wyskakuje taki błąd:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in sciezka/main.php on line 13

Trochę się już zagmatwałem :/
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 14:37