Autor | Zpráva | ||
---|---|---|---|
alan Profil * |
#1 · Zasláno: 9. 8. 2010, 20:31:13
ahoj,tak zase píšu:D
mám php script,který má za ukol vypsat z databáze jmeno,rasu,prostě to co tam je,to se dozvíte tady dole. mno,a píše mě to chybu... Parse error: syntax error, unexpected ',' in /var/www/sub/l2/page/toppvp.php on line 16 ten script vypadá takto <?php function connect() { include "configs/script_config.php"; } $query_chars = "select char_name,pvpkills,clanid from characters WHERE accesslevel=0 AND pvpkills >= 1 order by pvpkills desc limit 100;"; echo ' <center>..:: TOP PK ::..</center> '; echo "<table><thead><tr><th>Place</th><th>Face</th><th><center>Nick</center></th><th>Level</th><th> <center>Proffesion</center></th><th><center>Clan</center></th><th>Pvp/PK</th><th><center>Time in Game</center></th><th>Status</th><tr></thead>\n"; $query = ("SELECT clan_id,clan_name FROM clan_data", $link) or die ("Error: ".mysql_error()); while ($row2=mysql_fetch_row($result2)) $clans_array[$row2[0]]=$row2[1]; $clans_array[0]=""; $n=1; while ($top=mysql_fetch_array($data)) { $onlinetimeH=round(($top[onlinetime]/60/60)-0.5); $onlinetimeM=round(((($top[onlinetime]/60/60)-$onlinetimeH)*60)-0.5); $clan=mysql_fetch_array(mysql_query("select * from clan_data where clan_id=$top[clanid]")); if ($clan[clan_name]=='') { $clan[clan_name]="No Clan"; } if ($top['sex']==0) { $name='<font color=#8080FF>'.$top[char_name].'</font>'; } else { $name='<font color=#FF8080>'.$top[char_name].'</font>'; } $class=mysql_fetch_array(mysql_query("select ClassName from char_templates where ClassId=$top[classid]")); if (($top['sex']==0) && ($top['race']==4)) { $img='./face/dwarf_male.gif'; } if (($top['sex']==1) && ($top['race']==4)) { $img='./face/dwarf_female.gif'; } if (($top['sex']==0) && ($top['race']==2)) { $img='./face/darkelf_male.gif'; } if (($top['sex']==1) && ($top['race']==2)) { $img='./face/darkelf_female.gif'; } if (($top['sex']==0) && ($top['race']==0)) { $img='./face/human_male.gif'; } if (($top['sex']==1) && ($top['race']==0)) { $img='./face/human_female.gif'; } if (($top['sex']==0) && ($top['race']==1)) { $img='./face/elf_male.gif'; } if (($top['sex']==1) && ($top['race']==1)) { $img='./face/elf_female.gif'; } if (($top['sex']==0) && ($top['race']==3)) { $img='./face/orc_male.gif'; } if (($top['sex']==1) && ($top['race']==3)) { $img='./face/orc_female.gif'; } if ($top['online']==1) {$online='<font color=green>Online</font>'; } else {$online='<font color=red>Offline</font>'; } echo "<tr><td><center>$n</center></td><td><img src='$img'></td><td> $name</td><td><center> $top[level]</center></td><td><center>$class[ClassName]</center></td><td><center><a href=index.php?d=module&p=clantop>$clan[clan_name][/url]</center> </td><td><center>$top[pvpkills]/<font color=red>$top[pkkills]</font></center></td><td><center>$onlinetimeH Hours $onlinetimeM min.</center></td><td>$online</td></tr>\n"; $n++; } echo '</table>'; ?> tudíž,chyba vypadá takto: $query = ("SELECT clan_id,clan_name FROM clan_data", $link) zkoušel jsem místo query dát i $result2 = mysql_query ale nejde.. jinac db mám takovou.. <?php $db_user = "root"; $db_pass = "pass"; $db_name = "l2jdb"; $db_serv = "host"; $res = mysql_connect ( $db_serv, $db_user, $db_pass ) or die ("Nepripoji se do databaze: [$db_serv]"); $resdb = mysql_select_db ( "$db_name",$res ); return $res; ?> nevíte kde mám chybu? |
||
Keeehi Profil |
#2 · Zasláno: 9. 8. 2010, 20:48:03
$query = "SELECT clan_id,clan_name FROM clan_data"; $vysledek = mysql_query($query,$link); Co třeba nějak takto? |
||
PostCC Profil |
#3 · Zasláno: 9. 8. 2010, 20:49:05
Nejspíš to bude tím, že na tom řádku chybí nějaká funkce. Například MYSQL_QUERY, ve finále tedy:
$query = mysql_query("SELECT clan_id,clan_name FROM clan_data", $link) or die ("Error: ".mysql_error()); |
||
alan Profil * |
#4 · Zasláno: 9. 8. 2010, 20:58:19
nejde ani jedno,
u Keeehi to píše: Parse error: syntax error, unexpected T_LOGICAL_OR in /var/www/sub/l2/page/toppvpll.php on line 18 a u PostCC to píše: Parse error: syntax error, unexpected T_LOGICAL_OR in /var/www/sub/l2/page/toppvpll.php on line 17 takže furt samá chyba, $query = ("SELECT clan_id,clan_name FROM clan_data", $link) |
||
PostCC Profil |
#5 · Zasláno: 9. 8. 2010, 21:14:41
Dobře, znovu a pomaleji. Toto celé:
$query = ("SELECT clan_id,clan_name FROM clan_data", $link) or die ("Error: ".mysql_error()); nahraďte tímto: $query = mysql_query("SELECT clan_id,clan_name FROM clan_data", $link) or die ("Error: ".mysql_error()); |
||
alan Profil * |
#6 · Zasláno: 9. 8. 2010, 21:46:50
ok,tak změna, ted mě to napsalo:
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /var/www/sub/l2/page/toppvpll.php on line 16 Error: což v php je to cosme upravily...toto $query = mysql_query("SELECT clan_id,clan_name FROM clan_data", $link) or die ("Error: ".mysql_error()); http://l2.k3s4.sk/page/toppvpll.php |
||
Keeehi Profil |
#7 · Zasláno: 9. 8. 2010, 21:55:10
$link zaměň za $res
|
||
Medvídek Profil |
#8 · Zasláno: 9. 8. 2010, 22:00:57
$query = ("SELECT clan_id,clan_name FROM clan_data", $link) |
||
PostCC Profil |
#9 · Zasláno: 9. 8. 2010, 22:02:27
Mám doplňující dotazy - odkud se berou proměnné $link, $result2 a $data? Buď nám tu neukazujete podstatný kód, nebo jde o balast, slepený z různě nalezených kousků scriptů bez vědomí o jejich funkcionalitě.
|
||
alan Profil * |
#10 · Zasláno: 9. 8. 2010, 22:07:31
Keeehi:
pořád nic..změnil jsem to na res a nejde to,hlasi to tu samou chybu |
||
Keeehi Profil |
#11 · Zasláno: 9. 8. 2010, 22:23:12
A máte na začátku toho scriptu toto?
$db_user = "root"; $db_pass = "pass"; $db_name = "l2jdb"; $db_serv = "host"; $res = mysql_connect ( $db_serv, $db_user, $db_pass ) or die ("Nepripoji se do databaze: [$db_serv]"); $resdb = mysql_select_db ( "$db_name",$res ); jinak v prvním příspěvku za tím máte ještě return $res; což tam být nemá, pokud to není uvnitř funkce. Pokud to je uvnitř funkce, zavolal jste tuto funkci na začátku. pokud to stále nepůjde, zkuste $query = mysql_query("SELECT clan_id,clan_name FROM clan_data") or die ("Error: ".mysql_error()); - je tam vynechán 2. parametr protože je nepovinný.
|
||
alan Profil * |
#12 · Zasláno: 9. 8. 2010, 22:43:58
tak,skusil jsem oboje a furt nejde,
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /var/www/sub/l2/page/toppvpll.php on line 20 Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/sub/l2/page/toppvpll.php on line 24 což je: chyba na 20 řádku: while ($row2=mysql_fetch_row($result2)) a 24: while ($top=mysql_fetch_array($data)) |
||
Keeehi Profil |
#13 · Zasláno: 9. 8. 2010, 22:50:13
alan:
Dej sem i kus kódu okolo. Hlavně tu část kde je $result2=mysql_query(…); a $data=mysql_query(…); |
||
alan Profil * |
#14 · Zasláno: 9. 8. 2010, 22:52:50
<?php $query_chars = "select char_name,pvpkills,clanid from characters WHERE accesslevel=0 AND pvpkills >= 1 order by pvpkills desc limit 100;"; echo '<br><center><b>..:: TOP PK ::..</b></center><br><hr>'; echo "<table><thead><tr><th>Place</th><th>Face</th><th><center>Nick</center></th><th>Level</th><th> <center>Proffesion</center></th><th><center>Clan</center></th><th>Pvp/PK</th><th><center>Time in Game</center></th><th>Status</th><tr></thead>\n"; $query = mysql_query("SELECT clan_id,clan_name FROM clan_data") or die ("Error: ".mysql_error()); while ($row2=mysql_fetch_row($result2)) $clans_array[$row2[0]]=$row2[1]; $clans_array[0]=""; $n=1; while ($top=mysql_fetch_array($data)) { .... |
||
Medvídek Profil |
#15 · Zasláno: 9. 8. 2010, 22:56:17 · Upravil/a: Medvídek
alan:
Pořád si nenapsal, kde se bere $row2=mysql_fetch_row($result2) a $top=mysql_fetch_array($data) |
||
alan Profil * |
#16 · Zasláno: 9. 8. 2010, 23:12:09
dám sem celej script...
<?php $db_user = "root"; $db_pass = "heslo"; $db_name = "l2jdb"; $db_serv = "host"; $res = mysql_connect ( $db_serv, $db_user, $db_pass ) or die ("Nepripoji se do databaze: [$db_serv]"); $resdb = mysql_select_db ( "$db_name",$res ); ?> <?php $query_chars = "select char_name,pvpkills,clanid from characters WHERE accesslevel=0 AND pvpkills >= 1 order by pvpkills desc limit 100;"; echo '<br><center><b>..:: TOP PK ::..</b></center><br><hr>'; echo "<table><thead><tr><th>Place</th><th>Face</th><th><center>Nick</center></th><th>Level</th><th> <center>Proffesion</center></th><th><center>Clan</center></th><th>Pvp/PK</th><th><center>Time in Game</center></th><th>Status</th><tr></thead>\n"; $query = mysql_query("SELECT clan_id,clan_name FROM clan_data") or die ("Error: ".mysql_error()); while ($row2=mysql_fetch_row($result2)) $clans_array[$row2[0]]=$row2[1]; $clans_array[0]=""; $n=1; while ($top=mysql_fetch_array($data)) { $onlinetimeH=round(($top[onlinetime]/60/60)-0.5); $onlinetimeM=round(((($top[onlinetime]/60/60)-$onlinetimeH)*60)-0.5); $clan=mysql_fetch_array(mysql_query("select * from clan_data where clan_id=$top[clanid]")); if ($clan[clan_name]=='') { $clan[clan_name]="No Clan"; } if ($top['sex']==0) { $name='<font color=#8080FF>'.$top[char_name].'</font>'; } else { $name='<font color=#FF8080>'.$top[char_name].'</font>'; } $class=mysql_fetch_array(mysql_query("select ClassName from char_templates where ClassId=$top[classid]")); if (($top['sex']==0) && ($top['race']==4)) { $img='./face/dwarf_male.gif'; } if (($top['sex']==1) && ($top['race']==4)) { $img='./face/dwarf_female.gif'; } if (($top['sex']==0) && ($top['race']==2)) { $img='./face/darkelf_male.gif'; } if (($top['sex']==1) && ($top['race']==2)) { $img='./face/darkelf_female.gif'; } if (($top['sex']==0) && ($top['race']==0)) { $img='./face/human_male.gif'; } if (($top['sex']==1) && ($top['race']==0)) { $img='./face/human_female.gif'; } if (($top['sex']==0) && ($top['race']==1)) { $img='./face/elf_male.gif'; } if (($top['sex']==1) && ($top['race']==1)) { $img='./face/elf_female.gif'; } if (($top['sex']==0) && ($top['race']==3)) { $img='./face/orc_male.gif'; } if (($top['sex']==1) && ($top['race']==3)) { $img='./face/orc_female.gif'; } if ($top['online']==1) {$online='<font color=green>Online</font>'; } else {$online='<font color=red>Offline</font>'; } echo "<tr><td><b><center>$n</center></b></td><td><img src='$img'></td><td> $name</td><td><center> $top[level]</center></td><td><center>$class[ClassName]</center></td><td><center><a href=index.php?d=module&p=clantop>$clan[clan_name]</a></center> </td><td><center><b>$top[pvpkills]</b>/<b><font color=red>$top[pkkills]</font></b></center></td><td><center>$onlinetimeH Hours $onlinetimeM min.</center></td><td>$online</td></tr>\n"; $n++; } echo '</table>'; ?> |
||
Keeehi Profil |
#17 · Zasláno: 9. 8. 2010, 23:14:43
Medvídek:
Ono to bude tím, že je tam prostě asi nemá, proto jsem je po něm také chtěl. alan: obecně kód pro vytažení dat z databáze může vypadat třeba takto: $link = mysql_connect ("host","root","pass") or die ("Nepripoji se do databaze:"); mysql_select_db ("l2jdb",$link); $dotaz = "SELECT * FROM taulka;"; // v proměnné $dotaz je teď dotaz, je to však jenom řetězec, takže se zatím nic neděje $vysledek = mysql_query($dotaz,$link); //tímto jsme se mysql dotázali dotazem, který byl uložený v proměnné $dotaz a mysql nám "vrátila" výsledek. //teď je data potřeba nějak vydolovat //způsob č. 1 $radek = mysql_fetch_row($vysledek); echo "první sloupec: ".$radek[0]." druhý sloupec: ".$radek[1]."<br>\n"; // první řádek výsledku $radek = mysql_fetch_row($vysledek); echo "první sloupec: ".$radek[0]." druhý sloupec: ".$radek[1]."<br>\n"; // druhý řádek výsledku //způsob č. 2 $radek = mysql_fetch_assoc($vysledek); echo "první sloupec: ".$radek["jmeno_prvniho_sloupce"]." druhý sloupec: ".$radek[jmeno_druheho_sloupce]."<br>\n"; // první řádek výsledku $radek = mysql_fetch_row($vysledek); echo "první sloupec: ".$radek[jmeno_prvniho_sloupce]." druhý sloupec: ".$radek[jmeno_druheho_sloupce]."<br>\n"; // druhý řádek výsledku //způsob č. 3 while($radek = mysql_fetch_row($vysledek)){ echo "první sloupec: ".$radek[0]." druhý sloupec: ".$radek[1]."<br>\n"; // je to jako způsob č.1, jen je to zapsáno v cyklu } //způsob č. 4 while(list($sloupec1,$sloupec2)=mysql_fetch_row($vysledek)){ echo "první sloupec: $sloupec1 druhý sloupec: $sloupec2<br>\n"; // vylepšený způsob č. 2 - proměnné jsou "krásně" pojmenované } Sledujte proměnné $link, $dotaz a $vysledek kde se objevují. |
||
alan Profil * |
#18 · Zasláno: 9. 8. 2010, 23:48:30
no,tak nějak jsem to předělal,zjistil jsem že jsem měl mít místo query ten data..:D
mno,jinač,tedka to píše že mám chybu jako toto... Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/sub/l2/page/toppvpll.php on line 15 Takže chyba je: while ($top=mysql_fetch_array($data)) dám vám sem celej script... <?php $data = mysql_query("SELECT * FROM characters WHERE $where AND accesslevel<50 AND pkkills>0 ORDER BY pkkills DESC LIMIT $top"); echo "<table><thead><tr><th>Place</th><th>Face</th><th><center>Nick</center></th><th>Level</th><th> <center>Proffesion</center></th><th><center>Clan</center></th><th>Pvp/PK</th><th><center>Time in Game</center></th><th>Status</th><tr></thead>\n"; $result2 = mysql_query("SELECT clan_id,clan_name FROM clan_data", $link) or die ("Error: ".mysql_error()); while ($row2=mysql_fetch_row($result2)) $clans_array[$row2[0]]=$row2[1]; $clans_array[0]=""; $n=1; while ($top=mysql_fetch_array($data)) { $onlinetimeH=round(($top[onlinetime]/60/60)-0.5); $onlinetimeM=round(((($top[onlinetime]/60/60)-$onlinetimeH)*60)-0.5); $clan=mysql_fetch_array(mysql_query("select * from clan_data where clan_id=$top[clanid]")); if ($clan[clan_name]=='') { $clan[clan_name]="No Clan"; } if ($top['sex']==0) { $name='<font color=#8080FF>'.$top[char_name].'</font>'; } else { $name='<font color=#FF8080>'.$top[char_name].'</font>'; } $class=mysql_fetch_array(mysql_query("select ClassName from char_templates where ClassId=$top[classid]")); if (($top['sex']==0) && ($top['race']==4)) { $img='./face/dwarf_male.gif'; } if (($top['sex']==1) && ($top['race']==4)) { $img='./face/dwarf_female.gif'; } if (($top['sex']==0) && ($top['race']==2)) { $img='./face/darkelf_male.gif'; } if (($top['sex']==1) && ($top['race']==2)) { $img='./face/darkelf_female.gif'; } if (($top['sex']==0) && ($top['race']==0)) { $img='./face/human_male.gif'; } if (($top['sex']==1) && ($top['race']==0)) { $img='./face/human_female.gif'; } if (($top['sex']==0) && ($top['race']==1)) { $img='./face/elf_male.gif'; } if (($top['sex']==1) && ($top['race']==1)) { $img='./face/elf_female.gif'; } if (($top['sex']==0) && ($top['race']==3)) { $img='./face/orc_male.gif'; } if (($top['sex']==1) && ($top['race']==3)) { $img='./face/orc_female.gif'; } if ($top['online']==1) {$online='<font color=green>Online</font>'; } else {$online='<font color=red>Offline</font>'; } echo "<tr><td><b><center>$n</center></b></td><td><img src='$img'></td><td> $name</td><td><center> $top[level]</center></td><td><center>$class[ClassName]</center></td><td><center><a href=index.php?d=module&p=clantop>$clan[clan_name]</a></center> </td><td><center><b>$top[pvpkills]</b>/<b><font color=red>$top[pkkills]</font></b></center></td><td><center>$onlinetimeH Hours $onlinetimeM min.</center></td><td>$online</td></tr>\n"; $n++; } echo '</table>'; ?> |
||
tiso Profil |
#19 · Zasláno: 10. 8. 2010, 01:36:55 · Upravil/a: tiso
alan: btw. miesto
if (($top['sex']==0) && ($top['race']==4)) { $img='./face/dwarf_male.gif'; } if (($top['sex']==1) && ($top['race']==4)) { $img='./face/dwarf_female.gif'; } if (($top['sex']==0) && ($top['race']==2)) { $img='./face/darkelf_male.gif'; } if (($top['sex']==1) && ($top['race']==2)) { $img='./face/darkelf_female.gif'; } if (($top['sex']==0) && ($top['race']==0)) { $img='./face/human_male.gif'; } if (($top['sex']==1) && ($top['race']==0)) { $img='./face/human_female.gif'; } if (($top['sex']==0) && ($top['race']==1)) { $img='./face/elf_male.gif'; } if (($top['sex']==1) && ($top['race']==1)) { $img='./face/elf_female.gif'; } if (($top['sex']==0) && ($top['race']==3)) { $img='./face/orc_male.gif'; } if (($top['sex']==1) && ($top['race']==3)) { $img='./face/orc_female.gif'; } $races=array('human', 'elf', 'darkelf', 'orc', 'dwarf'); $genders=array('male', 'female'); $img='./face/'.$races[$top['race']].'_'.$genders[$top['sex']].'.gif'; |
||
PostCC Profil |
#20 · Zasláno: 10. 8. 2010, 08:32:10
Několik poznámek:
1) To, že je druhý parametr u funkce MySQL_Query() nepovinný nic neznamená. Pracujete-li v rámci jednoho scriptu s více připojeními, je uvádění tohoto parametru dost zásadní, proto vřele doporučuji jej důsledně uvádět vždy. 2) Proč přiřazujete výsledek funkce mysql_select_db ( "$db_name",$res ); do proměnné $resdb, když s ní nadále nijak nepracujete? 3) Proč je řetězcová proměnná $db_name ve výše citované příkazu obalena uvozovkami? Doporučuji celý řádek nahradit: MySql_Select_Db($db_name, $res) OR Die("Nelze zvolit databázi: [$db_name]"); 4) Kde se bere proměnná $data? 5) Pracujete-li dále s proměnnou data způsobem $top=mysql_fetch_array($data), předpokládám, že jde o o datový typ "mysql result". Co v tom případě znamená $top[onlinetime]? onlinetime je konstanta? Věřím, že nikoli, v takovém případě jste zřejmě měl na mysli $top["onlinetime"]. 6) Ten blok rozhodování je nepochybně mnohem praktičtější zapsat např. jako v řešení tiso. 7) Pro každý průchod cyklem while ($top=mysql_fetch_array($data)) spouštíte samostatný příkaz MySql $clan=mysql_fetch_array(mysql_query("select * from clan_data where clan_id=$top[clanid]")); (kde opět chybí druhý parametr funkce MySql_Query). Snadno tak můžete každým spuštěním scriptu vygenerovat stovky nebo i tisíce dotazů do databáze - není úspornější a rychlejší dotazovat se jedním JOIN selectem pouze na data, která vás zajímají a se kterými potřebujete dále pracovat? |
||
tiso Profil |
#21 · Zasláno: 10. 8. 2010, 09:07:55
PostCC: 4) - riadok 2
|
||
PostCC Profil |
#22 · Zasláno: 10. 8. 2010, 09:11:08
tiso: Jo, díky, už jsem se k tomu taky dopracoval :-) V tom balastu je těžké se orientovat :-(
|
||
alan Profil * |
#23 · Zasláno: 10. 8. 2010, 10:10:10
tiso:
já to tak ale nemůžu napsal,jelikož v databázi nikde nemáš ork,elf,human... nebo male,female...tam to je všechno v číslech.. jinač furt to nejde a hlásí to chybu na toto: while ($top=mysql_fetch_array($data)) já už fakt nevím:d |
||
tiso Profil |
#24 · Zasláno: 10. 8. 2010, 10:15:46
alan: „já to tak ale nemůžu napsal,jelikož v databázi nikde nemáš…“
A skúšal si vymeniť tých 10 riadkov za tie moje 3? Chová sa to rovnako! „já už fakt nevím:d“ Tak prenechaj programovanie hry niekomu inému, je to náročné, nemáš na to. |
||
alan Profil * |
#25 · Zasláno: 10. 8. 2010, 10:35:40
tiso:
zkoušel jsem to předělat a nic... |
||
tiso Profil |
#26 · Zasláno: 10. 8. 2010, 10:36:49
alan: nj, najskôr musíš odstrániť tú chybu, aby ti to vôbec išlo…
|
||
AM_ Profil |
#27 · Zasláno: 10. 8. 2010, 14:30:46
alan:
kup si knihy, najdi si tutoriály nebo si zaplať nějaký kurz... programovat se nedá tak, že někde okoukáš pár příkazů, ty pak složíš dohromady, zkopíruješ chybu, pošleš ji na fórum a odborníci starejte se. K programování je potřeba: - chápat obecné principy (jak funguje strukturované programování, přibližné ponětí o práci procesoru a paměti) - znát syntaxi a základní struktury nějakého jazyka (zde zřejmě PHP) - téměř nevyhnutelně umět anglicky alespoň na té úrovni, abys se slovníkem porozuměl psanému textu Pokud ti chybí více než jeden z výše uvedených bodů, raději zapomeň na programování hry a využij svůj čas k doplnění znalostí, v konečném důsledku tvá hra nakonec třeba dosáhne nějaké kvality a celkově nad tím strávíš třetinu času, než takhle metodou pokusů, omylů a diskusních fór. |
||
Časová prodleva: 15 let
|
0