Dodawanie postu, wpisujemy tekst1 i tekst2.
<?php
include('funkcja.php');
echo'
<center>
<br>
<form action="dodajpost.php" method="post">
Tekst1<br />
<input type="text" name="tekst1" value="" class="nr1"/><br />
Tekst2:<br />
<input type="text" name="tekst2" class="nr1" /><br />
<input type="submit" value="dodaj" /><br />
</center>
';
?>
<?php
// odbieramy dane z formularza
@$tekst1 = $_POST['tekst1'];
@$klik1 = $_POST['klik1'];
@$tekst2 = $_POST['tekst2'];
@$klik2 = $_POST['klik2'];
if($tekst1 and $tekst2 ) {
// łączymy się z bazą danych
$connection = @mysql_connect('localhost', 'root', 'lolo90')
or die('Brak połączenia z serwerem MySQL');
$db = @mysql_select_db('cowolisz2', $connection)
or die('Nie mogę połączyć się z bazą danych');
// dodajemy rekord do bazy
$ins = @mysql_query("INSERT INTO test SET tekst1='$tekst1', tekst2='$tekst2'");
if($ins) echo "Rekord został dodany poprawnie";
else echo "Błąd nie udało się dodać nowego rekordu";
mysql_close($connection);
} else {
echo '<br>Prosimy o wprowadzenie wszystkich pól prawidłowo.';
}
?>
Wyswietlanie stronicowe tabeli na rysunku w 1 poscie:
<?php
include ("config.php");
?>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Paginacja - Michał Załęcki</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<?php
echo "<p>";
echo "<table boder=\"1\"><tr>";
echo "<td bgcolor=\"\"><strong><center><u>ID</strong></td>";
echo "<td bgcolor=\"\"><strong><center><u>Tekst1</strong></td>";
echo "<td bgcolor=\"\"><strong><center><u>Klik1</strong></td>";
echo "<td bgcolor=\"\"><strong><center><u>Tekst2</strong></td>";
echo "<td bgcolor=\"\"><strong><center><u>Klik2</strong></td>";
echo "</tr>";
echo "</p>";
//musimy wyciągnąć z bazy informacje o ilości postów ogólnie do wyliczenia ilości stron
//celowo nie kożystamy z SQL_CALC_FOUND_ROWS, bo zależy nam na zabezpieczeniu się przed wś****skimi
//użytkownikami, którzy zmodyfikują url i będą chcieli wejść na stronę jaka nie istnieje
$query = "SELECT COUNT(*) as all_posts FROM test";
$result = mysql_query($query) or die (mysql_error());
$row = mysql_fetch_array($result);
extract($row);
$onpage = 15; //ilość newsów na stronę
$navnum = 20; //ilość wyświetlanych numerów stron, ze względów estetycznych niech będzie to liczba nieparzysta
$allpages = ceil($all_posts/$onpage); //wszysttkie strony to zaokrąglony w górę iloraz wszystkich postów i ilości postów na stronę
//sprawdzamy poprawnośc przekazanej zmiennej $_GET['page'] zwróć uwage na $_GET['page'] > $allpages
if(!isset($_GET['page']) or $_GET['page'] > $allpages or !is_numeric($_GET['page']) or $_GET['page'] <= 0){
$page = 1;
}else{
$page = $_GET['page'];
}
$limit = ($page - 1) * $onpage; //określamy od jakiego newsa będziemy pobierać informacje z bazy danych
$query = "SELECT * FROM test ORDER BY id DESC LIMIT $limit, $onpage";
$result = mysql_query($query) or die (mysql_error());
while ( $row = mysql_fetch_row($result) ) {
echo "</tr>";
echo "<td bgcolor=\"\"><center>" . $row[0] . "</td>";
echo "<form action=\"stronic.php\" method=\"post\"><td bgcolor=\"\"><center>" . $row[1] . "</td>";
echo '<td bgcolor=\"\"><input type="submit" name="klik1" value="Wybieram1"></td>';
echo "<td bgcolor=\"\"><center>" . $row[3] . "</td>";
echo '<td bgcolor=\"\"><input type="submit" name="klik2" value="Wybieram2"></td></form>';
echo "</tr>";
}
echo "</table>";
include('funkcja.php');
//zabezpieczenie na wypadek gdyby ilość stron okazała sie większa niż ilośc wyświetlanych numerów stron
if($navnum > $allpages){
$navnum = $allpages;
}
//ten fragment może być trudny do zrozumienia
//wyliczane są tu niezbędne dane do prawidłowego zbudowania pętli
//zmienne są bardzo opisowę więc nie będę ich tłumaczyć
$forstart = $page - floor($navnum/2);
$forend = $forstart + $navnum;
if($forstart <= 0){ $forstart = 1; }
$overend = $allpages - $forend;
if($overend < 0){ $forstart = $forstart + $overend + 1; }
//ta linijka jest ponawiana ze względu na to, że $forstart mogła ulec zmianie
$forend = $forstart + $navnum;
//w tych zmiennych przechowujemy numery poprzedniej i następnej strony
$prev = $page - 1;
$next = $page + 1;
//nie wpisujemy "sztywno" nazwy skryptu, pobieramy ja od serwera
$script_name = $_SERVER['SCRIPT_NAME'];
//ten fragment z kolei odpowiada za wyślwietenie naszej nawigacji
if($page > 1) echo "<a href=\"".$script_name."?page=".$prev."\">Poprzednia</a>";
if ($forstart > 1) echo "<a href=\"".$script_name."?page=1\">[1]</a>";
if ($forstart > 2) echo "";
for($forstart; $forstart < $forend; $forstart++){
if($forstart == $page){
}else{
}
echo "<a href=\"".$script_name."?page=".$forstart."\">[".$forstart."]</a>";
}
if($forstart < $allpages) echo "";
if($forstart - 1 < $allpages) echo "<a href=\"".$script_name."?page=".$allpages."\">[".$allpages."]</a>";
if($page < $allpages) echo "<a href=\"".$script_name."?page=".$next."\">Następna</a>";
?>
</body>
</html>
Funkcja.php zaincludowana w powyższym kodzie:
Funkcja includowana na samym początku(funkcja.php) w powyższym kodzie, dzięki tej funkcji zlicza klikniecia w przyciski.
<?php
// odbieramy dane z formularza
@$tekst1 = $_POST['tekst1'];
@$klik1 = $_POST['klik1'];
@$tekst2 = $_POST['tekst2'];
@$klik2 = $_POST['klik2'];
if($klik1 == TRUE ) {
// łączymy się z bazą danych
$connection = @mysql_connect('localhost', 'root', 'lolo90')
or die('Brak połączenia z serwerem MySQL');
$db = @mysql_select_db('cowolisz2', $connection)
or die('Nie mogę połączyć się z bazą danych');
// dodajemy rekord do bazy
$ins = @mysql_query("UPDATE dzial SET klik1=klik1+1");
mysql_query("SELECT *FROM pracownik
INNER JOIN dzial
ON test.object_id = dzial.object_id'");
if($ins) echo "Rekord został dodany poprawnie";
else echo "Błąd nie udało się dodać nowego rekordu";
mysql_close($connection);
} else {
echo '<br>Prosimy o wprowadzenie wszystkich pól prawidłowo.';
}
if($klik2 == TRUE ) {
// łączymy się z bazą danych
$connection = @mysql_connect('localhost', 'root', 'lolo90')
or die('Brak połączenia z serwerem MySQL');
$db = @mysql_select_db('cowolisz2', $connection)
or die('Nie mogę połączyć się z bazą danych');
// dodajemy rekord do bazy
$ins = @mysql_query("UPDATE dzial SET klik2=klik2+1");
if($ins) echo "Rekord został dodany poprawnie";
else echo "Błąd nie udało się dodać nowego rekordu";
mysql_close($connection);
} else {
echo '<br>Prosimy o wprowadzenie wszystkich pól prawidłowo.';
}
?>
Prosze o pomoc
zamiana znaczników <code class="html"> na <code class="php">
- @furious programming