 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
13.08.2002, 10:58
|
#1
|
|
TP-Senior
Registriert seit: Jan 2002
Ort: München
|
SQL-Limit
hallo tp`ler,
sorry aber ich habe mir die limit sachen über die suche durchgelesen und raffe es einfach nicht .
also ich habe eine personendatenbank mit fotos.
ich habe eine seite mit der ich alle abfrage aus der sql
und mir dann schön aufstellen lasse.
mittlerweile sind es 735 und die abfrage dauert :-)
wie bau ich in diesem script(siehe code unten) die limitierung ein auf 50 pro seite ???
wäre nett wenn sich einer dessen annehmen würde..
danke hollow
PHP-Code:
<?php
include("_config.php");
$con=mysql_connect($sql_host, $sql_user, $sql_pass) or die ("Verbindungs Fehler");
mysql_select_db($sql_db) or die ("Datenbank Konnte nicht gefunden werden");
$sql_abfrage="SELECT * FROM $table WHERE Buchnr NOT LIKE ''";
$abfrage_query=mysql_query($sql_abfrage,$con);
echo "<table border=\"0\" cellspacing=\"1\" width=\"752\" ALIGN=\"center\">\n<tr>";
echo "<td WIDTH=\"20%\"> </td><td WIDTH=\"20%\"> </td><td WIDTH=\"20%\"> </td><td WIDTH=\"20%\"> </td><td WIDTH=\"20%\"> </td></tr>\n<tr>";
$durchlaeufe=0;
while ($result = mysql_fetch_array($abfrage_query,$con)) {
$durchlaeufe++;
echo "<td width=20% ALIGN=\"center\">\n";
echo "<a href=\"details.php?id=$result[ID]\" target=\"_self\">";
if ($result[Thumblink]) {
echo "<img border=\"0\" src=\"$result[Thumblink]\" WIDTH=\"102\" HEIGHT=\"125\"></a><BR>\n";
}
else {
echo "<img border=\"0\" src=\"http://www.diewebseite.de/images/personal/personal.gif\" WIDTH=\"102\" HEIGHT=\"125\"></a><BR>\n";
}
echo "<font color=\"#000080\" size=\"1\" face=\"Verdana\"> $result[Buchnr]</font>\n";
echo "</td>\n";
if ($durchlaeufe == 5) {
$durchlaeufe = 0;
echo "</tr><tr><td COLSPAN=\"5\"> </td></tr><tr>";
}
}
?>
|
|
|
13.08.2002, 22:18
|
#3
|
|
TP-Greis
Registriert seit: Jun 2001
Ort: Bonn-Altstadt
|
Hier noch mal die entsprechende Theorie in Kürze:
LIMIT kennt zwei Argumente, nämlich den Offset ( = Startposition der abgefragten Datensätze) und das eigentliche Limit (= Anzahl der Datensätze).
PHP-Code:
... LIMIT 10,25
Obiges bedeutet also sinngemäss "hole mir 25 Datensätze beginnend mit dem Elften".
Will man nun auf der folgenden Seite (oder wo auch immer) die nächsten 25 Datensätze ausgeben, gibt man dem dorthin führenden Link einfach die Argumente mit (xyz.php?alter_offset=10$mein_limit=25) und berechnet daraus den Nächsten:
PHP-Code:
$neuer_offset = $alter_offset + $mein_limit; // 10 + 25 = 35
... LIMIT $neuer_offset,$mein_limit // = LIMIT 35,25
Das ganze geht natürlich auch anderrsum, also per Subtraktion, falls man wieder "zurück" möchte. Ebenso kann man natürlich das Limit als festen Wert mit in das Script nehmen und muss es nicht herumtransportieren.
__________________
Give up yourself into the moment — The time is now.
|
|
|
13.08.2002, 22:32
|
#4
|
|
TP-Senior
Registriert seit: Jan 2002
Ort: München
|
hmm
genau das ist es..danke trotzdem..
ich habe genau diese infos gehabt aber ich bekomme es auf das obige script nicht angewendet :-( warum auch immer...
gruß
hollow
|
|
|
16.08.2002, 09:43
|
#5
|
|
TP-Senior
Registriert seit: Jan 2002
Ort: München
|
...........sql..
ahh... so ich habe es generell hinbekommen nur noch einen kleinen fehler.. da kann mir sicher einer helfen....
kann ich das jemandem zumailen der es sich eben mal ansieht oder soll ich code posting machen ;-)
danke! hollow
Geändert von hollow (16.08.2002 um 11:00 Uhr).
|
|
|
16.08.2002, 11:08
|
#6
|
|
TP-Specialist
Registriert seit: Jan 2002
Ort: TP/Dynamik
|
sollen wir feherraten spielen?
oder wie denkst du, dass wir dir helfen sollen?
ein bissl code täte in diesem fall sicher nicht schaden.
ansonsten fang ich mal an:
ich denke in zeile 65 liegt der fehler...
wie liege ich?
lf
__________________
Gehelft? Hier kannst du dich bedanken.
mike
|
|
|
16.08.2002, 11:13
|
#7
|
|
TP-Greis
Registriert seit: Jun 2001
Ort: Bonn-Altstadt
|
Re: ...........sql..
Zitat:
Original geschrieben von hollow
soll ich code posting machen
|
Auf jeden Fall.
__________________
Give up yourself into the moment — The time is now.
|
|
|
16.08.2002, 11:13
|
#8
|
|
TP-Senior
Registriert seit: Jan 2002
Ort: München
|
looooool
ja doch :-) ..
also 69 ist er nicht..denn ein fehler habe ich bis dato nicht :-).
also ich hatte ein abfragescript was mir aus der db die leute mit ihren bildern auflistet.
nun habe ich ein script umgeschnipselt aus dem web, wo ich abfragen mit blättern machen kann.
problem ist ich weiß nicht wie ich da implementieren soll, was er mit den ergebnissen macht, denn er zeigt bisher nur die buchungsnummern an...
also hier das alte abfragescript :
PHP-Code:
<?php
include("_config.php");
$con=mysql_connect($sql_host, $sql_user, $sql_pass) or die ("Verbindungs Fehler");
mysql_select_db($sql_db) or die ("Datenbank Konnte nicht gefunden werden");
$sql_abfrage="SELECT * FROM $table WHERE Buchnr NOT LIKE ''";
$abfrage_query=mysql_query($sql_abfrage,$con);
echo "<table border=\"0\" cellspacing=\"1\" width=\"752\" ALIGN=\"center\">\n<tr>";
echo "<td WIDTH=\"20%\"> </td><td WIDTH=\"20%\"> </td><td WIDTH=\"20%\"> </td><td WIDTH=\"20%\"> </td><td WIDTH=\"20%\"> </td></tr>\n<tr>";
$durchlaeufe=0;
while ($result = mysql_fetch_array($abfrage_query,$con)) {
$durchlaeufe++;
echo "<td width=20% ALIGN=\"center\">\n";
echo "<a href=\"details.php?id=$result[ID]\" target=\"_self\">";
if ($result[Thumblink]) {
echo "<img border=\"0\" src=\"$result[Thumblink]\" WIDTH=\"102\" HEIGHT=\"125\"></a><BR>\n";
}
else {
echo "<img border=\"0\" src=\"http://www.diewebseite.de/images/personal/personal.gif\" WIDTH=\"102\" HEIGHT=\"125\"></a><BR>\n";
}
echo "<font color=\"#000080\" size=\"1\" face=\"Verdana\"> $result[Buchnr]</font>\n";
echo "</td>\n";
if ($durchlaeufe == 5) {
$durchlaeufe = 0;
echo "</tr><tr><td COLSPAN=\"5\"> </td></tr><tr>";
}
}
?>
hier der neue.. wo soll ich da was beim echo eintragen damit er wieder die bilder in tabellen anzeigt..
PHP-Code:
<?php
// Datendefinition für Datenbankverbindung.
$host = "xx"; // MySQL - Zielrechner.
// Normallerweise ist es "localhost", bzw.
// synonym "127.0.0.1", also der Rechner,
// auf dem auch _dieses_ Script läuft.
$user = "xx"; // Dein Userlogin.
$password = "xx"; // Dein Datenbankpasswort.
$database = "peoplerent_de"; // Gewünschte Datenbank
// innerhalb von MySQL
$table = "peoplerent"; // Der Name der Datenbanktabelle
// Datendefinition für die Clientausgabe
$start = (isset($start)) ? abs((int)$start) : 0;
$limit = 30; // Datensätze pro Ausgabeseite
// Verbindung zu MySQL-Datenbank herstellen oder sterben.
@mysql_connect($host,$user,$password)
or die("Abbruch: Verbindung zu '$host'"
." konnte nicht hergestellt werden.");
// Benötigte Datenbank auswählen oder sterben.
@mysql_select_db($database)
or die("Abbruch: Datenbank '$database' konnte nicht"
." selektiert werden.<br><br>MySQL sagt: ".mysql_error());
// Feststellen der Anzahl der verfügbaren Datensätze.
$resultID = @mysql_query("SELECT COUNT(ID) FROM ".$table);
$total = @mysql_result($resultID,0);
// Ggf. $start korrigieren (falls Parameter in
// der URL manipuliert wurde)
$start = ($start >= $total) ? $total - $limit : $start;
// Datenbankabfrage ausführen.
$query = "SELECT * FROM ".$table
." LIMIT ".$start.",".$limit;
$resultID = @mysql_query($query);
// Ergebnisse lesen und an den Client ausgeben
while ($data = mysql_fetch_array($resultID))
{
echo $data["Buchnr"]."<br>";
}
// Zurück- und Vorblättern
if ($start > 0)
{
$newStart = ($start - $limit < 0) ? 0 : ($start-$limit);
echo "<a href=".$PHP_SELF."?start=".$newStart
."><< zurück</a>";
}
if ($start + $limit < $total)
{
$newStart = $start + $limit;
echo " <a href=".$PHP_SELF."?start=".$newStart
.">vor >></a>";
}
// Die benutzte (nichtpersistente) Verbindung zu der MySQL-Datenbank,
// wird nach dem Script-Ende automatisch geschlossen.
// That's it.
?>
|
|
|
16.08.2002, 11:36
|
#9
|
|
TP-Specialist
Registriert seit: Jan 2002
Ort: TP/Dynamik
|
anstatt:
PHP-Code:
// Ergebnisse lesen und an den Client ausgeben
while ($data = mysql_fetch_array($resultID))
{
echo $data["Buchnr"]."<br>";
}
mach das:
PHP-Code:
while ($result= mysql_fetch_array($resultID))
{
$durchlaeufe++;
echo "<td width=20% ALIGN=\"center\">\n";
echo "<a href=\"details.php?id=$result[ID]\" target=\"_self\">";
if ($result[Thumblink]) {
echo "<img border=\"0\" src=\"$result[Thumblink]\" WIDTH=\"102\" HEIGHT=\"125\"></a><BR>\n";
}
else {
echo "<img border=\"0\" src=\"http://www.diewebseite.de/images/personal/personal.gif\" WIDTH=\"102\" HEIGHT=\"125\"></a><BR>\n";
}
echo "<font color=\"#000080\" size=\"1\" face=\"Verdana\"> $result[Buchnr]</font>\n";
echo "</td>\n";
if ($durchlaeufe == 5) {
$durchlaeufe = 0;
echo "</tr><tr><td COLSPAN=\"5\"> </td></tr><tr>";
}
__________________
Gehelft? Hier kannst du dich bedanken.
mike
|
|
|
16.08.2002, 11:54
|
#10
|
|
TP-Senior
Registriert seit: Jan 2002
Ort: München
|
urghs
jo hab ich und nun kommt :
Parse error: parse error, unexpected $ in /is/htdocs/26298/www.peoplerent.de/service_db/abfrage.php on line 87
|
|
|
16.08.2002, 12:03
|
#11
|
|
TP-Specialist
Registriert seit: Jan 2002
Ort: TP/Dynamik
|
ich weiss zwar nicht was in zeile 85 steht aber wenn du meinen geposteten code 1 zu 1 übernommen hast, dann fehlt eine klammer:
PHP-Code:
if ($durchlaeufe == 5) {
$durchlaeufe = 0;
echo "</tr><tr><td COLSPAN=\"5\"> </td></tr><tr>";
}
}
__________________
Gehelft? Hier kannst du dich bedanken.
mike
|
|
|
16.08.2002, 12:13
|
#12
|
|
TP-Senior
Registriert seit: Jan 2002
Ort: München
|
lach
ich danke dir !!! es läuft !!!
der fehler war die klammer..
eine andere sache noch und du hast we :-)
in meiner alten abfrage machte ich es so :
PHP-Code:
SELECT * FROM $table WHERE Buchnr NOT LIKE ''
in der neuen so  man sagte mir ich darf das '' bei einem limit befehl nicht benutzen??) wie kann ich trotzdem nur die leute anziegen lassen die eine buchungsnummer haben ????
PHP-Code:
$query = "SELECT * FROM ".$table
." LIMIT ".$start.",".$limit;
$resultID = @mysql_query($query);
|
|
|
16.08.2002, 13:04
|
#13
|
|
TP-Specialist
Registriert seit: Jan 2002
Ort: TP/Dynamik
|
Zitat:
|
eine andere sache noch und du hast we :-)
|
schön wärs...
Zitat:
|
in der neuen so (man sagte mir ich darf das '' bei einem limit befehl nicht benutzen??)
|
wer ist man?
PHP-Code:
$query =
"
SELECT * FROM $table
WHERE buchungsnummer <> ''
LIMIT $start, $limit
";
__________________
Gehelft? Hier kannst du dich bedanken.
mike
|
|
|
16.08.2002, 18:26
|
#14
|
|
TP-Senior
Registriert seit: Jan 2002
Ort: München
|
danke
ich danke dir :-)
probleme haben sich erledigt nach der klammer und deiner hilfe läuft nun alles rund..
schönes we :-)
gruß
hollow
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
| | |