Archiv verlassen und diese Seite im Standarddesign anzeigen : seitenanzeige mit umblättern
hi
ich möchte eine seitenanzeige mit umblättern machen. folgendes hab ich schon:
<?php
$conn=odbc_pconnect("","","","");
$select = odbc_exec($conn,"select * from news");
$reihen = odbc_num_rows($select);
$id=odbc_result($select,1);
$newsart=odbc_result($select,2);
$titel=odbc_result($select,3);
$text=odbc_result($select,4);
$datum=odbc_result($select,5);
$zeigen = floor($reihen / 5);
if(!$start) { $start = 0.1; }
$reihen = odbc_num_rows($select);
for($x = 0;$x < $reihen;$x++)
echo "$id";
{
odbc_fetch_into($select ,$x,$result);
}
echo "$titel";
echo "<br>";
if($start > 0.1) {
$zurueck = $start - 5;
echo "<a href=\"$PHP_SELF?start=$zurueck\"><< Zurück</a>";
}
for($i = 0; $i <= $zeigen; $i++) {
echo " <a href=\"$PHP_SELF?start=$n\">$i</a> ";
$n += 5;
}
$weiter = $start + 5;
if($reihen > $weiter) {
echo "<a href=\"$PHP_SELF?start=$weiter\">Weiter >></a>";
}
?>
im moment wird nur 1 nachricht angezeigt, ich möchte aber das z.b. 5 angezeigt werden.
ich hoffe es kann mir jemand helfen...
mfg
dominik
s.molinari
09.05.2002, 21:46
Hallo dominik,
Leider bin ich kein odbc Guru aber von was ich verstehe hast du schon ein paar gravierende Fehler in deinen Code. Hier ist ein Script die Du auf deine Bedürfnisse anpassen kannst. <?php
/* Adduco.de ::: Prev123.php3 11.09.2000 v1.1 S.Molinari */
//Any ALL CAPITALIZED words must be replaced with your own values.
$server = "";
$user = "";
$Pass = "";
$database = "YOUR DB";
$conn = mysql_pconnect ($server,$user,$pass);
$select = mysql_select_db("$database")or die ("unable to select db");
// Start of Prev 123 Next code
$limit=20; // rows to return
$numresults=mysql_query("select * ".
"from TABLE where YOUR CONDITIONAL HERE order by WHATEVER");
$numrows=mysql_num_rows($numresults);
// next determine if offset has been passed to script, if not use 0
if (empty($offset))
{
$offset=0;
}
// get results
$result=mysql_query("select * ".
"from TABLE where YOUR CONDITIONAL HERE ".
"order by WHATEVER limit $offset,$limit");
// now you can display the results returned
while ($data=mysql_fetch_array($result))
{
// include code to display results as you see fit
print "<a href=\"$data[SiteURL]\">$data[SiteName]</a>";
}
// calculate number of pages needing links
$pages=intval($numrows/$limit);
// next we need to do the links to other results
if (($pages!=0 and $pages!=1) or ($pages==1 and ($numrows%$limit)))// If data <= 1 page skip all
{
if ($offset!=0)// bypass PREV link if offset is 0
{
$prevoffset=$offset-$limit;
print "<a href=\"$PHP_SELF?offset=$prevoffset\">PREV</a> \n";
}
// $pages now contains int of pages needed unless there is a remainder from division
if ($numrows%$limit)// has remainder so add one page
{
$pages++;
}
for ($i=1;$i<=$pages;$i++) // loop thru and make links
{
$newoffset=$limit*($i-1);
If ($offset!=$newoffset) //Make a link only for other pages
{
print "<a href=\"$PHP_SELF?offset=$newoffset\">$i</a> \n";
}
else
{
print "$i \n";
}
}
// check to see if NEXT link is needed
if ($pages!=1 or (($pages==1 and ($numrows%$limit))))
{
if (($offset+$limit)<$numrows) // if last page skip NEXT link
{$newoffset=$offset+$limit;
print "<a href=\"$PHP_SELF?offset=$newoffset\">NEXT</a><p>\n";
}
}
}
print "</body></html>";
?>
Ich weiss es ist für MySQL geschrieben aber es müsste portierbar sein. Das einzigste Problem die ich sehen kann ist dass der odbc_exec Befehl wahrscheinlich nicht den "limit" Operator zulässt. Dann musst Du doch durch ein Loop die Daten aus der $select Variable raus holen.
Wenn ich fragen darf warum odbc? Arbeitest Du mit Access? :eek: *scott shüttelt sich*
Scott
hallo scott
vielen dank für dein script!
mit dem limit hast du recht. ich hab nämlich auch schon mysql scripte probiert umzuschreiben.
kannst du mir vielleicht mit dem loop helfen?
Arbeitest Du mit Access?
nein, mit ms sql
cu
dominik
s.molinari
10.05.2002, 14:03
Also hier ist ein Versuch:
for($x = $offset;$x < $limit;$x++) {
$data = odbc_fetch_into($select ,$x,$result);
echo "$data[id], $data[newsart], $data[titel], $data[text], $data[datum];
}
Von was ich gelesen habe wird diese Schreibweise für "odbc_fetch_into" nicht mit PHP4.2.0 funktionieren. Wenn Du 4.2.0 hast dann muss den Funktionsaufruf so aussehen: $data = odbc_fetch_into($select, $result, $x);
Ich bin mir auch nicht sicher ob die Arrayvariable $data auch assoziativ ist wie ich sie geschrieben habe.:)
Scott
vBulletin® v3.7.2, Copyright ©2000-2008, Jelsoft Enterprises Ltd.