Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [MySQL] Problem mit LIMIT (https://www.delphipraxis.net/67570-%5Bmysql%5D-problem-mit-limit.html)

Mazel 16. Apr 2006 21:59


[MySQL] Problem mit LIMIT
 
Hi,

ich versuche schon die ganze Zeit meine Downloads auf ein Limit von 3 zu setzen aber leider gelingt mir das nicht so richitg. Pro Seite sollen also 3 Downloads angezeigt werden.

Ich habe eine Tabelle. Dort befinden sich alle Programme mit den jeweiligen Infos drinn. Ein Feld nennt sich "categorie" damit ich die Programme der Kategorie zuweisen kann. Wenn jamand auf "Tools" klickt wird die Kategorie (für Tools "5") übertragen. Nun sollen alle Datensätze mit der Kat. ausgewählt, sortiert und pro Seite begrenzt werden. Wenn ich LIMIT nicht benutze funktioniert alles bestens.

Delphi-Quellcode:
$readdata=mysql_query("SELECT * FROM downloads WHERE categorie='$get' ORDER BY date DESC LIMIT x,3");
while($row = mysql_fetch_assoc($readdata))
{
  echo $row['name'];
  echo $row['date'];
}
x... Seite

Die Ordnung ist zwar nach dem Datum korrekt, dennoch fehlen Datensätze.

Die Programme sind in der Tabelle ungeordnet, also nicht nach Kategorie.

Kann mir hier jemand helfen?

Gruß
Mazel

Matze 16. Apr 2006 22:02

Re: [MySQL] Problem mit LIMIT
 
Hi,

deine Syntax kenne ich nicht, ich mache das immer direkt mit

Code:
... LIMIT 3

Mazel 16. Apr 2006 22:05

Re: [MySQL] Problem mit LIMIT
 
Hi,

wenn du nur LIMIT 3 verwendest, fängt er beim 1. Datensatz an. LIMIT 6,3 beudeutet das er bei dem 6. Datensatz anfängt zu suchen.

Das ist ja auch mein Problem, weil es ja nicht geordnet ist, macht der so komische Sachen.

Gruß
Mazel

faux 16. Apr 2006 22:11

Re: [MySQL] Problem mit LIMIT
 
Hallo!

Frage: Hast du das x im LIMIT nur für den Eintrag gesetzt oder steht das 1:1 in deinem Skript so? Da gehört nämlich die PHP-Variable hin, die die Seite angibt (und dann mit 3 multiplizieren).

Zitat:

Zitat von Matze
Hi,

deine Syntax kenne ich nicht, ich mache das immer direkt mit

Code:
... LIMIT 3

LIMIT 10,3 gibt dir 3 Datensätze aus, beim 10. beginend.

Grüße
Faux

Im Wort beginend stecken begin und end drinne. :roll:

Mazel 16. Apr 2006 22:16

Re: [MySQL] Problem mit LIMIT
 
Hi,

Nein, da steht eine Variable mit 3 multipliziert.

Gruß
Mazel

faux 16. Apr 2006 22:17

Re: [MySQL] Problem mit LIMIT
 
Zitat:

Zitat von Mazel
Hi,

Nein, da steht eine Variable mit 3 multipliziert.

Gruß
Mazel

Schreib mal den Code 1:1 hier rein. ;)

Grüße
Faux

Mazel 16. Apr 2006 22:27

Re: [MySQL] Problem mit LIMIT
 
hi,

hier der Code:
Delphi-Quellcode:
$limit=$_GET['get'][2];
$readdata=mysql_query("SELECT * FROM downloads WHERE categorie='$get' ORDER BY date DESC LIMIT $limit,3");
while($row = mysql_fetch_assoc($readdata))
{
   echo $row['name'];
   echo date("d.m.Y", $row['date']);
}
in $_GET['get'][2] ist dann die Seite gespeichert, die angezeigt werden soll. Beispiel:
Delphi-Quellcode:
index.php?get=331
bedeutet, dass die Seite 1 angezeigt werden soll. Die anderen Zahlen nutze ich für etwas anderes.

Gruß
Mazel

alcaeus 16. Apr 2006 22:31

Re: [MySQL] Problem mit LIMIT
 
Hallo,

LIMIT mit ORDER funktioniert definitiv:
Code:
$page = 3;
$perpage = 5;
$sql = 'SELECT * FROM bar ORDER by foo LIMIT '. ($page-1) * $perpage .",{$perpage}";
Greetz
alcaeus

faux 16. Apr 2006 22:34

Re: [MySQL] Problem mit LIMIT
 
Zitat:

Zitat von Mazel
bedeutet, dass die Seite 1 angezeigt werden soll. Die anderen Zahlen nutze ich für etwas anderes.

:roll: Du weiß aber schon, dass man auch mehrere Variablen per GET übergeben kann, oder? :zwinker:

Du solltest $limit mit 3 multiplizieren, da jede Seite 3 Einträge hat und der erste Parameter sen "Einsprungpunkt" angibt.

Zitat:

Zitat von alcaeus
LIMIT mit ORDER funktioniert definitiv

Habe ich auch schon ausprobiert. Das LIMIT hat keinen Einfluss auf die Sortierung (was ja auch logisch und gut so ist).

Grüße
Faux

Mazel 16. Apr 2006 23:04

Re: [MySQL] Problem mit LIMIT
 
hi,

hab jetzt eine Lösung für mein Problem. Ich speichere erst die geordneten Datensätze in ein Array und gebe sie dann pro Seite aus.

Gruß
Mazel


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:22 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz