Stavíme si vlastní prezentaci - 7. modul novinky

Napsal O webu (») 6. 9. 2007 v kategorii PHP/HTML, přečteno: 1129×

Jednoduchý návod na vlastní prezentaci v PHP s použitím CSS a MySql databáze.

Jako prozatím poslední modul nás čeká modul kerý nám dle naší volby zobrazí jen omezený počet novinek nebo veškeré novinky v databázi.



modules/novinky/index.inc
<?php



global $all;



include("config.php");



$dbnews = mysql_query("Select * FROM novinky ORDER BY id DESC") or die ("Nelze se nacist data pro novinky." . mysql_error());

$dbnewspocet = mysql_num_rows($dbnews);



$limit = 5;

$zobraz = $dbnewspocet-$limit;



if ($aktnews=="") {$aktnews = $dbnewspocet;}



if ($all!="1") {

echo "

<input value='Zobrazit všechny novinky' onclick=\"document.location.href='?page=novinky&all=1';\" type=button style='width: 200'>

"; }



while ($news = mysql_fetch_array($dbnews))

{

if ($all!="1") {

if ($aktnews>$zobraz) {

echo "

<hr>

<table cellpadding='0' cellspacing='0'>

<tr>

<td colspan='2'><font color='#FF0000'><b>".$news["datum"]." - ".$news["nazev"]."</b></font></td>

</tr>

<tr>

<td width='50'></td>

<td>".$news["text"]."</td>

</tr>

</table>

<br>

";

$aktnews = $aktnews-1;

}

} else {

echo "

<hr>

<table cellpadding='0' cellspacing='0'>

<tr>

<td colspan='2'><font color='#FF0000'><b>".$news["datum"]." - ".$news["nazev"]."</b></font></td>

</tr>

<tr>

<td width='50'></td>

<td>".$news["text"]."</td>

</tr>

</table>

<br>

";

$aktnews = $aktnews-1;

}

}

?>

Toto už je o něco málo delší script.

Jako první si pres global vztáhneme proměnnou all.

Dále si vložíme soubor config.php aby jsme mohli pracovat s databází.

Dále si pomoci funkce mysql_query uložíme do proměnné dbnews veškeré data z tabulky novinky seřazené dle hodnoty id . Do proměnné dbnewspocet si uložíme počet řádků s daty které jsme obdrželi z databáze. K tomu nám pomůže funkce mysql_num_rows.
Tento příkaz je použitelný pouze pro dotaz typu SELECT. Potřebujete-li získat počet záznamů ovlivněných dotazy INSERT, UPDATE nebo DELETE, použijte mysql_affected_rows().

Nastavíme si proměnnou limit kterou dále použijeme k omezení zobrazení novinek a proměnnou zobraz která bude mít hodnotu počet řádku vrácených z databáze mínus hodnotu limitu. V tomto případě je znak mínus operátorem.

Operátory zde plní prakticky stejné funkce jako v matematice. Sčítání, odčítání, rovnost, větší, menší....





operátor
+
-
*
/
%
=
==
<
>
<=
>=
!=
<>
&&
||
and
or
xor
!
+=
-=
*=
/=
%=
&=
|=
++
--

význam
sčítání
odečítání
násobení
dělení
zbytek po dělení
přiřazení
rovnost
menší než
větší než
menší nebo rovno
větší nebo rovno
nerovnost
nerovnost
logické a (AND)
logické nebo (OR)
logické a (AND)
logické nebo (OR)
exkluzivní nebo (XOR)
negace
$a = $a + $b
$a = $a - $b
$a = $a * $b
$a = $a / $b
$a = $a % $b
$a = $a & $b
$a = $a | $b
$a = $a + 1 (inkrementace)
$a = $a - 1 (dekrementace)

příklad
$a + $b
$a - $b
$a * $b
$a / $b
$a % $b
$a = "Martin"
$a == $b
$a < $b
$a > $b
$a <= $b
$a >= $b
$a != $b
$a <> $b
$a && $b
$a || $b
$a and $b
$a or $b
$a xor $b
!$a
$a += $b
$a -= $b
$a *= $b
$a /= $b
$a %= $b
$a &= $b
$a |= $b
$a++
$a--





Jako další je podmínka která nastaví hodnotu proměnné aktnews pokud je prázdná na počet řádku vrácených z databáze.


Druhá podmínka kontroluje proměnnou all. Pokud se nerovná 1 vypíše se tlačítko pro zobrazení všech novinek v databázi a vypíšou se jen aktuální novinky. V opačném případě se vypíšou novinky všechny.


Následuje nám už známý cyklus while ve kterém se kontroluje podmínka if ($all!=1) zda se má vypsat omezený počet novinek










Tak a tím máme postavenou základní strukturu webu s nějakým tím vzhledem a přidáno pár modulů.



Naše prezentace je funkční, a my si v dalších dílech popíšeme, jak omezit přístup nežádaným osobám a dopíšeme si pro naše pohodní administrační rozhraní.


K nahlédnutí na http://ukazky.owebu.cz/diviweb


Soubory k tomuto dílu. DOWNLOAD



Autor: Václav Dressler
Facebook Twitter Topčlánky.cz Linkuj.cz

Komentáře

Článek ještě nebyl okomentován.


Nový komentář

Téma:
Jméno:
Notif. e-mail *:
Komentář:
  [b] [obr]
Odpovězte prosím číslicemi: Součet čísel osm a jedenáct