Internetový bazar v PHP 3.
V tomto posledním článku našeho miniseriálu o internetovém bazaru si ukážeme jak mazat inzeráty. Uživatel už musí být opět registrován.
Vložíme konfigurační soubory config.php a opendb.php, ověříme, jestli je uživatel přihlášen (vložením login.php), načneme stránku a ošetříme pole, které se nastavuje z formuláře:
<?PHP
include(„opendb.php“);
include(„config.php“);
include(„login.php“);
?>
<!DOCTYPE HTML PUBLIC „-//W3C//DTD HTML 4.0 Transitional//EN“>
<html>
<head>
<title>Bazar – mazání inzerátů</title>
</head>
<body>
<?PHP
// ošetření proměnných z formuláře
for ($i = 0; $i < count($del_box); $i++):
$del_box[$i] = $del_box[$i]*1;
endfor;
Uživatel odeslal formulář, smažeme označené inzeráty. Inzerátů ke smazání může být i více najednou, proto jsou jejich id uchovávána v poli $del_box
:
// smazání inzerátů z databáze
if (!empty($_POST[„del_box“])):
for ($i = 0; $i < count($_POST[„del_box“]); $i++):
$query = mysql_query(„DELETE FROM advertise WHERE id=“.$_POST[„del_box“][$i]);
if (empty($query)):
echo „Omlouváme se, probíhá úprava serveru.<br>\n“;
break;
endif;
endfor;
echo „Označené inzeráty byly smazány.<br /><br />\n<a href=\“advertise.php\“>Vstoupit do bazaru</a>“;
Pokud uživatel neodeslal formulář, nebudeme mazat inzeráty, ale pošleme SQL dotaz na inzeráty, které jsou registrovány na přihlášeného uživatele ($uid
):
else:
// vypsání inzerátů, které jsou registrovány na uživatele
$query = @mysql_query(„SELECT id, col, cate, advtext, start, end FROM advertise WHERE uid = „.$uid.“ ORDER BY start DESC“);
if (empty($query)):
echo „Omlouváme se, probíhá úprava serveru.<br>\n“;
break;
endif;
Pokud má uživatel v bazaru nějaké inzeráty (je nastaveno mysql_num_rows($query)), vložíme formulář, který tyto inzeráty vypíše a pomocí kterého bude moci uživatel označit inzeráty na smazání:
if (@mysql_num_rows($query)):
include(„advdelete_form.php“);
Pokud není nastaveno mysql_num_rows(), nemá uživatel v bazaru žádné inzeráty, vypíšeme tedy hlášení a rádně ukončíme stránku:
else:
echo „V bazaru nemáte žádné inzeráty.<br>\n“;
endif;
endif;
} while(false);
?>
</body>
</html>
Skript ‚advdelete.php‘ je za námi, na řadě je ‚advdelete_form.php‘. Takže načneme formulář, tabulku a PHP:
<form action=“advdelete.php“ method=“post“>
<table>
<?PHP
Pro vypsání všech inzerátů použijeme smyčku while()
. Nastavíme proměnnou $zaznam["col"]. Pošleme SQL dotaz na popis kategorie, díky kterému budeme moci v seznamu inzerátů vypisovat i kategorii. Nakonec si upravíme proměnné tak, abychom mohli vypisovat jen jednotlivé prvky pole $zaznam
:
// vypsání inzerátů
while ($zaznam = mysql_fetch_array($query)):
// upravení proměnných
$zaznam[„col“] = ($zaznam[„col“] == 1 ? „Prodám“ : ($zaznam[„col“] == 2 ? „Koupím“ : „Vyměním“));
$query2 = mysql_query(„SELECT title FROM category WHERE id LIKE ‚“.$zaznam[„cate“].“‚“);
if (empty($query2)):
echo „Omlouváme se, probíhá úprava serveru.<br>\n“;
break;
endif;
$zaznam2 = mysql_fetch_array($query2);
$zaznam[„cate“] = $zaznam2[„title“];
unset($query2);
unset($zaznam2);
Dále vypíšeme inzeráty pěkně do tabulky:
echo „<tr><td valign=\“top\“><input type=\“checkbox\“ value=“.$zaznam[„id“].“ name=\“del_box[]\“></td><td>“.$zaznam[„advtext“].“<br /><br /></td></tr>\n“;
echo „<tr><td> </td><td><b>Rubrika:</b> „.$zaznam[„col“].“</td></tr>“;
echo „<tr><td> </td><td><b>Kategorie:</b> „.$zaznam[„cate“].“</td></tr>“;
echo „<tr><td> </td><td><b>Vloženo:</b> „.date(„d.m.Y“, $zaznam[„start“]).“</td></tr>“;
echo „<tr><td> </td><td><b>Platnost končí:</b> „.date(„d.m.Y“, $zaznam[„end“]).“<br><br><br></td></tr>“;
Ukončíme funkce a elementy:
endwhile;
?>
<tr><td> </td><td><input type=“submit“ value=“Označené smazat“></td><tr>
</table>
</form>
Skripty ‚advdelete.php‘ a ‚advdelete_form.php‘ naleznete v souboru bazar3.zip. Celý bazar, tedy soubory ‚bazar.sql‘, ‚config.php‘, ‚advertise.php‘, ‚advertise_form.php‘, ‚advinsert.php‘, ‚advinsert_form1.php‘, ‚advinsert_form2.php‘, ‚advdelete.php‘ a ‚advdelete_form.php‘ naleznete v souboru bazar.zip.
Starší komentáře ke článku
Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.
Mohlo by vás také zajímat
-
Zvýšení výkonu WiFi signálu: Jak a proč používat WiFi zesilovače
28. června 2023 -
Monitory OLED: klíčové pojmy a funkce
13. května 2024 -
9 nejzajímavějších doménových koncovek
19. srpna 2024
Nejnovější
-
Jak rozšířit úložiště Macu za pětinovou cenu?
16. prosince 2024 -
Nové trendy v doménách pro osobní projekty – DIY, LIVING a LIFESTYLE
9. prosince 2024 -
Jak chránit webové stránky před Web/AI Scrapingem
27. listopadu 2024 -
Jaký monitor je nejlepší k novému Macu Mini?
25. listopadu 2024