Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX][MySQL][PHP]Problem z skryptem misji.
Forum PHP.pl > Forum > Przedszkole
MeGusta
Witam, mam problem z konstrukcją skryptu, nie wiem jakby to miało wyglądać. Dokładniej chodzi mi o to że gracz przyjmuje w zakładce misje o np. id 1 i co dalej? jak mam to zapisac w bazie? co dalej z tym zrobić? Nie chodzi mi o skrypt lecz o naprowadzenie, konstrukcje bazy lub sam pomysł co gdzie i w jaki sposób zapisywać i odpytywać.
Fred1485
No masz już id i co chcesz dokładnie osiągnąć w tej twojej grze?
MeGusta
Chodzi mi o to załóżmy, mam questa w bazie danych wyswietam go sobie gdzies w swojej grze, i w momecie klikniecia przyjmij co ma się dziać? jak mam zapisać to w bazie ze dany gracz przyjął danego questa i ma zrobić to i to.
Fred1485
Jeśli dobrze cie rozumiem to możesz mieć dodatkową kolumnę 'przyjety' przechowującą wartosci 0 lub 1 i w zależności czy gracz przyjął to co mial na ekranie i sobie to aktualizować.
MeGusta
Tak, tylko jeżeli tego samego questa przyjmie kilka osób lub jedna osoba kilka questów to co wtedy?
Fred1485
No to najprościej zrób sobie osobną tabelę w bazie i do kazdego id questa przypisuj id osoby i juz. Jesli jakies inne lepsze rozwiązanie ktoś doświadczony ma to mnie poprawi
MeGusta
Mam w jednej tabelce questy, w drugiej dane gracza. Wyglądało by to w ten sposób że w np. przy quescie o id 1 obok będzie w przyjetych id uzytkowników po przecinku czy jak?
Fred1485
Nie bo kłóci sie to z 1nf (niatomowe wartości bys miał) zrobisz osoba tabele i przy id questa będziesz przypisywać id gracza jesli oczywiście przyjmie quest. Przy sprawdzaniu czy gracz przyjął questa sprawdzisz tylko czy jest w bazie id danego questa powiązane z id gracza.
MeGusta
Mógłbys dać przykład zapytania przyjęcia takowego questa?
Fred1485
Od początku biggrin.gif

przykładowo tabela gracze:

id|imie|nick

tabela questy:

id|opis

tabela powiazania:

id|quest_id|gracz_id

pobierasz dane questa którego cchesz wyświetlić dla gracza i wywalasz na ekran, jeśli przyjmie to aktualizujesz tabelę powiazania

  1. INSERT INTO powiazania VALUES(NULL, id_quest, id_gracza)


I dla każdego gracza masz wygodny sposób zapisu danych, jeśli chcesz sprawdzić czy dany gracz przyjął quest to zapytanie w stylu:

  1. SELECT gracz.nick, quest.opis FROM gracze, questy, powiazania WHERE quest_id.powiazania = 2 AND gracz_id.powiazania = 55 AND quest_id.powiazania = id.questy AND gracz_id.powiazania = id.gracze


Zapytania pisane z palca i raczej do poprawki drobnej (niestety też się uczę i mój poziom nie imponuje) ale główny zarys już masz wink.gif
MeGusta
Mógłby ktoś poprawić ten skrypt?
Fred1485
Jeśli szukasz gotowca to raczej nikt ci go tu nie napisze wink.gif Głowny zarys ci podałem i teraz musisz sam sobie pod siebie poprawić w zaleznosci od danych w bazie i innych czynników wink.gif
MeGusta
Nie chcę gotowaca, chce jedynie poprawny przykład. Jak to dobrze i w miare optymalnie zrobić.
nospor
Cytat
chce jedynie poprawny przykład.
Dostales przyklad od Freda. W czym wiec masz nadal problem?
MeGusta
Czy robię to w poprawny sposób? Jeśli nie to prosze powiedzieć jak sprawdzac czy dany przycisk do przyjecia misji został nacisciety.

  1. echo "<td>"."<a href='?s=misje&przyjmij&id=".$q['id']."'>Przyjmij</a>"."</td>";
  2.  
  3. if (isset($_GET['przyjmij'])) {
  4. // to sie wykona zapytanie przyjmowania
  5. }
  6.  
nospor
warto ustawic wartosc dla przyjmij:
&przyjmij=1

poza tym reszta ok.
MeGusta
Jeszcze ostatnie pytanko, jak mogę przekazać id kliknietego questa do zapytania?
nospor
Jak każdą zmienną do tekstu... to są podstawy php. Skoro sie bierzesz za robienie gry, to wypadaloby je poznac.
Lektura obowiązkowa: manual php

  1. $id = (int)$_GET['id'];
  2. $sql = 'blabla id='.$id.' dalsza czesc blabla';
MeGusta
// rozwiazane
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.