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.
Annonceindlæg fra Genetec
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 :)
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>"; } ?>
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
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?
Derfor gav jeg de fleste af mine points.
darkstylerdk; af ren nysgerrighed. Hvilke bøger har du ?
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> </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 ' ('.$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; ?>
<?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> </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'); ?>
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 ;-)
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 :)
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> </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'); ?>
06. juni 2004 - 22:13
#14
Parse error: parse error in index.php on line 4
06. juni 2004 - 22:18
#15
Dennis: Fin idé. VILLE LÆSE DEN!
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
06. juni 2004 - 22:19
#17
Hvad er der galt med dette?: $vis_fra = if(isset($_GET['visfra'])) ? $_GET["visfra"] : 0;
06. juni 2004 - 22:20
#18
Skal nok være: $vis_fra = isset($_GET['visfra']) ? $_GET["visfra"] : 0;
06. juni 2004 - 22:21
#19
Så er fejlen bare på linje 3 - men de er jo osse ved at være gamle ;-)
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">';
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
06. juni 2004 - 22:27
#22
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> </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'); ?>
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> </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'); ?>
06. juni 2004 - 22:46
#25
Men den loader så weird??? Hvad sker der?
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
06. juni 2004 - 22:52
#27
Dvs. den henter 442117 og det er DERFOR det tager lang tid ...
06. juni 2004 - 22:55
#28
øverst oppe ret: $pr_side = 5; til $prside = 5;
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> </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'); ?>
06. juni 2004 - 23:03
#31
print empty($row['image']) ? '' : '<img border="0" align="right" src="files/$row[image]" class="image">';
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)
06. juni 2004 - 23:03
#33
Jeg hader den linje :-)
06. juni 2004 - 23:11
#34
print empty($row['image']) ? '' : '<img border=0 align="right" src="files/'.$row['image'].'" class="image">';
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">';
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å :/
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">';
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.
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 :) )
07. juni 2004 - 12:07
#41
Helt fint. Ahv har svaret på langt det meste af det :)
07. juni 2004 - 12:07
#42
Det er helt fint.
07. juni 2004 - 16:04
#43
Så der kriiidt. Eller point rettere ;o)
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!!!
07. juni 2004 - 16:12
#45
ne ne ne ne :-)
07. juni 2004 - 16:13
#46
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!
08. juni 2004 - 13:31
#48
Uhada - nu hænger jeg snart på den :)
Vi tilbyder markedets bedste kurser inden for webudvikling