Autor Zpráva
PetraPetra
Profil *
Potřebovala bych poradit s výpisem dat. Potřebovala bych vypsat data, kde u posledních položek je Last ... potřebovala bych nějakou funkčnost přes IF. Nevíte prosím jak by script pro daný výpis mohl vypadat?


<div class="sloupec">
<div class="data">Zde neco bude</data>
<div class="data">Zde neco bude</data>
<div class="dataLast">Zde neco bude</data>

<div class="sloupec">
<div class="data">Zde neco bude</data>
<div class="data">Zde neco bude</data>
<div class="dataLast">Zde neco bude</data>
</div>

<div class="sloupecLast">
<div class="data">Zde neco bude</data>
<div class="data">Zde neco bude</data>
<div class="dataLast">Zde neco bude</data>
</div>
Alphard
Profil
Bez informací o tom, jaký zdroj dat používáte, nelze sestavit požadovanou podmínku.
PetraPetra
Profil *
Používám na to výpis dat z mySQL a budu to mít pro výpis článků, tak že počet bude různý.
Alphard
Profil
Tato informace taky moc nepomohla, ale předpokládám, že používáte nejjednodušší while ($row = mysql_result($res)).
Získat přímo z tohoto informaci o poslední položce je problematické, leda čarovat s posouváním v datové řadě nebo různé zásobníky výpisu. Jako nejjednodušší se mi zdá zjistit si pomocífunkce mysql_num_rows() počet vrácených záznamů, v cyklu iterovat counter a pak snadno zjistit, je-li záznam poslední.
PHP alternativa je projít vrácenou sadu a uložit si ji do pole.

Alternativou bez php je použít CSS vlastnosti
#tree ul li:last-child {
     background: #fff url(lastnode2.png) no-repeat;
}
nebo to umí přidat např. jQuery (nevím jestli ho používáte, jen kvůli tomuhle bych ho do stránky netahal).
PetraPetra
Profil *
Můžu se zeptat, jak by takový cykl s použitím IF mohl vypadat, aby se tam dalo použít ten můj class "last"? Když tak to ostatní bych už zkusila sama.
panther
Profil
PetraPetra:
jen doplním Alpharda a jeho alternativu pomocí CSS:
nevím, k čemu má odlišení posledního řádku sloužit, ale pokud v něm chceš něco více, než jen bezvýznamné grafické oddělení od zbylých řádek, last-child nemá podporu v IE <= 8.

Dále Alphard uvedl jQuery. Samozřejmě je blbost načítat to monstrum do stránky jen kvůli tomu, jde to i „čistým“ JavaScriptem: .lastChild.
panther
Profil
PetraPetra:
Můžu se zeptat, jak by takový cykl s použitím IF mohl vypadat
$total = mysql_num_rows($res);
$i = 1;
while ($row = mysql_fetch_assoc($res)) {
    echo '<tr' . ($i == $total ? ' class="last"' : '') . '>'; // vypise <tr> nebo <tr class="last"> pro poslední řádek
    ...
    $i++;
}
PetraPetra
Profil *
Panther ... moc děkuji za vysvětlení. Je možné ten script dát vůči mému HTML? Nevím proč, ale tyhle věci s IF .... 2% apod. jsou pro mě těžké :(
Alphard
Profil
PetraPetra:
Co už vlastně máte hotové? panther uvedl celou část, včetně cyklu vypisujícího data. Jeho podminku není potřebu měnit.
PetraPetra
Profil *
On ten last je jak pro data, tak i pro sloupec, tj. pouzit je 2x. Panther uvedl jedne způsob. Pro jistotu radši přikládám znovu daný HTML:
<div class="sloupec">
<div class="data">Zde neco bude</data>
<div class="data">Zde neco bude</data>
<div class="dataLast">Zde neco bude</data>
 
<div class="sloupec">
<div class="data">Zde neco bude</data>
<div class="data">Zde neco bude</data>
<div class="dataLast">Zde neco bude</data>
</div>
 
<div class="sloupecLast">
<div class="data">Zde neco bude</data>
<div class="data">Zde neco bude</data>
<div class="dataLast">Zde neco bude</data>
</div>
Keeehi
Profil
PetraPetra:
Spíš uveď ten PHP kód, který toto generuje.
Bertram
Profil
PetraPetra:
<?php
$objHandle = mysqli_connect("127.0.0.1","root","heslo","databaze");
mysqli_query($objHandle, "SET CHARACTER SET utf8");

if (!$objHandle) {
    echo "Chyba při připojování k databázi.";
    exit;
}

$objResult = mysqli_query($objHandle, "SELECT * FROM tabulka");
if (!$objResult) {
    echo "Chyba při zpracování dotazu.";
    exit;
}

$sloupecLast = $objHandle->affected_rows;
$iteratorSloupcu = 1;
while ($row = mysqli_fetch_assoc($objResult)) {
    echo "<div class='" . ($iteratorSloupcu == $sloupecLast ? 'sloupecLast' : 'sloupec') . "'>";
    $dataLast = count($row);
    $iteratorDat = 1;
    foreach ($row as $key => $value) {
        echo "<div class='" . ($iteratorDat == $dataLast ? 'dataLast' : 'data') . "'>$value</div>";
        $iteratorDat++;
    }
    $iteratorSloupcu++;
    echo "</div>";
}
?>

citace:
Nevím proč, ale tyhle věci s IF .... 2% apod. jsou pro mě těžké :(

Doporučuji vám, nepokračovat s okopírovaným kódem dál, ale prve pochopit, jak funguje.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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