Autor Zpráva
mmapro
Profil
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
Jak vypadá obsah sloupce "avatar" v databázi? Napiš sem příklad
mmapro
Profil
http://jyxo.info/uploads/FA/fafeccb226d27d02ad74a3171b04ceea7771a822.png
takto vypada
Enko
Profil
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
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
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
Máš v tabulce "users" sloupec "avatar"? Uvnitř while cyklu vypiš print_r($row) a pošli to sem.
mmapro
Profil
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
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
taky nejde, vypsalo to všechny tabulky v databazy na stranku (v textu) :
Enko
Profil
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
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.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0