Nefunguje podmínka if ( nebo dotaz ) – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Nefunguje podmínka if ( nebo dotaz ) – PHP – Fórum – Programujte.comNefunguje podmínka if ( nebo dotaz ) – PHP – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Algon0
Newbie
6. 7. 2009   #1
-
0
-

Dobrý den,
narazil jsem na chybu, že mi nefunguje podmínka if ( nebo dotaz do DB, na kterém je podmínka závislá ), ale nemůžu příjít na to proč... ( Názvy prosím nekomentujte, nic lepšího jsem nevymyslel. )



// Tento dotaz načte úroveň budovy "Troop training center"

$controll = "SELECT troopttcenter FROM build WHERE playername = '".$_SESSION['username']."'; ";
$rc = mysql_query ( $controll );

// Zde se z vybraných informací vytvoří pole, příkaz echo se však už z nějakého důvodu nezobrazí, název tabulek apod. jsem kontroloval

$i = mysql_fetch_array( $rc );
echo $i['troopttcenter'];

// Toto je ta nefunkční podmínka. Pokud je úroveň budovy 0, zobrazí formulář pro stavbu, v opačném případě pro trénování vojsk - chyba je v tom, že se zobrazí pokaždé dialog pro stavbu.

if ( $i['troopttcenter'] == 0 ) { ?>

<H2>BARRACKS</H2>
<form action='barracks.php' method='post'>
<input type='submit' name='build' value='Build'>
</form>

<?php
} else { ?>
<pre>
<H2>Barracks</H2>
Here you can train swordmen.
<form action='barracks.php' method='post'>
Train <input type='text' name='trainsword'> swordmen.
<input type='submit' value='Train' name='swordsubmit'>
</form>
</pre>

<?php
}
?>


Předem děkuji za odpověd' a doufám, že byl ten kód přehledný.



Nahlásit jako SPAM
IP: 82.100.5.–
Reklama
Reklama
z_moravec
~ Redaktor
+3
Posthunter
6. 7. 2009   #2
-
0
-

Chyba bude evidentně v tom dotazu na databázi. Myslím, že v mysql_query() by neměl být ten středník na konci. Pomůže ti, když si za dotazem vypíšeš mysql_error().

Nahlásit jako SPAM
IP: 83.240.110.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
Kobi
~ Moderátor
+1
Věrný člen
6. 7. 2009   #3
-
0
-

zkus si za dotaz na databázi napsat " or die(mysql_error());", pokud dotaz není správně, vyhodí to chybu.

EDIT: předběhnul jsi mě :)

Nahlásit jako SPAM
IP: 83.240.25.–
Algon0
Newbie
6. 7. 2009   #4
-
0
-

Děkuju, ale když jsem napsal to or die ( mysql_error() ); , tak se mi tam objevila bílá stránka. :D

Nahlásit jako SPAM
IP: 82.100.5.–
Kobi
~ Moderátor
+1
Věrný člen
6. 7. 2009   #5
-
0
-

$rc = mysql_query ( $controll ) or die(mysql_error());

Nahlásit jako SPAM
IP: 83.240.25.–
Algon0
Newbie
6. 7. 2009   #6
-
0
-

No, vážně nechápu proč, ale začalo to fungovat, ani jsem se toho souboru nedotknul, jenom jsem si "hrál" s nějakým testovacím souborem, fakt to nechápu. Ten testovací soubor nefunguje, ale ten co jsem zde zmiňoval funguje.
Ale něco přesto nemůžu pochopit:

Toto je obsah testovacího souboru:

  <?php

include "connect.php";
$select = "SELECT * FROM build WHERE playername = '".$_SESSION['username']."' ; ";
$result = mysql_query( $select );

$array = mysql_fetch_array( $result );
echo $array['troopttcenter'];

?>


A hlásí mi to tohle:

Notice: Undefined variable: _SESSION in C:\wamp\www\test.php on line 3

Já mám dnes vážně divnej den...

Nahlásit jako SPAM
IP: 82.100.5.–
z_moravec
~ Redaktor
+3
Posthunter
6. 7. 2009   #7
-
0
-

Nemáš nastartované sessions. Před použitím je musíš spustit funkcí session_start().

Nahlásit jako SPAM
IP: 83.240.110.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
Algon0
Newbie
6. 7. 2009   #8
-
0
-

Děkuju, kvůli tý chybě jsem na to úplně zapomněl. Ale hlavně že to už funguje, i když nevím proč. :D

Nahlásit jako SPAM
IP: 82.100.5.–
DragonBehemont
~ Anonymní uživatel
383 příspěvků
7. 7. 2009   #9
-
0
-

To Algon : A už Ti to sem sice psali dvakrát, ale zopakuji to... v takto jednoduchých dotazech na databázi se nepoužívá středník na konci dotazu.

Nahlásit jako SPAM
IP: 212.77.163.–
OneBigFoot
~ Anonymní uživatel
1 příspěvek
7. 7. 2009   #10
-
0
-

To DragonBehemont : Proč se středník na konci nepoužíva?? Snižuje to výkon databáze? Je to syntakticky špatně?

Nahlásit jako SPAM
IP: 89.102.145.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 46 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý