php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
n Datensätze pro Seite in iclude-Datei


 
grebien
20-02-2003, 11:08 
 
Hallo,

Ich habe einen Code, der mir meine Tabelle auf mehrere Seiten aufteilt.

$step = $diff = 5;

$sql = mysql_query("SELECT count(*) FROM tagebuch") or die(mysql_error());
$anz = mysql_result($sql,0);

if (($offset + $diff) >= $anz) { $diff = $anz - $offset; $disabled[next] = TRUE;}

if (!$offset || $offset<0) {
$offset = 0;
$disabled[prev] = TRUE;
}

$sql = ("SELECT * FROM tabelle1 LIMIT $offset,$diff");

//// Hier kommt dann die tabelle

if ($disabled[prev]!==TRUE) echo '<a href="'.$PHP_SELF.'?offset='.($offset-$step).'">Vorherige Seite</a>';
for ($i=1;$i<=($anz/$step);$i++) echo '<a href="'.$PHP_SELF.'?offset='.($i*$step).'"> '.$i.'</a>';
if ($disabled[next]!==TRUE) echo '<a href="'.$PHP_SELF.'?offset='.($offset+$step).'">N&auml;chste Seite</a>';
?>


Das funktioniert auch sehr gut, solange ich diese Datei selbst teste.

Binde ich diese Datei in die endgültige Seite ein, dann funktioniert das ganze nicht mehr.

Was muss ich ändern?

Danke schön.

 
Abraxax
20-02-2003, 11:10 
 
ansonsten. was genau funktioniert denn nicht mehr?

hast du evtl. überschneidungen mit anderen variablen, die den gleichen namen tragen? dadurch kannst du natürlich probleme bekommen. ;)

 
grebien
20-02-2003, 11:17 
 
Bei Aufruf der Seite zeigt es mir korrekt die ersten 5 Datensätze an.

Klicke ich dann auf "Nächste Seiten", erhalte ich an der stelle der include-Datei eine leere Seite.

Eine Fehlermeldung gibt es nicht.

 
schmalle
20-02-2003, 11:22 
 
das hört sich so an, als würde sql nix finden. lass dir mal mysql_num_rows($sql) ausgeben.

 
grebien
20-02-2003, 11:34 
 
Immerhin findet sql alle 6 Datensätze.

Es muss irgendwie damit zusammenhängen, dass die Datei, die die Tabelle enthält, included wurde. Denn alleine läuft das ganze ja einwandfrei.

 
schmalle
20-02-2003, 11:37 
 
aha, jetzt weiss ich auch endlich wer hier wen includiert :)
hast du evtl register globals auf "off"?

 
grebien
20-02-2003, 11:39 
 
Bitte was?

Habe ich sicher nicht, da noch nie gehört. Wo muss ich so was hineinschreiben, und was genau?

 
schmalle
20-02-2003, 11:45 
 
bau dir ein script:
<?
phpinfo();
?>

dann bekommst du deine php konfiguration angezeigt. da findest du dann auch register globals. wenn dort "on" steht liegt das prob wo anders

 
grebien
20-02-2003, 11:50 
 
Da steht on.

Problem immer noch da.

 
Abraxax
20-02-2003, 12:01 
 
poste mal den kompletten code. also auch das drumherrum des obigen code.


:teach::teach::teach: bitte verwende aber die php-tags. :teach::teach::teach:
ich wollte mein augenlicht nämlich noch ne weile haben ;)

 
grebien
20-02-2003, 12:10 
 
<?php
include('inc/connect.php');
/////////////////////////////////////////
$step = $diff = 2;
$query = mysql_query("SELECT ID FROM tabelle1") or die(mysql_error());
$anz = mysql_num_rows($query);
echo $anz;
if (($offset + $diff) >= $anz) { $diff = $anz - $offset; $disabled[next] = TRUE;}
if (!$offset || $offset<0) {
$offset = 0;
$disabled[prev] = TRUE;
}
$sql = ("SELECT * FROM tabelle1 ORDER BY datum DESC LIMIT $offset,$diff");
$result = mysql_query($sql);
?>
<table bgcolor="#fada51" cellspacing="0" cellpadding="5" border="0" align="left">
<?
while ($line = mysql_fetch_array($result)) {
?>
<tr valign="top">
<td class="normal" width="100" align="left" style="border-bottom-style: solid; border-top-style: solid; border-left-style: solid; border-width: 1px; border-color:#FFFFFF;">
<?=$line[Datum]?><br>
ID: <?=$line[ID]?></td>
<td class="normal" width="360" style="border-bottom-style: solid; border-top-style: solid; border-right-style: solid; border-width: 1px; border-color:#FFFFFF;">
<?=$line[Eintrag]?></td>
<td class=normal width="140" style="border-bottom-style: solid; border-top-style: solid; border-right-style: solid; border-width: 1px; border-color:#FFFFFF;" valign=middle>
<table>
<form action="index1.php" method="post">
<tr valign=middle>
<td><input type="image" name="change" src="img/bullet.gif" class="normal" style="width:11px; height:11px;"></td>
<td class=normal>Eintrag ändern
<input type="hidden" name="id" value="<?=$line[ID]?>">
</td></tr>
</form>
<form action="delete_02.php" method="post">
<tr valign=middle>
<td><input type="image" name="delete" src="img/bullet.gif" class="normal" style="width:11px; height:11px;"></td>
<td class=normal>Eintrag löschen
<input type="hidden" name="id" value="<?=$line[ID]?>"></td></tr>
</form>
</table>
</td>
</tr>
<tr><td colspan="3" height="2"></td></tr>
<?
}
?>
<tr><td colspan="3" height="2" align="center">
<?
if ($disabled[prev]!==TRUE) echo '<a href="'.$PHP_SELF.'?offset='.($offset-$step).'">Vorherige Seite</a>';
//for ($i=1;$i<=($anz/$step);$i++) echo '<a href="'.$PHP_SELF.'?offset='.($i*$step).'"> '.$i.'</a>';
if ($disabled[next]!==TRUE) echo '<a href="'.$PHP_SELF.'?offset='.($offset+$step).'">N&auml;chste Seite</a>';
?>
</td></tr>
</table>



Diese Datei ist in einer anderen Seite included.

 
Abraxax
20-02-2003, 12:25 
 
Original geschrieben von grebien
Diese Datei ist in einer anderen Seite included.

und das andere wollte ich auch noch haben .....

 
grebien
20-02-2003, 12:44 
 
Das ist die Index-Datei:


<html>
<head>
<link rel="stylesheet" type="text/css" href="style/style.css">
</head>
<BODY TOPMARGIN="0" LEFTMARGIN="0" MARGINWIDTH="0" MARGINHEIGHT="0">
<TABLE WIDTH="100%" CELLSPACING="0" CELLPADDING="0" BORDER="0">
<?
include ("top.php");
?>
<tr>
<td BGCOLOR="#ffffff" colspan="3" height="1">
</td></tr>
<tr height=400 valign=top>
<?
include ("nav.php");
?>
<td BGCOLOR="#ffffff" width=1></td>
<?
include ("main.php");
?>
</tr>
<tr>
<td BGCOLOR="#ffffff" colspan="3" height="1">
</td></tr>
<tr>
<td colspan="3"></td></tr>
</table>
</BODY>
</HTML>
´

Dann gibt's die nav.php


<td BGCOLOR="#ffcc00" width=120>
<div style="margin-top:10px; margin-left:10px;">
<a href="?eintrag=type" class="nav1"><b>Eintrag eingeben</b></div>
<div style="margin-top:5px; margin-left:10px;">
<a href="?eintrag=find" class="nav"><b>Einträge zeigen</b></div>
</td>


Die main.php


<td BGCOLOR="#fada51" width=600>

<div style="margin-top:10px; margin-left:10px; margin-bottom:10px; margin-right:10px;">
<?
if ($eintrag == "type")
{
include ("input.php");
}
elseif ($eintrag == "find")
{
include ("test2.php");
}
?>
</div></td>


Die test2.php habe ich je schon gepostet.

 
grebien
20-02-2003, 13:20 
 
ich habe das Problem selber gefunden.

Try & Error, Try & Error, Try & Error.............

Ich habe die links falsch deklariert.

Statt

echo "<a href=".$PHP_SELF."?eintrag=find?tart=".$newStart.">&lt;&lt; zurück</a>";


muss der link lauten:


echo "<a href=".$PHP_SELF."?eintrag=find&start=".$newStart.">&lt;&lt; zurück</a>";


Trotzdem vielen Dank.


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:38 Uhr.