Upit koji pribavlja sve retke iz jedne tablice:
* Zvjezdica je skraćenica koja govori da želimo pribaviti sva polja iz navedenih tablica.
FROM govori da slijedi lista tablica iz kojih se podaci pribavljaju.
Ovo su svi obavezni dijelovi svakog SQL SELECT upita.
Otvorite mysql shell klijent i obavite SQL SELECT upit. Rezultat bi trebao izgledati otprilike ovako:
+----------+--------+-------+--------+
| idvijesti | naslov | tekst | datum |
+----------+--- ----+-------+--------+
| 1 | Prva novost | Ovo je tekst prve vijesti. | 2005-09-12 |
| 2 | Druga novost | Ovo je tekst druge vijesti.| 2005-09-14 |
+----------+--- ----+-------+--------+
2 rows in set (0.01 sec)
Rezultat ovog našeg upita izgleda kao da nije sortiran niti po jednom polju, no retci su vraćenipo redosljedu upisa u bazu što znači da su sortirani po datumu unosa od manjeg prema većeg.
Sada ćemo sortirati prema datumu od najvećeg datuma prema najmanjem:
Da bi sortirali rezultate upita dodajemo mu ORDER BY klauzulu u ovom slučaju na njegov kraj.
ORDER BY- pomoću ove klauzule sortiramo rezultate upita. Ovaj upit mora biti popraćen imenima polja po kojima želimo sortirati rezultat te način sortiranja (DESC ili ASC). U našem slučaju radi se o polju datum i DESC načinom (decending).
Sada ćemo izraditi administracijski alat sistema vijesti. To će zapravo biti stranica na kojoj će se nalaziti lista svih vijesti iz tablice sa popratnim alatima kao što su linkovi za brisanje i uređivanje pojedine vijseti ....
Preglednik vijesti
Ovo je još jedan dio našeg sitea. Otvorite code editor te stvorite novi file imenom pregled.php i spremite ga u isti direktorij gdje se nalaze spoj.php i unos.php.
<html>
<head>
<title>Preglednik vijesti</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
</head>
<body>
<h1>Administracija vijesti</h1>
<hr>
<a href="unos.php">Dodaj novost</a>
<hr>
<?
function pretvoriDatum($mysqlDatum)
{
$tmp=explode("-", $mysqlDatum);
$datum=$tmp[2] . "." . $tmp[1] . "." . $tmp[0];
return $datum;
}
include "spoj.php";
$sql="SELECT idvijesti, naslov, datum FROM vijesti ORDER BY datum DESC";
if (!$q=mysql_query($sql))
{
echo "Nastala je greška pri izvođenju upita<br />" . mysql_query();
die();
}
if (mysql_num_rows($q)==0)
{
echo "Nema vijesti";
} else {
?>
<table width="760" border="0" cellpadding="1" cellspacing="1">
<tr>
<td><b>Naslov</b></td>
<td><b>Datum</b></td>
<td><b>Opcije</b></td>
</tr>
<?
while ($redak=mysql_fetch_array($q))
{
?>
<tr>
<td><?=$redak["naslov"]?></td>
<td><?=pretvoriDatum($redak["datum"])?></td>
<td>
<a href="uredivanjevijesti.php? idvijesti=<?=$redak["idvijesti"]?>">Uredi</a>
<a href="?action=obrisi&idvijesti=<?=$redak["idvijesti"]?> ">Obriši</a>
</td>
</tr>
<?
}
?>
</table>
<?
}
?>
</body>
</html>
Ova funkcija pretvara MySql datum u datum kojeg smo navikli gledati:
ova funkcija pretvara MySQL-ov datum u onog kojeg smo navikli.
return $datum; vraća danu vrijednost u glavni program tako da se ta vrijednost kasnije može koristiti u skripti.
mysql_num_rows() je funkcija koja obavlja samu provjeru postoji li rezultat za pikaz. Ova funkcija je korisna zato što mysql_query funkcija neće vratiti false ukoliko upit nije vratio niti jedan rezultat dok će ova funkcija na svoj način provjeriti ono što mysql_query funkcija ne provjerava, a to je ima li rezultata za prika, te ako ih nema poduzeti odgovarajuće korake da se korisnik obavijesti o tome.
Mysql_fetch_array() funkcija vraća redak kao niz koji se sastoji od svih polja rezultata s tim da je svako polje indeksirano brojem i svojim imenom.
Mysql_fetch_row() također vraća niz, sa tom razlikom da u njemu postoje samo numerički indeksi.
Mysql_fetch_assoc() isto vraća niz, no u njemu se nalaze samo tekstualno indeksirana polja.
<a href="?action=obrisi&idvijesti=<?=$redak["idvijesti"]?> ">Obriši</a>
Sa ovim iznad korisniku nudimo dvije moguće opcije: Brisanje i uređivanje pojedine vijesti.