Avatar billede the_edge Nybegynder
07. maj 2007 - 14:26 Der er 6 kommentarer og
1 løsning

Include ikke side

Hejsa

I min index.php har jeg nogen masse include statments.

men den gider ikke hente min nyheder når jeg kører limit på dem. Det virker fint hvis jeg ikke henter den ind i index siden.

jeg kan ikke lige finde fejlen. Den includere bare en tom side, der kommer ikke nogen fejl meddelse.


(noget af index.php)
if ($_GET["pid"] == nyheder)
{
   
include_once("nyheder.php");

}


if ($_GET["pid"] == 'nyheder?limit_fra=$limit_fra_n&id='.$_GET["id"].'')
{
   
include_once("nyheder.php");

}

if ($_GET["pid"] == 'pid=nyheder?limit_fra=$antalsider&id='.$_GET["id"].'')
{
   
include_once("nyheder.php");

}


nyheder.php (det hele)

<?

include_once("sql.php");
include_once("help.php");


        $antalperside = 1;
   

        // CONNECT TIL DB

        conn(); //$forbindelse = mysql_select_db("opgman", mysql_connect("localhost","root",""));
       
        $hentsider = mysql_query("select * from nyheder ORDER BY id DESC") or die (mysql_error());



$antalsider = ceil($hentsider / $antalperside);
$limit_fra = $_GET['limit_fra'];


if(!$limit_fra) {
$limit_fra = 1;
}
$limit_fra = $limit_fra * $antalperside - $antalperside;

$hent = mysql_query("SELECT * FROM nyheder ORDER BY id DESC LIMIT $limit_fra,$antalperside");
while($row = mysql_fetch_array($hent)) {

$dato = date('d/m Y', $row['dato']);

$date = $row["dato"];
       
        echo '<center><h2>Nyheder</h2></center></ br></ br>';
       
        echo '<table align="center" border="0" width="45%" height="50%">';  //  height="50%"
       
        echo '<tr>';
        echo '<td rowspan="4" width="5"><div="nyhedvenstre">  </div></td>';
        echo '<td align="center"> <div id="nyhoverskrift"> <h3>'.$row["overskrift"].'</h3></div></td>' ;
        echo '<td rowspan="4"><div="nyhedhojre"> </div> </td>';
       
       
        echo "</tr>";
       
             
        echo "<tr>";
        echo '<td align="left" cellpadding="15" ><div id="nyhindhold"><p>'.$row["indhold"].'</p></div></td>';
        echo "</tr>";
        echo "<tr>";
        echo '<td align="center"></td>';
        echo "</tr>";
        echo "<tr>";
        echo '<td align="right"><p align="left">'.$date.'</p><p align=right> '.$row["forfatter"].'</p></td>';
        echo "</tr>";
       
        echo '</table> <hr>';
     
       
       
       
        echo '<br /><br />';

}
?>


<?
$limit_fra = $limit_fra / $antalperside + 1;

if ( $antalsider > 1 AND $_GET['limit_fra'] > 1) {
$limit_fra_f = $limit_fra - 1;
echo"<a href=index.php?pid=nyheder?limit_fra=$limit_fra_f&id=".$_GET['id'].">Forrige side</a>";
echo"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
}

for($i=1;$i<=$antalsider;$i++) {


  if( $i == $limit_fra ) {
    echo "<b>$limit_fra</b>";
  }
  else {
    echo "<a href=index.php?pid=nyheder?limit_fra=".$i."&id=".$_GET['id'].">".$i."</a>&nbsp;";
  }
  }
  if( $limit_fra > $antalsider && $antalsider != 0 )
 
        {
  print(" <script language='javascript' type='text/javascript'>
        location.href='index.php?pid=nyheder?limit_fra=$antalsider&id=".$_GET['id']."';
        </script>");
        }

  if( $_GET['limit_fra'] < 1 && $_GET['limit_fra'] != "")
        {
    print(" <script language='javascript' type='text/javascript'>
        location.href='index.php?pid=nyheder?limit_fra=1&id=".$_GET['id']."';
        </script>");
        }

if ( $antalsider > 1 AND $_GET['limit_fra'] < $antalsider ) {

$limit_fra_n = $limit_fra + 1;
echo"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
echo"<a href=index.php?pid=nyheder?limit_fra=$limit_fra_n&id=".$_GET['id'].">Næste side</a>";
}


?>
Avatar billede intenz Novice
07. maj 2007 - 15:20 #1
De to if sætninger her giver ikke rigtig nogen mening. Men mindre du har lavet nogle meget underlige ting i din url.

if ($_GET["pid"] == 'nyheder?limit_fra=$limit_fra_n&id='.$_GET["id"].'')
{
include_once("nyheder.php");
}

if ($_GET["pid"] == 'pid=nyheder?limit_fra=$antalsider&id='.$_GET["id"].'')

include_once("nyheder.php");
}


Hvordan ser dit link ud når du kører med limit?
Avatar billede intenz Novice
07. maj 2007 - 15:25 #2
Nå, jeg kan jo se dem nederst i din script.

Du behøver ikke lave en ny if sætning for hver limit. Du kan bare køre din eksisterende:

if ($_GET["pid"] == 'nyheder') {
include_once("nyheder.php");
}

og i den se om limit_fra er sat med:
if (isset($_GET["limit_fra"])) {
// gør noget
}

Du skal så bare ændre din "næste side" url fra:
index.php?pid=nyheder?limit_fra=$limit_fra_n&id=".$_GET['id'].">

til:
index.php?pid=nyheder&limit_fra=$limit_fra_n&id=".$_GET['id'].">

Så der kun er et ? og variablerne adskilles af &
Avatar billede the_edge Nybegynder
07. maj 2007 - 19:02 #3
ahh det var jo meget smart med at tjekke om den er sat.

hvorfor må der kun være et ? og ikke flere ?
Avatar billede intenz Novice
08. maj 2007 - 18:04 #4
Det fungerer ved at ? viser, at her slutter filnavnet og der kommer 1 variabel. Skal der være mere end 1 variabel skal de så efterfølgende variabler adskilles af &.

På denne måde:
index.php?v_et=1&v_to=2&v_tre=3

Jeg kender ikke den mere videnskabelige forklaring på hvorfor det er sådan. Men det er nu engang den korrekte måde at gøre det på :)
Avatar billede the_edge Nybegynder
09. maj 2007 - 21:04 #5
ahh okay det er jo også meget forståeligt :) læg et svar :)
Avatar billede the_edge Nybegynder
31. maj 2007 - 09:32 #6
læg et svar så jeg kan få lukket
Avatar billede intenz Novice
20. juni 2007 - 11:43 #7
faldt lige over den her :)
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester