Witam. Mam problem z zapytaniem. Otóż napisałem kod, który odpowiada za losowanie, a potem wyświetlanie oraz wykonywanie skryptu. Wygląda to tak:
<?php
include 'includes/config.php';
/********************************************************************************
**************************************
Tu sš zmienne, które przechowujš teksty w piwnicy***********************************************************************
********************************************************************************
**************************************/
$a1 = 'Wylosowałeś opcję pierwszą. Doda Ci ona jeden knut<br /><a href="gra.php?act=lokacja&miejsce=piwnica&akcja=idzie" />Idz dalej</a>';
$a2 = 'Wylosowałeś opcję drugą. Doda Ci ona dwa knuty<br /><a href="gra.php?act=lokacja&miejsce=piwnica&akcja=idzie" />Idz dalej</a>';
/********************************************************************************
**************************************
Tu są zmienne, które przechowują zapytania w piwnicy********************************************************************
********************************************************************************
**************************************/
$b1 = 'UPDATE uzytkownicy SET zloto = zloto + 1, energia = energia - 5 WHERE id = '.$_SESSION['id'].'';
$b2 = 'UPDATE uzytkownicy SET zloto = zloto + 2, energia = energia - 5 WHERE id = '.$_SESSION['id'].'';
/********************************************************************************
**************************************
Cały kod piwnicy*************************************************************************
******************************
********************************************************************************
**************************************/
if (isset($_GET['akcja']) && $_GET['akcja'] == 'idzie') {
if ($players -> energia < 5)
{
$tekst = 'Niestety, ale nie możesz wykonywać tej czynności ponieważ Twoja postać nie posiada wystarczającej ilości energii';
}
else
if ($players -> zycie == 0)
{
$tekst = 'Niestety, ale nie możesz wykonywać tej czynności ponieważ Twoja postać jest martwa';
}
else
{
$rand = rand(1
,2
); //losowanie liczby z podanego zakresu $tekst = ${'a'.$rand}; //wyświetlanie wylosowanego tekstu
$sql = ${'b'.$rand};
}
}
else
{
$tekst = 'Jesteś w piwnicy<br /><a href="gra.php?act=lokacja&miejsce=piwnica&akcja=idzie" />Wejdź do piwnicy</a>';
}
?>
Niestety, ale jest jakiś problem z zapytaniem do bazy, ponieważ wykonuje się ono podwójnie lub potrójnie-różnie. Nie wiem jaka jest tego przyczyna. Proszę o pomoc.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Dodaje to, ponieważ pewna osoba podsuneła mi, że to może chodzić o inne pliki, które to includują. I dlatego się zapętla. A więc wszystko zawarte jest tak:
dom.php-to odpowiada za zaincludowanie odpowiedniego pliku:
<?php
$miejsce_dom = $_GET['miejsce'];
$miejsce_pages_dom= array('piwnica'); if(in_array($miejsce_dom,$miejsce_pages_dom)){ include 'gra/lokacje/dom/'.$miejsce_dom.'.php';
}
else{
$tekst = '
Tutaj będzie opis lokacji zwanej Dom, tylko ktoś go musi zrobić.<br /><br />
<table>
<tr>
<td width="150" valign="top"><b><u>Piwnica</u></b><br />
<a href="gra.php?act=lokacja&miejsce=piwnica">Piwnica</a>
<br /></td>
<td width="150" valign="top"><b><u>Parter</u></b><br />
<a href="gra.php?act=lokacja&miejsce=salon">Salon</a>
<br /></td>
<td width="150" valign="top"><b><u>1 piętro</u></b><br />
<a href="gra.php?act=lokacja&miejsce=sypialnia">Sypialnia</a>
<br /></td>
</tr>
<tr>
<td width="150" valign="top"><b><u>Strych</u></b><br />
<a href="gra.php?act=lokacja&miejsce=strych">Strych</a>
<br /></td>
<br /></td>
</table>
';
}
?>
lokacja.php-to sprawdza jaką mamy lokację i includuje właściwą(np.dom.php):
<?php
$lokacje = array('dom' => "lokacje/dom.php", 'londyn' => "lokacje/londyn.php");
require $lokacje[$lokacja];
}
else{
$tekst = 'Lokacja nie istnieje!<br /><br /><br /><br />';
}
?>
A plik gra.hp-on wszystko includuje. Zawiera w sobie takie cos:
<?php
include 'gra/'.$act.'.php';
}
else{
if(isset($_SESSION['login'])){ $tekst = 'jestes zalogowany';
}
else{
header("Location: index.php"); }
}
?>
A potem dalej w kodzie jest echo $tekst;
No i nie wiem co powoduje te zapętlanie? Proszę o pomoc!
Ten post edytował ArekJ 31.12.2008, 14:12:01