Jag hade nog räknat bort alla inlägg med deleted=0 redan i sql satsen så här:
$sql = "SELECT * FROM gb where owner='$username' AND deleted!=0 ORDER BY id DESC LIMIT $offset, $limit";
Borde inte allt falla på plats då?
2 svar · 246 visningar · startad av mahedel
såhär ser mitt paging script ut:
<?
// Anslut och välj databas
$db = mysql_connect ("localhost", "$dbu", "$dbp")
or die (mysql_error());
mysql_select_db ("dbnamn");
$limit = 3; // Avgör hur många rader som visas per sida.
if (isset ($_GET['page']) ) {
$page = $_GET['page'];
} else {
$page = 0;
}
$offset = $page * $limit;
// Kör första sql-frågan som tar reda på antalet rader.
$sql = "SELECT COUNT(*) AS rows_tot FROM gb where owner='$username'";
$result = mysql_query($sql)
or die(mysql_error());
$row = mysql_fetch_array ($result);
$pages_tot = floor(abs(($row['rows_tot']-1) / $limit)); // Räknar ut hur många sidor det blir.
// Tillägg börjar
$max_pages = 100; // Max antal sidor
if (($max_pages - 1) < $pages_tot) {
$pages_tot = $max_pages - 1;
}
if ( $offset > ($max_pages - 1)*$limit ) {
$offset = ($max_pages - 1)*$limit;
$page = $pages_tot;
}
// Tillägg slutar
if ($row['rows_tot'] == 0) {
echo "Inga inlägg i gästboken.";
}
else {
echo "Sida " . ($page + 1) . " av " . ($pages_tot + 1) . "<br>";
}
if ($page > 0) { // Om man inte är på första sidan visas dom här länkarna
echo "<a href=\"{$_SERVER['PHP_SELF']}?username=$username&page=" . ($page - 1) . "\">Föregående</a> ";
}
if ($page < $pages_tot) { // Om man inte är på sista sidan visas dom här länkarna
echo "<a href=\"{$_SERVER['PHP_SELF']}?username=$username&page=" . ($page + 1) . "\">Nästa</a>";
}
echo "<br><br>";
// Kör andra sql-frågan som tar rätt antal rader.
$sql = "SELECT * FROM gb where owner='$username' ORDER BY id DESC LIMIT $offset, $limit";
$result = mysql_query($sql)
or die(mysql_error());
while ( $row = mysql_fetch_array ($result) ) {
$gb_id = $row['id'];
$gb_writer = $row['writer'];
$gb_owner = $row['owner'];
$gb_private = $row['private'];
$gb_deleted = $row['deleted'];
if ($gb_deleted == 0 || $gb_deleted == "" || $info_rank == 3){
echo $row['datum_dag'] . " ";
echo $row['datum_tid'];
if ($gb_private == 1)
echo " <font color=\"#FF0000\">[PRIVAT INLÄGG]</font>";
if ($info_rank == 3 || $info_rank == 2){
if ($gb_deleted == 1)
echo " <font color=\"#FF0000\">[BORTTAGET INLÄGG]</font>";
}
echo "<br>";
echo "<a href=\"profil.php?username=";
echo $row['writer'];
echo "\"";
echo "title=\"Besök ";
echo $row['writer'];
echo "\"";
echo "<b>";
echo $row['writer'];
echo "</b></a>";
echo " <b>skrev:</b>";
echo "<br>";
echo $row['gbtext'] . "<br><br>";
if($login_user == "$gb_writer" || $login_user == "$gb_owner" || $info_rank == 3 || $info_rank == 2)
echo "<a
href=\"gb.php?username=$gb_owner&delete=$gb_id\"> Ta bort inlägg</a> <font color=\"black\">|</font> <a
href=\"gb.php?username=$gb_owner&undodelete=$gb_id\"> Ta tillbaka inlägg</a>
<font color=\"black\">|</font> <a href=\"gb.php?username=$gb_owner&edit=$info_id\">Redigera inlägg</a><br><br>";
}
}
?>
detta script fungerar jättebra men när man trycker på länken "Ta bort inlägg" så uppdateras databasen till deleted='0' för det aktuella inlägget som man trycker på ska döljas och inte visas för alla användare utan bara vissa och för dom som det inte syns för så räknar den ju raden fast den inte syns för de så då kan det bli i vissa fall att en hel pagingsida är helt tom. Så det jag vill är att den bara räknar med dom raderna som har deleted='0' detta borde gå med jag har inte lyckats felfritt så nu ber jag om hjälp...
/MVH Martin
Jag hade nog räknat bort alla inlägg med deleted=0 redan i sql satsen så här:
$sql = "SELECT * FROM gb where owner='$username' AND deleted!=0 ORDER BY id DESC LIMIT $offset, $limit";
Borde inte allt falla på plats då?
jag tycker även att det borde funka men...
jag tycker även att det borde funka men... det gör det inte jag har provat med AND deleted='0' och ditt förslag: AND deleted!=0
men inget verkar fungera något vidare...
någon med ett annat förslag...
/MVH Martin