definícia premenných + podmienky

ako mám zapísať

if ($_GET['d']==1);
{define ($max, "147");
define ($next, "2");
define ($back, "9");
define ($current, "1");};
elseif ($_GET['d']==2);
{define ($max, "71");
define ($next, "3");
define ($back, "1");
define ($current, "2");};


čiže keď je d=1 tak max=147, next=2.......
a keď je d=2 tak max=71, next=3 .......
S těma středníkama to nepřeháněj. Neplatí pravidlo, že co řádek, to středník.
Někde jsou výjimky a jedna z nich je v podmínkách. Středník je znak, který značí konec jednoho příkazu, ne řádku.

Takže zápis if ($_GET['d']==1); říká, že má vyhodnotit podmínku $_GET['d']==1. A pokud je pravdivý, tak provede příkaz uvnitř složených závorek. Ale ouha! Ono tam žádné složené závorky nejsou. Tak není co provádět.
Ale ona tam složená závorka je? To ano, ale už jen jako blok, který neovlivňuje podmínku, protože není jeho součásti. Podmínku a blok jsi totiž oddělil právě tím středníkem. Takže tam máš vlastně dva příkazy. Podmínka samotná je jen if ($_GET['d']==1); Ostatní jsou další příkazy, které už nepodléhají podmínce.

Správně má tedy být:

if ($_GET['d']==1)
{
define ($max, "147");
define ($next, "2");
define ($back, "9");
define ($current, "1");
}
elseif ($_GET['d']==2)
{
define ($max, "71");
define ($next, "3");
define ($back, "1");
define ($current, "2");
};
<HTML>Navážu na Tomíka.

Druhou věcí je použití příkazu define. S ním se definují konstanty a parametrem příkazu define je název konstanty a obsah. Předpokládám, že v proměnných $max, $next, $back a $current máš nějaké názvy konstant. Konstanty v PHP se pak používají podobně jako proměnné, jen se před nimi nepíše $. Lze tedy udělat:

define("CURRENT", "147");

Což nadefinuje konstantu s názvem CURRENT a s hodnotou "147". Mohu ji pak použít:

<code>
$x = CURRENT;
</code>

Nádhera, ale hodnoty konstant nelze za běhu skriptu měnit a jsou příliš globální. Troufám si odhadnout, že konstanty v tvém případě nemusejí být to pravé ořechové a že se mohou hodit spíše proměnné. Ty se označují $ na začátku a není třeba je v PHP nijak definovat. Prostě první použití = vytvoření proměnné. Pak lze tvůj kód přepsat takto:

<code>
if ($_GET['d']==1)
{
$max = "147";
$next = "2";
$back = "9";
$current = "1";
}
elseif ($_GET['d']==2)
{
$max = "71";
$next = "3";
$back = "1";
$current = "2";
};
</code>

Ale pořád to ještě nebude pravé ořechové - ono to teď sice fungovat bude, ale já nemám rád zbytečné vytváření řetězců, když míním zmíněné proměnné použít jako číselné. Pak tedy usoudím, že uvozovky okolo těch čísel jsou zbytečné...

<code>
if ($_GET['d']==1)
{
$max = 147;
$next = 2;
$back = 9;
$current = 1;
}
elseif ($_GET['d']==2)
{
$max = 71;
$next = 3;
$back = 1;
$current = 2;
};
</code>

Doporučuju nastudovat si něco o PHP, zejména o základní syntaxi. Bez toho nelze v PHP tvořit:

<a href="http://www.linuxsoft.cz/article.php?id_article=176">
Seriál o PHP na LinuxSoftu</a> - česky
<a href="http://www.php.net/manual/en/langref.php">
http://www.php.net/manual/en/langref.php</a> - anglicky, ale oficiální dokumentace; bohužel dost uklikaná a pro začátečníky nepříliš vhodně uspořádaná.</HTML>