Autor Zpráva
DreadDeath
Profil *
Zkoušel jsem udělat něco, jako u webových her - myslím zvyšování úrovně budov, jenže mám pořád jeden problém, když uživatel klikne na Zvýšit úroveň, nic se nestane, musí kliknout ještě jednou, prosím poraďte, co s tím???

Tady je kód, všiměte si hlavně spodní části:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml-1transitional.dtd">


<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='cs' lang='cs'>

<head>
<meta http-equiv="content-language" content="cs" />
<meta http-equiv="content-type" content="text/html; charset=windows-1250" />
<meta name="author" content="Vincenzo (Michal Krča)" />
<meta name="description" content="vše o kriminálce las vegas, miami a new york" />
<meta name="keywords" content="csi, kriminálka, las vegas, miami, new york, crime scene

investigation" />
<meta name="robots" content="index,follow" />

<meta name="googlebot" content="index,follow,snippet,archive" />
<title>CSI fan web - vše o kriminálce Las Vegas, Miami a New York - CSI.wz.cz</title>
</head>

<body>
<?
if ($_SERVER["SERVER_ADDR"]=="localhost")
{
define("SQL_HOST","localhost");
define("SQL_DBNAME","database");
define("SQL_USERNAME","user");
define("SQL_PASSWORD","password");
}
else
{
define("SQL_HOST","mysql.webzdarma.cz");
define("SQL_DBNAME","csi61");
define("SQL_USERNAME","csi61");
define("SQL_PASSWORD","slipknot");
}
mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD);
mysql_select_db(SQL_DBNAME);
$vysledek=mysql_query("select * from uzivatel");
if ($zaznam=MySQL_Fetch_Array($vysledek)):

$uroven=$zaznam["uroven"];
$penize=$zaznam["penez"];
endif;
function Hlavni()
{
global $uroven;
if ($uroven==1)
echo "<h1>Město - úroveň 1</h1><a href="http://csi.wz.cz/images/csi_lasvegas2.jpg"><img

src="http://csi.wz.cz/images/csi_lasvegas2_small.jpg" width="150" alt="Las Vegas - UBISOFT

(2)" /></a><br />";
elseif ($uroven==2)
echo "<h1>Město - úroveň 2</h1><a

href="http://csi.wz.cz/images/csi_lasvegas1.jpg"><img

src="http://csi.wz.cz/images/csi_lasvegas1_small.jpg" width="150" alt="Las Vegas - UBISOFT

(2)" /></a><br />";
elseif ($uroven==3)
echo "<h1>Město - úroveň 3</h1><a

href="http://csi.wz.cz/images/csi_lasvegas1.jpg"><img

src="http://csi.wz.cz/images/wall_miami01_small.jpg" width="150" alt="Las Vegas - UBISOFT

(2)" /></a><br />";
else
echo "<h1>Město ještě není vybudováno</h1>";
}

Hlavni();

echo "Máte Grošů: <b>".$penize."</b><br />";
function Mesto()
{
global $uroven;
global $penize;
if ($uroven==0 && $penize>=100)
echo "<a href="mesto.php?up=1">Založit vesnici</a>";
elseif ($uroven==1 && $penize>=500)
echo "<a href="mesto.php?up=2">Zvýšit na úroveň 2</a>";
elseif ($uroven==2 && $penize>=750)
echo "<a href="mesto.php?up=3">Zvýšit na úroveň 3</a>";
elseif ($uroven==3)
echo "Město již nelze upravovat.";
else
echo "Nemáte dostatek peněz";
}
Mesto();

if ($_GET["up"]=="1" && $uroven==0):
mysql_query("update uzivatel set uroven = 1, penez = $penize-100");
$vysledek=mysql_query("select uroven from uzivatel");
$zaznam=mysql_fetch_array($vysledek);
$celkem=$zaznam["uroven"];
elseif ($_GET["up"]=="2" && $uroven==1):
mysql_query("update uzivatel set uroven = 2, penez = $penize-500");
$vysledek=mysql_query("select uroven from uzivatel");
$zaznam=mysql_fetch_array($vysledek);
$celkem=$zaznam["uroven"];
elseif ($_GET["up"]=="3" && $uroven==2):
mysql_query("update uzivatel set uroven = 3, penez = $penize-750");
$vysledek=mysql_query("select uroven from uzivatel");
$zaznam=mysql_fetch_array($vysledek);
$celkem=$zaznam["uroven"];
else:
echo "";
endif;
?>
Peca
Profil
Nejdřív zaktualizuj databázi a pak teprve posílej výsutp.
Příkazy typu $a=4; echo $a; $a+=10; moc nedávají smysl.
DreadDeath
Profil *
Nejdřív zaktualizuj databázi a pak teprve posílej výsutp.
Příkazy typu $a=4; echo $a; $a+=10; moc nedávají smysl.


Dík a nemohl bys mi please říct jak to mám udělat??

Kdyžtak napiš část kódu.
Joker
Profil
DreadDeath
Jen poznámka: Není moc dobrý nápad nechávat ve skriptu přihlašovací údaje na WZ (pokud jsou pravé)
DreadDeath
Profil *
Jen poznámka: Není moc dobrý nápad nechávat ve skriptu přihlašovací údaje na WZ (pokud jsou pravé)
Nejsou ;-)
Peca
Profil
Co je nepochopitelného na pojmech "zaktualizovat databázi" a "poslat výstup"? Jsi vůbec autorem toho PHP kódu?
DreadDeath
Profil *
Co je nepochopitelného na pojmech "zaktualizovat databázi" a "poslat výstup"? Jsi vůbec autorem toho PHP kódu?

Sem, ale trochu hodně jsem přeskakoval v lekcích :-(
Peca
Profil
Tak se vrať a nepřeskakuj... Radši začni s něčím jednodušším.
DreadDeath
Profil *
Tak se vrať a nepřeskakuj... Radši začni s něčím jednodušším.

To udělám, ale co když to nezvládnu i tak? Co když se to neučí?
DreadDeath
Profil *
Tak se vrať a nepřeskakuj... Radši začni s něčím jednodušším.

Ale i tak, mi prosím napiš jak to má být :-)
Peca
Profil
Najdi si řádky, které mění něco v databázi, a dej je před ty, které něco vypisují.
Zkus napsat na papír číslo 5 a pak ho zvyš o 3. Jde to? Není lepší sečíst 5+3 a napsat 8?
DreadDeath
Profil *
No jo, ale to už sem zkoušel a taky to nejde :-(
TCH
Profil
Prostě jde o to že když máš třeba:

$a = 4;

echo $a;
$a += 10;


Tak to předěláš na:


$a = 4
$a += 10
echo $a;


Aby se ta hodnota vypsala už upravená.
DreadDeath
Profil *
No asi vím co myslíte, ale mám v tom trochu bordel (myslím ten kód).
Zkoušel jsem to a opět to nejde, musím kliknout na aktualizovat anebo kliknout ještě jednou :-( :


mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD);
mysql_select_db(SQL_DBNAME);
$vysledek=mysql_query("select * from uzivatel");
if ($zaznam=MySQL_Fetch_Array($vysledek)):

$uroven=$zaznam["uroven"];
$penize=$zaznam["penez"];
endif;
if ($_GET["up"]=="1" && $uroven==0):
mysql_query("update uzivatel set uroven = 1, penez = $penize");
$vysledek=mysql_query("select uroven from uzivatel");
$zaznam=mysql_fetch_array($vysledek);
$celkem=$zaznam["uroven"];
elseif ($_GET["up"]=="2" && $uroven==1):
mysql_query("update uzivatel set uroven = 2, penez = $penize");
$vysledek=mysql_query("select uroven from uzivatel");
$zaznam=mysql_fetch_array($vysledek);
$celkem=$zaznam["uroven"];
elseif ($_GET["up"]=="3" && $uroven==2):
mysql_query("update uzivatel set uroven = 3, penez =

$penize-750");
$vysledek=mysql_query("select uroven from uzivatel");
$zaznam=mysql_fetch_array($vysledek);
$celkem=$zaznam["uroven"];
else:
echo "";
endif;

function Hlavni()
{
global $uroven;
if ($uroven==1)
echo "<h1>Město - úroveň 1</h1><a

href="http://csi.wz.cz/images/csi_lasvegas2.jpg"><img
src="http://csi.wz.cz/images/csi_lasvegas2_small.jpg" width="150"

alt="Las Vegas - UBISOFT

(2)" /></a><br />";
elseif ($uroven==2)
echo "<h1>Město - úroveň 2</h1><a

href="http://csi.wz.cz/images/csi_lasvegas1.jpg"><img

src="http://csi.wz.cz/images/csi_lasvegas1_small.jpg" width="150"

alt="Las Vegas - UBISOFT

(2)" /></a><br />";
elseif ($uroven==3)
echo "<h1>Město - úroveň 3</h1><a

href="http://csi.wz.cz/images/csi_lasvegas1.jpg"><img

src="http://csi.wz.cz/images/wall_miami01_small.jpg" width="150"

alt="Las Vegas - UBISOFT

(2)" /></a><br />";
else
echo "<h1>Město ještě není vybudováno</h1>";
}

Hlavni();

echo "Máte Grošů: <b>".$penize."</b><br />";
function Mesto()
{
global $uroven;
global $penize;
if ($uroven==0 && $penize>=100)
echo "<a href="mesto.php?up=1">Založit vesnici</a>";
elseif ($uroven==1 && $penize>=500)
echo "<a href="mesto.php?up=2">Zvýšit na úroveň 2</a>";
elseif ($uroven==2 && $penize>=750)
echo "<a href="mesto.php?up=3">Zvýšit na úroveň 3</a>";
elseif ($uroven==3)
echo "Město již nelze upravovat.";
else
echo "Nemáte dostatek peněz";
}
Mesto();
?>
Peca
Profil
Někteří lidi jsou nepoučitelní...
Kde máš řádek $uroven=$zaznam["uroven"]; ?
DreadDeath
Profil *
Kde máš řádek $uroven=$zaznam["uroven"]; ?
To má být podtím :-D ?
Peca
Profil
Pořád to stejné. Něco si uložíš do proměnné, změníš údaje v databázi a pak tu proměnnou vypíšeš. Zkus všechno smazat a dělat to od začátku, třeba to bude lepší.
Toto téma je uzamčeno. Odpověď nelze zaslat.