CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
15.12.2006, 14:40:25
|
Anfänger
|
|
Registriert seit: Dec 2006
Alter: 47
Beiträge: 43
|
|
Anzahl der Einträge beschränken - Fehler!?
Hallo,
im untenstehenden Script hat sich ein Fehler eingeschlichen, dne ich nicht finden kann. Das erste Limit funktioniert und 10 Datensätze werden mir angezeigt, wenn ich jedoch auf weiter klicke, ist die Anzeige leer, obwohl die Anzahl der Einträge korrekt ermittelt werden, da ich 45 Einträge in meiner DB habe und 5 mal vorwärts klicken kann - jedoch ohne Ausgabe der Einträge. Hab jetzt schon alles durchgetestet und finde den Fehler einfach nicht. Vielleicht kann mir jemand helfen?!
//Script
<?
$anzeigen=10;
if($vor){$start=$limit+$anzeigen;}
if($back){$start=$limit-$anzeigen;}
if(!$start){$start=0;}
//Auslesen der Einträge
$link = mysql_connect ("localhost", "bilderdb", "passwort");
mysql_select_db("bilderdb", $link);
$sql = "SELECT BildID, artistname, bildname FROM bilder WHERE BildID >=1 ORDER BY artistname LIMIT $start , $anzeigen";
$result = mysql_query($sql, $link);
for($i=$start;$i<mysql_num_rows($result);$i++)
{
$ergebnis[$i] = mysql_fetch_array($result);
}
//Ermitteln der Anzahl der Einträge
$sql1 = "SELECT bildname FROM bilder";
$result1 = mysql_query($sql1, $link);
$max = mysql_num_rows($result1);
?>
<html>
<head>
<title>Bilderverwaltung</title>
</head>
<body>
<?
//Ausgeben der Einträge
for($i=0;$i<count($ergebnis);$i++)
{
echo "<table border=0 width=500><tr><td>".$ergebnis[$i][artistname]."</td>
<td align=left>".$ergebnis[$i][bildname]." </td> </tr>
</table>";
}
//Ausgeben der Weiter und zurück Buttons
echo "<table border=0 width=500><tr><td align=left>";
if($start>=$anzeigen){echo "<a href='".$PHP_SELF."?limit=".$start."&back=1'>zurück</a>";}
echo "</td><td align=right>";
if($start+$anzeigen<$max){echo "<a href='".$PHP_SELF."?limit=".$start."&vor=1'>weiter</a>";}
echo "</tr></table>";
?>
</body>
</html>
//Scriptende
Zur Erklärung, ich möchte eine zweispaltige Tabelle anzeigen, in der ersten Spalte steht der Künstler, in der zweiten sein Werk. Da die Seite nicht scrollbar ist, will ich, dass nur 10 Einträge pro Seite angezeigt werden und man dann vor und zurückblättern kann.
Danke an Eure Hilfe Stefan
|
15.12.2006, 15:08:01
|
Member
|
|
Registriert seit: Oct 2006
Beiträge: 610
|
|
AW: Anzahl der Einträge beschränken - Fehler!?
Eiei, bist du ein Performance-Verschwender.
PHP-Code:
<?php $anzeigen=10; $host="localhost"; $user="root"; $pass=""; $db="benni"; $PHP_SELF=$_SERVER['PHP_SELF'];
$start=1; if (isset($_GET['start'])) $start=$_GET['start'];
//Auslesen der Einträge $link = mysql_connect ($host,$user,$pass); mysql_select_db($db, $link);
//Ermitteln der Anzahl der Einträge $sql1 = "SELECT count(*) FROM bilder"; $result1 = mysql_query($sql1, $link); $max = mysql_result($result1,0,0);
?>
<html> <head> <title>Bilderverwaltung</title> </head> <body>
<?php //Ausgeben der Einträge $sql = "SELECT BildID, artistname, bildname FROM bilder WHERE BildID >=1 ORDER BY artistname LIMIT $start , $anzeigen"; $result = mysql_query($sql, $link); while($ergebnis = mysql_fetch_array($result)) { echo ' <table border="0" width="500"><tr><td>' . $ergebnis['artistname'] . '</td> <td align="left">' . $ergebnis['bildname'] . ' </td> </tr> </table>'; }
//Ausgeben der Weiter und zurück Buttons echo "<table border=0 width=500><tr><td align=left>"; if($start>=$anzeigen){echo "<a href='".$PHP_SELF."?start=".($start-$anzeigen)."'>zurück</a>";} echo "</td><td align=right>"; if($start+$anzeigen<$max){echo "<a href='".$PHP_SELF."?start=".($start+$anzeigen)."'>weiter</a>";} echo "</tr></table>"; ?> </body> </html>
//Scriptende
Geändert von BenniG. (15.12.2006 um 15:10:08 Uhr)
|
15.12.2006, 15:25:14
|
Anfänger
|
|
Registriert seit: Dec 2006
Alter: 47
Beiträge: 43
|
|
AW: Anzahl der Einträge beschränken - Fehler!?
Danke, ich weiß, dass mein Code oftmals überladen ist, aber ich bin noch nicht so lange mit php beschäftigt und anders verstehe ich es oft nicht. Da merkt man, dass Du da einen Plan hast. Danke für die schnelle Antwort.
Dennoch zeigt er mir folgenden Fehler aus:
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /homepages/31/d172136732/htdocs/bilder3.php on line 18
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /homepages/31/d172136732/htdocs/bilder3.php on line 31
... und da bin ich jetzt in Deinem Code überfragt. Was fehlt?
Stefan
|
15.12.2006, 15:30:40
|
Member
|
|
Registriert seit: Oct 2006
Beiträge: 610
|
|
AW: Anzahl der Einträge beschränken - Fehler!?
Variablen oben geändert?
Dann sollte es laufen, ist zumindest bei mir gelaufen..
Zur Performance:
count(*) ist um längen schneller als erstmal alle Einträge auszulesen und dann zu zählen.
Es macht wenig Sinn die Daten in ein Array auszulesen und dann später aus dem Array wieder rauszuholen. Wenn du die Daten eh nur einmal anzeigen willst macht auslesen und direkt ausgeben mehr sinn..
Außerdem hattest du register_globals=off nicht berücksichtigt:
http://de.php.net/register_globals
|
15.12.2006, 15:40:27
|
Anfänger
|
|
Registriert seit: Dec 2006
Alter: 47
Beiträge: 43
|
|
AW: Anzahl der Einträge beschränken - Fehler!?
Danke, du hattest Recht, ich hatte einen Fehler in den Variablen. Jetzt gibt er mir 10 Ergebnisse aus, allerdings auch einen Fehler und keinen weiter Button. Was hab ich da vergessen?
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /homepages/31/d172136732/htdocs/bilder3.php on line 18
Chagall Peintre devant chevalet
Chagall Fleurs rouges et bleues
Chagall Nimrod
Chagall La nuit enchantée
Chagall Paysage à L´Isba
Chagall Coq au-dessus du toit rouge
Chagall La Famille
Chagall Profil au bouquet rose
Chagall Autour des deux ânes
Chagall Le jardin d´Eden
Sorry, dass ich Dich damit so nerve, aber irgendwie bin ich da jetzt ein wenig überfordert mit meinen php Kenntnissen, da ich sowas noch nie gemacht habe.
DANKE!
|
15.12.2006, 15:46:49
|
Member
|
|
Registriert seit: Oct 2006
Beiträge: 610
|
|
AW: Anzahl der Einträge beschränken - Fehler!?
mach mal
PHP-Code:
$result1 = mysql_query($sql1, $link) or die (mysql_error());
Um die Einträge zu zählen.
Hast du mein Script 1 zu 1 übernommen, oder nur sachen hin und her kopiert?
|
15.12.2006, 15:53:21
|
Anfänger
|
|
Registriert seit: Dec 2006
Alter: 47
Beiträge: 43
|
|
AW: Anzahl der Einträge beschränken - Fehler!?
Habs 1 zu 1 übernommen und nur die Variablen verändert und geprüft. Den Befehl hab ich eingegeben und dann erscheint:
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '(*) FROM bilder' at line 1
Liegt das am SQL Server? Wir haben nur Version MySQL 4 zur Verfügung.
|
15.12.2006, 15:56:34
|
Member
|
|
Registriert seit: Oct 2006
Beiträge: 610
|
|
AW: Anzahl der Einträge beschränken - Fehler!?
Hast du zwischen count und (*) zufällig ein Leerzeichen reingebaut?
MySQL mag da nämlich keine Leerzeichen..
count(*) ist eine elementare Funktion und sollte immer funktionieren..
|
15.12.2006, 15:59:27
|
Anfänger
|
|
Registriert seit: Dec 2006
Alter: 47
Beiträge: 43
|
|
AW: Anzahl der Einträge beschränken - Fehler!?
ES FUNKTIONIERT!!!!!
Vielen Dank, Du hast mir sehr geholfen. Ich wünschte, ich könnte Dir mal helfen, wird aber wohl nicht vorkommen, aber ich arbeite dran.
Spaß beiseite, Danke Danke, Danke....
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 05:03:39 Uhr.
|