webForumDet fria alternativet

Problem med gästbokspaging...

15 svar · 413 visningar · startad av Type

TypeMedlem sedan mars 20021 239 inlägg
#1

Hej! Jag har en paging-funktion som funkar perfa på ett ställe men värdelöst på ett annat... Koden är denna:

<?
session_start();

/* ANSLUTNING TILL DATABASEN UPPRÄTTAS */
$database_host = "localhost";
$database_username = "#####";
$database_password = "#####";
$database = "straxunder_data";

$open_connection = mysql_pconnect($database_host , $database_username , $database_password);
mysql_select_db($database, $open_connection);

///////////////////////// PAGING FUNCTION BEGINS /////////

/*
    En funktion som ger sidlänkar i anslutning till utskrift från
    textfil eller databas.
    $page är vilken sida som är den aktuella.
    $pageNumbers är antal sidor som utskriften är uppdelad på.
    $numLinks är antal sidlänkar som ska visas.
    $align är antingen 'left' eller 'right'. Pagingen justerad 
    höger eller vänster.
    De variabler som finns i querystringen flyttas med 
    till nya sidor.
*/
function pagingList($page, $pageNumbers, 
                    $numLinks, $align){
    //global $HTTP_SERVER_VARS, $HTTP_GET_VARS;
    
    $file = $_SERVER['PHP_SELF'];
    $getvar = $_SERVER['QUERY_STRING'];
    $search = "/(^page=\d*&*|&page=\d*)/i";
    $getvar = preg_replace($search, "", $getvar);
    if ($getvar != "") $getvar = "&".$getvar;
    echo "Sidass:"; 
    if ($pageNumbers > $numLinks){
        $startLink = $page - floor($numLinks/2);
        if ($startLink >($pageNumbers - $numLinks +1)){
            $startLink = $pageNumbers - $numLinks +1;
        }
    }else $startLink = 1;
    if ($startLink<1) $startLink = 1; 
    $stopLink = $startLink + $numLinks -1;
    if ($stopLink>$pageNumbers) $stopLink=$pageNumbers;

    echo "Sida: "; 
    
    if ($page>1){
        echo "<a href=\"$file?page=1$getvar\" ";
        echo "title=\"F&ouml;rsta sidan\">&laquo;</a>";
    } else echo "&laquo;";
    if ($startLink > 1){
        echo " ... ";
    } else echo " -";
    for ($i=$startLink; $i<=$stopLink; $i++){
        if ($i != $page){
            echo " <a href=\"$file?page=$i$getvar\" ";
            echo ">$i</a> ";
        } else {
          echo " [$i] ";
        }
        if ($i<$stopLink) echo "-";
    } 
    if ($stopLink < $pageNumbers){
        echo " ... ";
    } else echo "- ";
    if ($page<$pageNumbers){
        echo "<a href=\"$file?page=$pageNumbers$getvar\" ";
        echo "title=\"Sista sidan\">&raquo;</a>\n";
    } else echo "&raquo;\n";
}

			
		$result = mysql_query("SELECT COUNT(*) FROM gastbokstraxunder");
		$antal = mysql_result($result, 0);
		
		$inlaggPerSida = 8; // Välj antal inlägg per sida, minst 1
		$antalPagLankar = 3; // Välj max antal visade paginglänkar
	
		$pageNumbers = ceil($antal/$inlaggPerSida);
		
		if (isset($_GET["page"]))
    	$page = $_GET["page"];
		else 
			$page = 1;
		
		if ($page > $pageNumbers) 
			$page = $pageNumbers;
		if ($page < 1) 
			$page = 1;
		
		$start = ($page-1) * $inlaggPerSida;
		$res=mysql_query("SELECT * FROM gastbokstraxunder order by ID DESC LIMIT $start,$inlaggPerSida");
/////////////// PAGING FUNCTION ENDS /////////////////////////

if(isset($_SESSION['inloggad']))
	$inloggad='yes';
else
	$inloggad='no';

?>

<html>
	<head>
		<title>STRAX UNDER:NY GÄSTBOK</title>
		<link rel="stylesheet" href="gastbok.css" type="text/css">
	</head>
	<body topmargin="10">
	<a name=top>
		<div id="head">
			<img src=../bilder/gastbokny.gif>
		</div>
		<div id="outer">
			<div style="float:right;">
				<div id="divRight">
					<form action="gastbok_write.php" style="margin: 0px; display: inline;">
						Nick: <input type=text name=nick class=inputsmall>
						Epost: <input type=text name=email class=inputsmall>
						<textarea class=inputtext name=text></textarea>
						<center>
						<input type=submit class=buttonsubmit value="">&nbsp;&nbsp;&nbsp;<input type=reset class=buttonreset value="">
						</center>
					</form>
				</div>
				<div id="information">
					Skriv gärna i gästboken men försök undvika otrevliga uttryck eller sånt som ingen vill se. I övrigt är det bara att kladda ovan. / :)<br><br>
					Antal inlägg: <b><?print("$antal");?></b>
					<hr width=100%><br>
					Sida:
					<?
					
					if ($pageNumbers > 1)
					{
						
						pagingList($page, $pageNumbers, $antalPagLankar, "right");
						
					}
					?>
				</div>
			</div>
			<?
			while($pri=mysql_fetch_object($res))
			{
			print("<div class='content'>");
				print("$pri->datum | ");
				if(!empty($pri->email))
					print("<a href='mailto:$pri->email'>$pri->nick</a>");
				else
					print("$pri->nick");
				print("<hr width=100% style='display: inline;margin:0px;'><br>$pri->text");
			print("</div>");
			}
			?>
			
			
			<a href="#top">TILL TOPPEN</a>
			
		</div>
		<div id="information">
					Skriv gärna i gästboken men försök undvika otrevliga uttryck eller sånt som ingen vill se. I övrigt är det bara att kladda ovan. / :)<br><br>
					Antal inlägg: <b><?print("$antal");?></b>
					<hr width=100%><br>
					Sida:
					<?
					
					if ($pageNumbers > 1)
						pagingList($page, $pageNumbers, $antalPagLankar, "right");
					?>
				</div>
	</body>
</html>

Den syns inte som den ska där uppe... La den längst ner också för att kolla, o där funkar den perfekt! Om någon kunde hjälpa mig så vore jag evigt tacksam. börjar bli himla trött på det nu :)

Ni kan gå hit så ser nu hur det ser ut:
http://www.straxunder.com/nygastbok/gastbok.php

MatteMedlem sedan aug. 20002 975 inlägg
#2

Det hela är ett HTML-problem. Ta bort CSS-länkningen och titta på sidan ska du se att du har det både uppe och nere.

Den finns alltså i HTML-koden identisk på två ställen.

TypeMedlem sedan mars 20021 239 inlägg
#3

Kan någon va snäll o flytta den till HTML-forumet?

sgtpepperMedlem sedan apr. 20007 588 inlägg
#4

Flyttad från PHP-forumet.

TypeMedlem sedan mars 20021 239 inlägg
#5

Om jag tar bort CSS-länkningen fungerar paging-länkarna... Men vad är det i css:en som inte fungerar??? Ingen som vet?

TypeMedlem sedan mars 20021 239 inlägg
#6

Här kommer gastbok.css:

body
	{
		font-family: Verdana,Tahoma;
		font-size:10px;
		color: #000000;
		background-color:#FFFFFF;
		scrollbar-base-color:#FFFFFF;
		scrollbar-darkshadow-Color:#000000;
		scrollbar-track-color:#CCCCCC;
		scrollbar-3d-color:#999999;
		scrollbar-face-color:#FFFFFF;
	}

.inputlarge
	{
		background-color: #CCCCCC;
		height: 16px;
		width: 258px;
		border:1px solid #000000;
		font-size:9;
		font-family:Verdana;
	}	
.inputsmall
	{
		background-color: #CCCCCC;
		height: 16px;
		width: 144px;
		border:1px solid #000000;
		font-size:9;
		font-family:Verdana;
	}	
.inputtext
	{
		background-color: #CCCCCC;
		height: 100px;
		width: 181px;
		border:1px solid #000000;
		font-size:9;
		font-family:Verdana;
	}
	
.buttonsubmit
	{
		background-color: transparent;
		background-image: url(bilder/skicka.gif);
		height: 11px;
		width: 43px;
		border:0px solid #000000;
		cursor:hand;
	}
.buttonreset
	{
		background-color: transparent;
		background-image: url(bilder/radera.gif);
		height: 11px;
		width: 46px;
		border:0px solid #000000;
		cursor:hand;
	}	

#outer {
	position:relative;
	margin: 10px 10px 10px 75px;
	width: 510px;
	border: 1px solid #000000;
	padding:10px;
	background-color: #99CCFF;
}

.content {
	position:relative; /* Position is declared "relative" to gain control of stacking order (z-index). */
	width:269;
	margin:0px 0px 10px 0px;
	background-color: #F1F3F2;
	padding: 10px;
	border:1px solid #000000;
	}

#head{
	position:absolute;
	top:10px;
	left:20px;
}

#delay{
	position:absolute;
	top:10px;
	left:20px;
	background-color:#FFFFFF;
	opacity:50%;
}
#information {
	position:relative;
	margin: 10px 0px 0px 0px;
	border:1px solid black;
	background-color: #F1F3F2;
	width:210px;
	padding:10px;
	voice-family: "\"}\"";
	voice-family:inherit;
	text-align:right;
	z-index:1;
}
body>#information {width:210px;}

#divRight {
	position:relative;
	border:1px solid black;
	background-color: #F1F3F2;
	text-align:right;
	padding:10px;
	z-index:1;
/* Again, the ugly brilliant hack. */
	voice-family: "\"}\"";
	voice-family:inherit;
	width:210px;
	}
/* Again, "be nice to Opera 5". */
body>#divRight {width:210px;}
TypeMedlem sedan mars 20021 239 inlägg
#7

Om jag tar bort det som finns i outer-lagret funkar det.. men vad är det som står där som inte får va med...

jobbigt o behöva felsöka själv när man inte kan något :(

TypeMedlem sedan mars 20021 239 inlägg
#8

Nu funkar det... Va raden position:relative; i #outer -lagret som strulade till det.. tog man bort den funka det.. men nu kommer den svåra frågan till eliten här på wF, varför? ;birp

Jesper TMedlem sedan nov. 20017 144 inlägg
#9

Jag testade att ta bort dessa rader:
voice-family: "\"}\"";
voice-family:inherit;
Då fick det hela ett helt annat utseende.
Har ingen aning om vad de gör där.

TypeMedlem sedan mars 20021 239 inlägg
#10

*lol* Inte jag heller... Hittade det i någon guide o de har följt med sedan dess.. vågar inte ta bort dem förrän någon har berättat vad de gör.. kanske behövs för andra tattarwebläsare eller så?

Jesper TMedlem sedan nov. 20017 144 inlägg
#11

haha, :e ja man kan ju aldrig veta. Det gjorde i alla fall så att det såg ut som tajkon på skärmen i alla fall.

Jesper TMedlem sedan nov. 20017 144 inlägg
#12

Verkar vara CSS2, och I.E stödjer väl inte det.

http://www.algonet.se/\~eva/ref/css/css2.html skrev:

I externa och inbäddade mallar måste stilspråket uppges; nya typer av externa stilmallar, Mediatyper; värdet 'inherit'; paginerade dokument; relativ och absolut placering av element; nya pseudoklasser och pseudoelement; Aural style sheets (talmallar);

Läs mer...»

TypeMedlem sedan mars 20021 239 inlägg
#13

Tack! med andra ord orkar man inte ha med det :P

mikkeXMedlem sedan aug. 2002477 inlägg
#14

Jesper T skrev:

Jag testade att ta bort dessa rader:
voice-family: "\"}\"";
voice-family:inherit;
Då fick det hela ett helt annat utseende.
Har ingen aning om vad de gör där.

Visst är det css 2 - vad de är till för - de är till för ett css-hack för att positionering ska fungera ok i ie 5, det är det så kallade tantek-hacket.
Mer här:
http://www.tantek.com/CSS/Examples/boxmodelhack.html
och mer om andra box-hack:
http://css-discuss.incutio.com/?page=BoxModelHack

En av anledningarna till varför din sida inte fungerade från början är att det saknades en doctype.

TypeMedlem sedan mars 20021 239 inlägg
#15

Men ie brukar ju alltid visa rätt ändå... jag bryr mig inte nu om rätt standard osv.. men du menar att doctypen behövs ändå? Något kodex på en bra doctype som jag ska använda?

mikkeXMedlem sedan aug. 2002477 inlägg
#16

IE brukar visa rätt...

den var ny :birp
Om du vill ha dina sidor "rätt" i så många webbläsare som möjligt så behöver du bry dig om doctype och vilken standard du använder.

För att lära dig mer om doctype: http://www.alistapart.com/stories/doctype/

Din sida kan använda t.ex html 4.01 trans eller xhtml 1.0 trans.

146 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)