Hi,
erstmal sorry wegen dem doofen Titel, ich weiß aber nicht wie ich's so kruz beschreiben soll.
Folgende Situation Ich versuche grad eine Art Ligasystem zu basteln, dazu hab ich zwei Tabellen angelegt. Eine in der die ID, Namen und das Jahr gespeichert sind und eine indem der Monat, in dem der Spieler teilgenommen hat, und die Punkte, die er dabei erreicht hat, gespeichert werden
Tabelle: Name
ID|Name|Year
1|Hans Maier|2009
2|Peter Schmidt|2009
Tabelle: Punkte
Name_ID|Month|Points
1|1|15
1|3|18
1|8|10
2|1|12
2|2|25
2|3|16
2|6|15
2|11|19
Nun möchte ich, zwecks Übersicht, nicht alle Spieler auf einmal ausgeben, sonder nur die ersten 25, und die restlichen mittels Blätterfunktion. LIMIT kann ich dafür aber nicht einsetzen, da ja nicht jeder Spieler gleich oft an den Turnieren teilgenommen hat.
Mein Ansatz war jetzt erst einmal, dass ich die Ausgabe anhand der ID's beschränke:
Problem hierbei ist jetzt, aber wenn sich erstens unter den ersten 25 ID's nur Teilnehmer aus dem Jahr 2009 befinden und unter den nächsten 25 welche aus dem Jahr 2010, dann werden logischerweise auf Seite 1 Teilnehmer aus dem Jahre 2009 und auf der zweiten Seite Teilnehmer aus 2009 und 2010 dargestellt.
Problem Nummer 2 ist eine Suchfunktion, die nach den Namen sucht. Die WHERE-Klausel wird mit
erweitert (die Suchanfrage wird selbstverständlich vor SQL-Injections geschützt). Problem hierbei: Es werden nur die ersten 25 ID's durchsucht.
Solltet ihr noch irgendwelche Infos brauchen, einfach sagen und ich ergänz es.
Ich hoffe ihr könnt mir irgendwie helfen.
Danke schonmal
erstmal sorry wegen dem doofen Titel, ich weiß aber nicht wie ich's so kruz beschreiben soll.
Folgende Situation Ich versuche grad eine Art Ligasystem zu basteln, dazu hab ich zwei Tabellen angelegt. Eine in der die ID, Namen und das Jahr gespeichert sind und eine indem der Monat, in dem der Spieler teilgenommen hat, und die Punkte, die er dabei erreicht hat, gespeichert werden
Tabelle: Name
1|Hans Maier|2009
2|Peter Schmidt|2009
Tabelle: Punkte
1|1|15
1|3|18
1|8|10
2|1|12
2|2|25
2|3|16
2|6|15
2|11|19
Nun möchte ich, zwecks Übersicht, nicht alle Spieler auf einmal ausgeben, sonder nur die ersten 25, und die restlichen mittels Blätterfunktion. LIMIT kann ich dafür aber nicht einsetzen, da ja nicht jeder Spieler gleich oft an den Turnieren teilgenommen hat.
Mein Ansatz war jetzt erst einmal, dass ich die Ausgabe anhand der ID's beschränke:
PHP:
$seite = 1;
$eintraege_pro_seite = 25;
$start = $seite * $eintraege_pro_seite - $eintraege_pro_seite;
$ende = $start + $eintraege_pro_seite + 1;
$sql='SELECT
Name.ID,
Name.Name,
Name.Year,
Punkte.Month,
Punkte.Points
FROM
Name
JOIN
Punkte
ON
Name.ID = Punkte.Name_ID
WHERE
Name.ID > '.$start.' AND Name.ID < '.$ende.'
ORDER BY
Name.Year DESC,
Punkte.Name_ID ASC';
// abfrage abschicken usw.
Problem hierbei ist jetzt, aber wenn sich erstens unter den ersten 25 ID's nur Teilnehmer aus dem Jahr 2009 befinden und unter den nächsten 25 welche aus dem Jahr 2010, dann werden logischerweise auf Seite 1 Teilnehmer aus dem Jahre 2009 und auf der zweiten Seite Teilnehmer aus 2009 und 2010 dargestellt.
Problem Nummer 2 ist eine Suchfunktion, die nach den Namen sucht. Die WHERE-Klausel wird mit
PHP:
name.Name LIKE "%'.$search.'%"
Solltet ihr noch irgendwelche Infos brauchen, einfach sagen und ich ergänz es.
Ich hoffe ihr könnt mir irgendwie helfen.
Danke schonmal