Avatar billede darkstylerdk Nybegynder
06. juni 2004 - 21:53 Der er 46 kommentarer og
2 løsninger

Næste side i news-system

På http://www.testingit.1go.dk/ (et test-domæne) har jeg endelig tilpasset news-systemet med designet. Men jeg føler at der er brug for at kunnne se ALLE nyhederne uden at skulle søge på dem. Så der i bunden er mulighed for at navigere til de næste 5 nyheder via et "næste" link. Kan i hjælpe med det?

Bed om den kilde i vil se. Dermed bliver der ikke FOR meget overflødigt.
Avatar billede darkstylerdk Nybegynder
06. juni 2004 - 21:55 #1
Derudover virker søg-funktionen ikke da man ikke kan gå til søgeresultatside 2.
MEN det er sådan en slags funktion jeg søger :)
Avatar billede ahv Nybegynder
06. juni 2004 - 21:57 #2
Simpelt eksempel som burde være nemt at tilpasse:

<?php
$connection = mysql_pconnect("host","user","pass");
mysql_select_db("database");

$pr_side = 10;
$vis_fra = if(isset($_GET['visfra'])) ? $_GET["visfra"] : 0;

$query = mysql_query ("SELECT * FROM tabel ORDER BY id DESC limit $vis_fra, $pr_side") or die(mysql_error());
while ($row = mysql_fetch_array($query)) {
    echo $row['id']."<br>";
}

$antal = mysql_result(mysql_query("SELECT COUNT(*) FROM tabel"),0);

if ($visfra > 0) {
    $bagud = $visfra - $prside;
    echo "<a href='$_SERVER[PHP_SELF]?visfra=$bagud'>Forrige</a> ";
}
$page = 1;
for ($start = 0; $antal > $start; $start = $start + $prside) {
    if($visfra != $page * $prside - $prside) {
        echo "<a href='$_SERVER[PHP_SELF]?visfra=$start'>$page</a> ";
    } else {
        echo $page." ";
    }
    $page++;
}
if ($visfra < $antal - $prside) {
    $naeste = $visfra + $prside;
    echo " <a href='$_SERVER[PHP_SELF]?visfra=$naeste'>Næste</a>";
}
?>
Avatar billede darkstylerdk Nybegynder
06. juni 2004 - 21:57 #3
Nåh ja. Knapperne skal jeg nok få rettet. Men det vil jeg ikke spilde jeres tid med at spørge om hjælp til. Den slags hører vel hjemme i css ;P
Avatar billede darkstylerdk Nybegynder
06. juni 2004 - 21:59 #4
Men da jeg er php-n00b (skal læse et par bøger i ferien, men skal bruge det news-system før) har jeg svært ved at 'lave om' lige sådan. Kan du putte det ind i noget kode? Og hvilken kode skal du bruge?
Avatar billede ahv Nybegynder
06. juni 2004 - 22:00 #5
Jeg skal bruge den kode du har på din index side (http://www.testingit.1go.dk/)
Avatar billede darkstylerdk Nybegynder
06. juni 2004 - 22:00 #6
Derfor gav jeg de fleste af mine points.
Avatar billede dennismp Nybegynder
06. juni 2004 - 22:00 #7
darkstylerdk; af ren nysgerrighed. Hvilke bøger har du ?
Avatar billede darkstylerdk Nybegynder
06. juni 2004 - 22:02 #8
Index:


<?php
$title = 'Det Radikale Venstre i Svendborg';
include('header.php');

print "<h1>Aktuelt</h1>";

include('inc.config.php');
$query = mysql_query("SELECT id,title,image,synopsis FROM news ORDER BY id DESC LIMIT 5") or die(mysql_error());
while ($row = mysql_fetch_assoc($query)) {
  print '<p>';
  print empty($row['image']) ? '' : '<img border=0 align="right" src="files/'.$row['image'] . '" class="image">';
  print '<span lang="da"><b>' . $row['title'] . '</b></span><br>';
  print $row['synopsis'];
  print '<br><a href="news.display.php?id='.$row['id'].'">Læs mere</a></p>';
  print '<p>&nbsp;</p>';
}
?>
<div class="hr"></div>
<a href="news.search.php">Søg efter tekst</a>
<?php
include('footer.php');
?>

Mens news.display.php er:


<?php
$title = 'Det Radikale Venstre i Svendborg';
include('header.php');

include('inc.config.php');
$query = mysql_query("SELECT *,DATE_FORMAT(date,'%e/%c-%y %T') AS date FROM news WHERE id=".$_GET['id']."");
$row = mysql_fetch_assoc($query);
echo '<h1>'.$row['title'].'</h1>';
echo '<p><b>'.$row['synopsis'].'</b></p>';
echo '<p>'.$row['author'].' - '.$row['date'].'</p>';
echo nl2br($row['text']);
echo '<div class="hr"></div>';

$query = mysql_query("SELECT *,DATE_FORMAT(date,'%e/%c-%y %T') AS date FROM comments WHERE parent=".$_GET['id']." ORDER BY id ASC");
if (mysql_num_rows($query) > 0) {
    echo '<h2>Kommentarer</h2>';
    while ($row = mysql_fetch_assoc($query)) {
        echo empty($row['email']) ? htmlspecialchars($row['name']) : '<a href="mailto:'.$row['email'].'">'.htmlspecialchars($row['name']).'</a>';
        echo '&nbsp;('.$row['date'].')<br><br>';
        echo nl2br(htmlspecialchars($row['text']));
        echo '<div class="hr"></div>';
    }
}
?>

<h2>Kommenter tekst</h2>

<form method="post" action="../form.handle.php">
<input type="hidden" name="referer" value="comment">
<input type="hidden" name="parent" value="<?php echo $_GET['id']; ?>">

Navn: <input type="text" name="name" style="width: 120px">
Email: <input type="text" name="email" style="width: 120px"><br>
<textarea name="text" rows="7" cols="0" style="width: 328px"></textarea><br><br>

<input type="submit" value="Send">
</form>

<div class="hr"></div>
<a href="../index.php">Seneste tekster</a> | <a href="../news.search.php">Søg efter tekst</a>
<div class="hr"></div>
<?php
include('footer.php');
?>



Og inc.config.php:


<?php
/* Indstillinger : database */
$cfg['mysql']['host'] = 'xxx'; // Host til database
$cfg['mysql']['username'] = 'xxx'; // Brugernavn til database
$cfg['mysql']['password'] = 'xxx'; // Kodeord til database
$cfg['mysql']['database'] = 'xxx'; // Database

/* Indstillinger : administrationsmodul */
$cfg['admin']['username'] = 'webmaster'; // Brugernavn til administrationsmodul
$cfg['admin']['password'] = 'XXX'; // Kodeord til administrationsmodul

/* Indstillinger : side */
$cfg['limit'] = 4; // Antal resultater pr. side.
$cfg['pages_each_way'] = 3; // Sider der peger hver vej

/* Redigering ikke nødvendig herunder */
mysql_connect($cfg['mysql']['host'],$cfg['mysql']['username'],$cfg['mysql']['password']);
mysql_select_db($cfg['mysql']['database']);

$total = mysql_result(mysql_query("SELECT COUNT(*) FROM news"),0);
$offset = isset($_GET['offset']) ? $_GET['offset'] : 0;
$start_point = ($offset-($cfg['pages_each_way']*$cfg['limit']) < 0) ? 0 : $offset-($cfg['pages_each_way']*$cfg['limit']);
$end_point = ($offset+($cfg['pages_each_way']*$cfg['limit']) > $total) ? $total : $offset+($cfg['pages_each_way']*$cfg['limit']);
$page_number = ($start_point/$cfg['limit'])+1;
?>
Avatar billede ahv Nybegynder
06. juni 2004 - 22:05 #9
<?php

$pr_side = 5;
$vis_fra = if(isset($_GET['visfra'])) ? $_GET["visfra"] : 0;

$title = 'Det Radikale Venstre i Svendborg';
include('header.php');

print "<h1>Aktuelt</h1>";

include('inc.config.php');
$query = mysql_query("SELECT id,title,image,synopsis FROM news ORDER BY id $vis_fra, $pr_side") or die(mysql_error());
while ($row = mysql_fetch_assoc($query)) {
  print '<p>';
  print empty($row['image']) ? '' : '<img border=0 align="right" src="files/'.$row['image'] . " class="image">';
  print '<span lang="da"><b>' . $row['title'] . '</b></span><br>';
  print $row['synopsis'];
  print '<br><a href="news.display.php?id='.$row['id'].'">Læs mere</a></p>';
  print '<p>&nbsp;</p>';
}

$antal = mysql_result(mysql_query("SELECT COUNT(*) FROM news"),0);

if ($visfra > 0) {
    $bagud = $visfra - $prside;
    echo "<a href='$_SERVER[PHP_SELF]?visfra=$bagud'>Forrige</a> ";
}
$page = 1;
for ($start = 0; $antal > $start; $start = $start + $prside) {
    if($visfra != $page * $prside - $prside) {
        echo "<a href='$_SERVER[PHP_SELF]?visfra=$start'>$page</a> ";
    } else {
        echo $page." ";
    }
    $page++;
}
if ($visfra < $antal - $prside) {
    $naeste = $visfra + $prside;
    echo " <a href='$_SERVER[PHP_SELF]?visfra=$naeste'>Næste</a>";
}

?>
<div class="hr"></div>
<a href="news.search.php">Søg efter tekst</a>
<?php
include('footer.php');
?>
Avatar billede darkstylerdk Nybegynder
06. juni 2004 - 22:06 #10
Haaarjsa Dennis igen ;-)


O'Reilly - PHP Cookbook
A Programmers Introduction to PHP
PHP - How To
og nogle fra biblioteket sikker ;-)
Avatar billede darkstylerdk Nybegynder
06. juni 2004 - 22:11 #11
Så ser det således ud:
http://www.testingit.1go.dk/index.php
Det vil sige der er en fejl.

Prøver en anden host ;)
Avatar billede dennismp Nybegynder
06. juni 2004 - 22:12 #12
Hej :)

Jeg leger lidt med idéen om at bruge lidt tid på at lave en dansk php bog - online (sådan opensource-agtigt). Sådan helt fra bunden... Men det virker bare som et enormt projekt :)
Avatar billede ahv Nybegynder
06. juni 2004 - 22:13 #13
<?php

$pr_side = 5;
$vis_fra = if(isset($_GET['visfra'])) ? $_GET["visfra"] : 0;

$title = 'Det Radikale Venstre i Svendborg';
include('header.php');

print "<h1>Aktuelt</h1>";

include('inc.config.php');
$query = mysql_query("SELECT id,title,image,synopsis FROM news ORDER BY id DESC LIMIT $vis_fra, $pr_side") or die(mysql_error());
while ($row = mysql_fetch_assoc($query)) {
  print '<p>';
  print empty($row['image']) ? '' : '<img border=0 align="right" src="files/'.$row['image'] . " class="image">';
  print '<span lang="da"><b>' . $row['title'] . '</b></span><br>';
  print $row['synopsis'];
  print '<br><a href="news.display.php?id='.$row['id'].'">Læs mere</a></p>';
  print '<p>&nbsp;</p>';
}

$antal = mysql_result(mysql_query("SELECT COUNT(*) FROM news"),0);

if ($visfra > 0) {
    $bagud = $visfra - $prside;
    echo "<a href='$_SERVER[PHP_SELF]?visfra=$bagud'>Forrige</a> ";
}
$page = 1;
for ($start = 0; $antal > $start; $start = $start + $prside) {
    if($visfra != $page * $prside - $prside) {
        echo "<a href='$_SERVER[PHP_SELF]?visfra=$start'>$page</a> ";
    } else {
        echo $page." ";
    }
    $page++;
}
if ($visfra < $antal - $prside) {
    $naeste = $visfra + $prside;
    echo " <a href='$_SERVER[PHP_SELF]?visfra=$naeste'>Næste</a>";
}

?>
<div class="hr"></div>
<a href="news.search.php">Søg efter tekst</a>
<?php
include('footer.php');
?>
Avatar billede darkstylerdk Nybegynder
06. juni 2004 - 22:13 #14
Parse error: parse error in index.php on line 4
Avatar billede darkstylerdk Nybegynder
06. juni 2004 - 22:18 #15
Dennis: Fin idé. VILLE LÆSE DEN!
Avatar billede ahv Nybegynder
06. juni 2004 - 22:19 #16
Jeg går ikke ud fra det er til det forslag jeg postede 06/06-2004 22:13:38? Prøv evt. at fjerne det linieskift efter det første <?php
Avatar billede darkstylerdk Nybegynder
06. juni 2004 - 22:19 #17
Hvad er der galt med dette?:

$vis_fra = if(isset($_GET['visfra'])) ? $_GET["visfra"] : 0;
Avatar billede detox Nybegynder
06. juni 2004 - 22:20 #18
Skal nok være:

$vis_fra = isset($_GET['visfra']) ? $_GET["visfra"] : 0;
Avatar billede darkstylerdk Nybegynder
06. juni 2004 - 22:21 #19
Så er fejlen bare på linje 3 - men de er jo osse ved at være gamle ;-)
Avatar billede detox Nybegynder
06. juni 2004 - 22:21 #20
print empty($row['image']) ? '' : '<img border=0 align="right" src="files/'.$row['image'] . " class="image">';

skal være:

print empty($row['image']) ? '' : '<img border=0 align="right" src="files/'.$row['image'] . ' class="image">';
Avatar billede darkstylerdk Nybegynder
06. juni 2004 - 22:22 #21
Så røg den første fejl væk. MEN:

Parse error: parse error in index.php on line 14
Avatar billede darkstylerdk Nybegynder
06. juni 2004 - 22:27 #22
http://www.testingit.1go.dk/index.php

Den går HELT amok med loadingen
Avatar billede ahv Nybegynder
06. juni 2004 - 22:34 #23
<?php
$pr_side = 5;
$visfra = isset($_GET['visfra']) ? $_GET["visfra"] : 0;

$title = 'Det Radikale Venstre i Svendborg';
include('header.php');

print "<h1>Aktuelt</h1>";

include('inc.config.php');
$query = mysql_query("SELECT id,title,image,synopsis FROM news ORDER BY id DESC LIMIT $vis_fra, $pr_side") or die(mysql_error());
while ($row = mysql_fetch_assoc($query)) {
  print '<p>';
  print empty($row['image']) ? '' : '<img border=0 align="right" src="files/'.$row['image'] . ' class="image">';
  print '<span lang="da"><b>' . $row['title'] . '</b></span><br>';
  print $row['synopsis'];
  print '<br><a href="news.display.php?id='.$row['id'].'">Læs mere</a></p>';
  print '<p>&nbsp;</p>';
}

$antal = mysql_result(mysql_query("SELECT COUNT(*) FROM news"),0);

if ($visfra > 0) {
    $bagud = $visfra - $prside;
    echo "<a href='$_SERVER[PHP_SELF]?visfra=$bagud'>Forrige</a> ";
}
$page = 1;
for ($start = 0; $antal > $start; $start = $start + $prside) {
    if($visfra != $page * $prside - $prside) {
        echo "<a href='$_SERVER[PHP_SELF]?visfra=$start'>$page</a> ";
    } else {
        echo $page." ";
    }
    $page++;
}
if ($visfra < $antal - $prside) {
    $naeste = $visfra + $prside;
    echo " <a href='$_SERVER[PHP_SELF]?visfra=$naeste'>Næste</a>";
}

?>
<div class="hr"></div>
<a href="news.search.php">Søg efter tekst</a>
<?php
include('footer.php');
?>
Avatar billede ahv Nybegynder
06. juni 2004 - 22:35 #24
Hov ;

<?php
$pr_side = 5;
$vis_fra = isset($_GET['visfra']) ? $_GET["visfra"] : 0;

$title = 'Det Radikale Venstre i Svendborg';
include('header.php');

print "<h1>Aktuelt</h1>";

include('inc.config.php');
$query = mysql_query("SELECT id,title,image,synopsis FROM news ORDER BY id DESC LIMIT $vis_fra, $pr_side") or die(mysql_error());
while ($row = mysql_fetch_assoc($query)) {
  print '<p>';
  print empty($row['image']) ? '' : '<img border=0 align="right" src="files/'.$row['image'] . ' class="image">';
  print '<span lang="da"><b>' . $row['title'] . '</b></span><br>';
  print $row['synopsis'];
  print '<br><a href="news.display.php?id='.$row['id'].'">Læs mere</a></p>';
  print '<p>&nbsp;</p>';
}

$antal = mysql_result(mysql_query("SELECT COUNT(*) FROM news"),0);

if ($vis_fra > 0) {
    $bagud = $vis_fra - $prside;
    echo "<a href='$_SERVER[PHP_SELF]?visfra=$bagud'>Forrige</a> ";
}
$page = 1;
for ($start = 0; $antal > $start; $start = $start + $prside) {
    if($vis_fra != $page * $prside - $prside) {
        echo "<a href='$_SERVER[PHP_SELF]?visfra=$start'>$page</a> ";
    } else {
        echo $page." ";
    }
    $page++;
}
if ($vis_fra < $antal - $prside) {
    $naeste = $vis_fra + $prside;
    echo " <a href='$_SERVER[PHP_SELF]?visfra=$naeste'>Næste</a>";
}

?>
<div class="hr"></div>
<a href="news.search.php">Søg efter tekst</a>
<?php
include('footer.php');
?>
Avatar billede darkstylerdk Nybegynder
06. juni 2004 - 22:46 #25
Men den loader så weird???
Hvad sker der?
Avatar billede darkstylerdk Nybegynder
06. juni 2004 - 22:52 #26
Til sidst henter den alt udover billederne og til sidst på siden kommer en LAAAANG talrække der slutter med

442096 442097 442098 442099 442100 442101 442102 442103 442104 442105 442106 442107 442108 442109 442110 442111 442112 442113 442114 442115 442116 442117
Avatar billede darkstylerdk Nybegynder
06. juni 2004 - 22:52 #27
Dvs. den henter 442117 og det er DERFOR det tager lang tid ...
Avatar billede dennismp Nybegynder
06. juni 2004 - 22:55 #28
øverst oppe ret:
$pr_side = 5;
til
$prside = 5;
Avatar billede ahv Nybegynder
06. juni 2004 - 22:56 #29
Pis hvorfor har jeg overset så meget, det er alt for længe siden jeg har kodet PHP ;

<?php
$pr_side = 5;
$vis_fra = isset($_GET['visfra']) ? $_GET["visfra"] : 0;

$title = 'Det Radikale Venstre i Svendborg';
include('header.php');

print "<h1>Aktuelt</h1>";

include('inc.config.php');
$query = mysql_query("SELECT id,title,image,synopsis FROM news ORDER BY id DESC LIMIT $vis_fra, $pr_side") or die(mysql_error());
while ($row = mysql_fetch_assoc($query)) {
  print '<p>';
  print empty($row['image']) ? '' : '<img border=0 align="right" src="files/'.$row['image'] . ' class="image">';
  print '<span lang="da"><b>' . $row['title'] . '</b></span><br>';
  print $row['synopsis'];
  print '<br><a href="news.display.php?id='.$row['id'].'">Læs mere</a></p>';
  print '<p>&nbsp;</p>';
}

$antal = mysql_result(mysql_query("SELECT COUNT(*) FROM news"),0);

if ($vis_fra > 0) {
    $bagud = $vis_fra - $pr_side;
    echo "<a href='$_SERVER[PHP_SELF]?visfra=$bagud'>Forrige</a> ";
}
$page = 1;
for ($start = 0; $antal > $start; $start = $start + $pr_side) {
    if($vis_fra != $page * $pr_side - $pr_side) {
        echo "<a href='$_SERVER[PHP_SELF]?visfra=$start'>$page</a> ";
    } else {
        echo $page." ";
    }
    $page++;
}
if ($vis_fra < $antal - $pr_side) {
    $naeste = $vis_fra + $pr_side;
    echo " <a href='$_SERVER[PHP_SELF]?visfra=$naeste'>Næste</a>";
}

?>
<div class="hr"></div>
<a href="news.search.php">Søg efter tekst</a>
<?php
include('footer.php');
?>
Avatar billede darkstylerdk Nybegynder
06. juni 2004 - 23:01 #30
Så... Nu mangler jeg bare at kunne se billederne ;)
http://www.testingit.1go.dk/index.php
Avatar billede ahv Nybegynder
06. juni 2004 - 23:03 #31
print empty($row['image']) ? '' : '<img border="0" align="right" src="files/$row[image]" class="image">';
Avatar billede dennismp Nybegynder
06. juni 2004 - 23:03 #32
ret:
print empty($row['image']) ? '' : '<img border=0 align="right" src="files/'.$row['image'] . ' class="image">';
til
print empty($row['image']) ? '' : '<img border=0 align="right" src="files/'.$row['image'] . '" class="image">';

(der mangler et " før class)
Avatar billede dennismp Nybegynder
06. juni 2004 - 23:03 #33
Jeg hader den linje :-)
Avatar billede ahv Nybegynder
06. juni 2004 - 23:11 #34
print empty($row['image']) ? '' : '<img border=0 align="right" src="files/'.$row['image'].'" class="image">';
Avatar billede dennismp Nybegynder
06. juni 2004 - 23:21 #35
print empty($row['image']) ? '' : '<img border=0 align="right" src="files/'.$row['image'] . [single-quote] [double-quote] class="image">';
Avatar billede ahv Nybegynder
06. juni 2004 - 23:23 #36
Hmm, hvorfor dælen laver E nu om på mine post? Netop det du referere til deenismp skrev jeg 06/06-2004 23:11:14 som E åbenbart har rettet på :/
Avatar billede ahv Nybegynder
06. juni 2004 - 23:25 #37
Prøver blot lige for at teste E om den vil skrive den nu?

print empty($row['image']) ? '' : '<img border="0" align="right" src="files/'.$row['image'].'" class="image">';
Avatar billede ahv Nybegynder
06. juni 2004 - 23:26 #38
Ja så er der jo ikke noget at sige til at vi løber skævt af hinanden når E ikke poster det kode der bliver skrevet ordenligt.
Avatar billede dennismp Nybegynder
06. juni 2004 - 23:38 #39
ahv: Ah! Så er det ikke kun mig der har problemer. Sidst jeg rodede med den linje havde jeg nøjagtig samme problem - jeg troede jeg var et fjols da jeg endte med at "lave" den samme fejl 3 gange i træk :) (derfor begyndt jeg med single/double-quote :) )
Avatar billede darkstylerdk Nybegynder
07. juni 2004 - 08:21 #40
Jeg gik bare tilbage til det "gamle" spm ( http://www.eksperten.dk/spm/504789 ) hvor du, Denneis havde lavet http://dennis.moellegaard.dk/v4/php/504789.phps . Så kunne jeg bare kopiere den linje derfra ;0)

SÅ NU VIKER DET!!!
Hvis jeg kunne få et lille svar fra Dennismp kunne vi måske sige 100 til ahv og 21 til Dennis (da den linje har været pointgivet før.
Er det ok med jer?
Avatar billede dennismp Nybegynder
07. juni 2004 - 12:07 #41
Helt fint. Ahv har svaret på langt det meste af det :)
Avatar billede ahv Nybegynder
07. juni 2004 - 12:07 #42
Det er helt fint.
Avatar billede darkstylerdk Nybegynder
07. juni 2004 - 16:04 #43
Så der kriiidt. Eller point rettere ;o)
Avatar billede darkstylerdk Nybegynder
07. juni 2004 - 16:08 #44
NOOO! Den gav sq forkerte poins :(((
Kan i ik dele på en anden måde?
Kan du Dennis ik oprette et smp med points?


SORRY!!!
Avatar billede dennismp Nybegynder
07. juni 2004 - 16:12 #45
ne ne ne ne :-)
Avatar billede dennismp Nybegynder
07. juni 2004 - 16:13 #46
Avatar billede Slettet bruger
08. juni 2004 - 13:23 #47
Hvaa.. dennis hvis du skriver en bog kan du så ikke skrive det herinde, jeg vil i hvert fald godt se den!
Avatar billede dennismp Nybegynder
08. juni 2004 - 13:31 #48
Uhada - nu hænger jeg snart på den :)
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