Autor | Zpráva | ||
---|---|---|---|
mmapro Profil |
#1 · Zasláno: 16. 2. 2014, 17:16:29
Dobrý den, potřeboval bych poradit jak vypsat obrázek/avatar z db, kod vypadá takto:
<?php $i=1; $sql = mysql_query("SELECT * FROM users ORDER BY battles_won DESC, tournaments_won DESC LIMIT 3"); if(mysql_num_rows($sql)>0) { while($row = mysql_fetch_array($sql)) { if($i == 1) { echo '<div class="ranking"> <div class="ranking_1"> </div><div class="ranking_info_top"><span style="font-size:18px;"><b>'.$row[usern].'</b></span><br><br>'.$lang[battles_won].': '.number_format($row[battles_won]).'<br/>'.$lang[won_tournaments].': '.number_format($row[tournaments_won]).'</div></div> '; } elseif($i == 2) { echo '<div class="ranking"><div class="ranking_2"></div> <div class="ranking_info_top"><span style="font-size:18px;"><b>'.$row[usern].'</b></span><br><br>'.$lang[battles_won].': '.number_format($row[battles_won]).'<br/>'.$lang[won_tournaments].': '.number_format($row[tournaments_won]).'</div></div> '; } elseif($i == 3) { echo '<div class="ranking"><div class="ranking_3"></div> <div class="ranking_info_top"><span style="font-size:18px;"><b>'.$row[usern].'</b></span><br><br>'.$lang[battles_won].': '.number_format($row[battles_won]).'<br/>'.$lang[won_tournaments].': '.number_format($row[tournaments_won]).'</div></div> '; } else { echo '<div class="ranking"><div class="ranking_info"><span style="font-size:18px;"><b>'.$row[usern].'</b></span><br><br>'.$lang[battles_won].': '.number_format($row[battles_won]).'<br/>'.$lang[won_tournaments].': '.number_format($row[tournaments_won]).'</div></div>'; } $i++; } } ?> Mě by se to hodilo vypsat na místo <div class="ranking_1"> (obrázek), jen nevim jak na to, v sql je to jako avatar |
||
Enko Profil |
#2 · Zasláno: 16. 2. 2014, 21:06:16
Jak vypadá obsah sloupce "avatar" v databázi? Napiš sem příklad
|
||
mmapro Profil |
#3 · Zasláno: 17. 2. 2014, 10:18:27
|
||
Enko Profil |
#4 · Zasláno: 17. 2. 2014, 16:31:27
Nějak takto by to mělo fungovat. Maximálně si tam doplň začátek cesty k souboru obrázku podle tvojí adresářové struktury. Pokud budeš potřebovat doplnit k obrázku hodnoty "alt", "title", nebo nějaké jiné, dej vědět. To už by jsi mohl zvládnout, co?
<?php $i=1; $sql = mysql_query("SELECT * FROM users ORDER BY battles_won DESC, tournaments_won DESC LIMIT 3"); if(mysql_num_rows($sql)>0) { while($row = mysql_fetch_array($sql)) { if($i == 1) { echo '<div class="ranking"> <div class="ranking_1"> <img src="'. $row[avatar] .'"> </div><div class="ranking_info_top"><span style="font-size:18px;"><b>'.$row[usern].'</b></span><br><br>'.$lang[battles_won].': '.number_format($row[battles_won]).'<br/>'.$lang[won_tournaments].': '.number_format($row[tournaments_won]).'</div></div> '; } elseif($i == 2) { echo '<div class="ranking"><div class="ranking_2"></div> <div class="ranking_info_top"><span style="font-size:18px;"><b>'.$row[usern].'</b></span><br><br>'.$lang[battles_won].': '.number_format($row[battles_won]).'<br/>'.$lang[won_tournaments].': '.number_format($row[tournaments_won]).'</div></div> '; } elseif($i == 3) { echo '<div class="ranking"><div class="ranking_3"></div> <div class="ranking_info_top"><span style="font-size:18px;"><b>'.$row[usern].'</b></span><br><br>'.$lang[battles_won].': '.number_format($row[battles_won]).'<br/>'.$lang[won_tournaments].': '.number_format($row[tournaments_won]).'</div></div> '; } else { echo '<div class="ranking"><div class="ranking_info"><span style="font-size:18px;"><b>'.$row[usern].'</b></span><br><br>'.$lang[battles_won].': '.number_format($row[battles_won]).'<br/>'.$lang[won_tournaments].': '.number_format($row[tournaments_won]).'</div></div>'; } $i++; } } ?> |
||
mmapro Profil |
#5 · Zasláno: 17. 2. 2014, 18:18:31
asi furt něco dělam špatně, že to neukáže ani nenačtě avatar hráče (možná tak chybí ID aby to poznalo koho to je avatar(?))
|
||
Enko Profil |
#6 · Zasláno: 17. 2. 2014, 19:38:22
Když si zobrazíš HTML zdroj té vygenerované stránky. Máš tam naplněnou adresu obrázku?
|
||
mmapro Profil |
<div><p><b>TOP 3</b><p/></div> </br> <div class="ranking"> <div class="ranking_1"> <img src=""> </div><div class="ranking_info_top"><span style="font-size:18px;"><b>Destroyer</b></span><br><br>Walki wygrane: 574<br/>Wygrane turnieje: 0</div></div> <div class="ranking"><div class="ranking_2"></div> <div class="ranking_info_top"><span style="font-size:18px;"><b>WestMostar</b></span><br><br>Walki wygrane: 176<br/>Wygrane turnieje: 0</div></div> <div class="ranking"><div class="ranking_3"></div> <div class="ranking_info_top"><span style="font-size:18px;"><b>Alfo</b></span><br><br>Walki wygrane: 155<br/>Wygrane turnieje: 0</div></div> </div> je to tam bez url koukam možná to bude toto, ale dat to do echa <img src="<?php if($user['avatar']) { echo $user['avatar']; } else { echo 'assets/imgs/avatar.jpg'; } ?>
|
||
Enko Profil |
#8 · Zasláno: 17. 2. 2014, 23:28:25
Máš v tabulce "users" sloupec "avatar"? Uvnitř while cyklu vypiš print_r($row) a pošli to sem.
|
||
mmapro Profil |
#9 · Zasláno: 17. 2. 2014, 23:29:52 · Upravil/a: mmapro
Enko:
ano mam v tabulce users ten sloupec avatar, zkusim a pošlu to sem nejspíš to mam špatně, dělam tohle poprvé, tak se omlouvám while(print_r($row) = mysql_fetch_array($sql)) { a píše to chybu Fatal error: Can't use function return value in write context in /DISK2/WWW/xxxxxx.org/www/source/home.php on line 39
řádek 39 je to while |
||
Enko Profil |
#10 · Zasláno: 18. 2. 2014, 11:07:32
Zkus to takto:
$sql = mysql_query("SELECT * FROM users ORDER BY battles_won DESC, tournaments_won DESC LIMIT 3"); if(mysql_num_rows($sql)>0) { while($row = mysql_fetch_assoc($sql)) { print_r($row); } } A pošli sem výsledek. |
||
mmapro Profil |
#11 · Zasláno: 18. 2. 2014, 11:16:39
taky nejde, vypsalo to všechny tabulky v databazy na stranku (v textu) :
|
||
Enko Profil |
#12 · Zasláno: 18. 2. 2014, 11:25:41
Vypsalo to všechny tabulky? Co to přesně znamená? Pošli sem ten výsledek, bez toho se nehneme dál.
|
||
mmapro Profil |
<div class="news"> <div><p><b>TOP 3</b><p/></div> </br> Array ( [id] => 42 [usern] => Destroyer [passwd] => 4fc1206236154337923eb798b61b6fee [email] => xxxxxxxxxxx [status] => 1 [online_time] => 0 [user_ip] => 190.251.17.128 [power] => 2010 [agility] => 2010 [endurance] => 1920 [fastness] => 1800 [total_stats] => 7720 [energy] => 95 [points] => 1 [money] => 1000 [battles_won] => 586 [battles_lost] => 42 [tournaments_won] => 0 [workouts] => 7 [workout_start_time] => 0 [workout_end_time] => 1392680885 [workout_type] => 2 [avatar] => [premium] => 0 [tekst] => [Fuid] => [Funame] => [Ffname] => [Femail] => [UID] => [agility2] => 0 ) Array ( [id] => 71 [usern] => WestMostar [passwd] => 029487942aa7dd65842ad7a9032647a5 [email] => xxxxxxxxxxx [status] => 1 [online_time] => 0 [user_ip] => 93.180.119.170 [power] => 520 [agility] => 510 [endurance] => 510 [fastness] => 500 [total_stats] => 1920 [energy] => -4 [points] => 42 [money] => 1000 [battles_won] => 176 [battles_lost] => 26 [tournaments_won] => 0 [workouts] => 9 [workout_start_time] => 0 [workout_end_time] => 1392649380 [workout_type] => 1 [avatar] => uploads/71_Screenshot_21.png [premium] => 0 [tekst] => [Fuid] => [Funame] => [Ffname] => [Femail] => [UID] => [agility2] => 0 ) Array ( [id] => 12 [usern] => Alfo [passwd] => 23934c3306fe04089d3cc2adf8548504 [email] => xxxxxxxx [status] => 0 [online_time] => 0 [user_ip] => 78.45.129.205 [power] => 1373 [agility] => 1414 [endurance] => 1347 [fastness] => 1324 [total_stats] => 5408 [energy] => -254 [points] => 4 [money] => 1000 [battles_won] => 162 [battles_lost] => 145 [tournaments_won] => 0 [workouts] => 13 [workout_start_time] => 0 [workout_end_time] => 1392682236 [workout_type] => 1 [avatar] => uploads/12_0710bce8619811e382fc1261c954e7a8_8h.jpg [premium] => 1 [tekst] => [Fuid] => [Funame] => [Ffname] => [Femail] => [UID] => [agility2] => 0 ) <div class="ranking"><div class="ranking_info"><span style="font-size:18px;"><b></b></span> |
||
Enko Profil |
#14 · Zasláno: 18. 2. 2014, 18:47:49
Tak ten první žádný avatar nemá, tak proto se ti nic nezobrazuje. Doplň mu tam odkaz na nějaký existující obrázek a uvidíš jestli to funguje ;)
|
||
mmapro Profil |
jo ták, díky zkusim,:)
parada jde to! super díky moc!:) a mohu ještě poprosit, že když nemá avatar tak mu to dá toto <?php <img src="assets/imgs/avatar.jpg mam to udelaný takhle ve statistikách ale nevim jak to dát do toho echa takto to mam udelany <?php if($user['avatar']) { echo '<img src="'.$user[avatar].'">'; } else { echo '<img src="assets/imgs/avatar.jpg">'; } ?> |
||
Enko Profil |
No uděláš to úplně stejně jako jsi to napsal. Budeš někde před tím echem ověřovat jestli je v $row[avatar] to co čekáš. A pokud ano nastavíš si nějakou proměnou na hodnotu jeho obrázku a když nebude, tak mu nastavíš hodnotu na nějaký defaultní obrázek. A pak tu proměnou vypíšeš, tam kde potřebuješ. To už by jsi mohl zvládnout ;)
Samozřejmě si neodpustím dotaz, jestli ošetřuješ uživatelský vstup například proti SQL Injection a rozhodně bych odstranil/převedl případné html znaky na entity na výpisu do stránky, například pomocí fce htmlspecialchars() kvůli XSS. |
||
Časová prodleva: 10 let
|
0