Hallo zusammen,
ich versuche mich gerade an PDO.
Worum geht´s?
Das Ganze ist eine Seite mit 2 Tabellen. Die erste Zeile der Seite beinhaltet: Bisher sind XX Meldungen zum Turnier XXX bei uns eingegangen! (wobei XX die aktuelle Anzahl ausgeben soll und XXX quasi automatisiert das aktuelle Jahr in dem wir uns befinden)
Dann Tabellenüberschrift Meldung nach Meldeeingang (Datum)
Tabelle 1 mit max. 64 Teilnehmern ab Anmeldedatum. Mehr wie 64 dürfen nicht angezeigt werden.
Direkt darunter dann Tabelle 2: Tabellenüberschrift nach TTR sortiert.
Tabelle 2 mit den o.g. 64 Teilnehmern, sortiert nach TTR
fertig.
So schaut die alte Datei aus:
<?php
// Datenbank verbinden
include "../zugang_ppc.php.inc";
// Hole die 64 ältesten Datensätze der Klasse 2 ab und sortiere dann absteigend nach Datum (neueste zuerst)
$sql = "SELECT * FROM (
SELECT id, nachname, vorname, verein, ttr, timestamp FROM anmeldungen_2017_sonntag WHERE gemeldeteKlasse = '2' ORDER BY timestamp ASC LIMIT 64
) as daten
ORDER BY timestamp DESC";
$db_erg = mysql_query( $sql );
if ( ! $db_erg )
{
die('Ungültige Abfrage: ' . mysql_error());
}
$anzahl = mysql_num_rows($db_erg);
$jahr = date('Y');
echo "Bisher sind " . $anzahl . " Meldungen zum Turnier " . $jahr . " bei uns eingegangen! Auflistung nach Meldedatum";
echo "<br>";
echo "<br>";
echo "<table width=\"100%\" border=\"1\" cellpadding=\"3\" cellspacing=\"0\">";
echo "<tr>";
//echo "<td></td>";
echo "<td>Name</td>";
echo "<td>Vorname</td>";
echo "<td>Verein</td>";
echo "<td>QTTR</td>";
echo "<td>Meldedatum</td>";
echo "</tr>";
$anzahl = 1;
while ($zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC))
{
echo "<tr>";
//echo "<td>". $anzahl . "</td>";
echo "<td>". $zeile['nachname'] . "</td>";
echo "<td>". $zeile['vorname'] . "</td>";
echo "<td>". $zeile['verein'] . "</td>";
echo "<td>". $zeile['ttr'] . " </td>";
echo "<td>" . date("d.m.Y G:i:s", strtotime($zeile['timestamp'])) . "</td>";
echo "</tr>";
$anzahl++;
}
echo "</table>";
// Hole die 64 ältesten Datensätze der Klasse 2 ab und sortiere dann absteigend nach TTR (meiste zuerst)
$sql = "SELECT * FROM (
SELECT id, nachname, vorname, verein, ttr, timestamp FROM anmeldungen_2017_sonntag WHERE gemeldeteKlasse = '2' ORDER BY timestamp ASC LIMIT 64
) as daten
ORDER BY daten.ttr DESC";
$db_erg = mysql_query( $sql );
if ( ! $db_erg )
{
die('Ungültige Abfrage: ' . mysql_error());
}
$anzahl = mysql_num_rows($db_erg);
$jahr = date('Y');
echo "<br>";
echo "Auflistung o.g. Spieler/innen nach QTTR Punkten";
echo "<br>";
echo "<br>";
echo "<table width=\"100%\" border=\"1\" cellpadding=\"3\" cellspacing=\"0\">";
echo "<tr>";
//echo "<td></td>";
echo "<td>Name</td>";
echo "<td>Vorname</td>";
echo "<td>Verein</td>";
echo "<td>QTTR</td>";
echo "<td>Meldedatum</td>";
echo "</tr>";
$anzahl = 1;
while ($zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC))
{
echo "<tr>";
//echo "<td>". $anzahl . "</td>";
echo "<td>". $zeile['nachname'] . "</td>";
echo "<td>". $zeile['vorname'] . "</td>";
echo "<td>". $zeile['verein'] . "</td>";
echo "<td>". $zeile['ttr'] ."</td>";
echo "<td>" . date("d.m.Y G:i:s", strtotime($zeile['timestamp'])) . "</td>";
echo "</tr>";
$anzahl++;
}
echo "</table>";
mysql_free_result( $db_erg );
echo "</center>\n";
mysql_close($link);
?>
Alles anzeigen
Und nun habe ich versucht dies in PDO um zu setzen.
<?php
//Einbinden von CSS Datei
include "css.php.inc";
//Einbinden von Datenbankzugang
require_once "dbVerbindung.php.inc";
//// Hole die 64 Ältesten Datensätze der Klasse 1 ab und sortiere dann absteigend nach Datum (neueste zuerst)
$pdo_1 = new MyPDO();
$sql_1 = "
SELECT
id, nachname, vorname, verein, ttr, timestamp
FROM
anmeldungen_2017_sonntag
WHERE
gemeldeteKlasse = '1'
ORDER BY
timestamp ASC LIMIT 64
";
// Hole die 64 Ältesten Datensätze der Klasse 1 ab und sortiere dann absteigend nach TTR (meiste zuerst)
$pdo_2 = new MyPDO();
$sql_2 = "
SELECT
id, nachname, vorname, verein, ttr, timestamp
FROM
anmeldungen_2017_sonntag
WHERE
gemeldeteKlasse = '1'
ORDER BY
timestamp ASC LIMIT 64
";
try {
printResult($pdo_1->query($sql_1)->fetchAll());
printResult($pdo_2->query($sql_2)->fetchAll());
} catch (Exception $e) {
die('Something went wrong...<br />' . $e->getMessage());
}
//Überschrift
$aktuellesJahr = $date->format('Y');
echo " Bisher sind $anzahlTeilnehmer Meldungen zum Turnier $aktuellesJahr bei uns eingegangen! Auflistung nach Meldedatum.";
function printResult($res_1) {
echo "<br/><b>Nach Datum</b>
<table class='table_gesamtspielplan'>
<tr>
<td><b>ID extern</b></td>
<td><b>ID DB</b></td>
<td><b>Name</b></td>
<td><b>Vorname</b></td>
<td><b>Verein</b></td>
<td><b>TTR</b></td>
<td><b>Meldeeingang</b></td>
</tr>
";
foreach ($res_1 as $val_1) {
$date = DateTime::createFromFormat('Y-m-d H:i:s', $val_1["timestamp"]);
$newDate = $date->format('d.m.Y H:i');
// $anzahlTeilnehmer = $date->format('d.m.Y H:i');
$aktuellesJahr = $date->format('Y');
echo "
<tr>
<td> {$val_1["id"]} </td>
<td> {$val_1["id"]} </td>
<td> {$val_1["nachname"]} </td>
<td> {$val_1["vorname"]} </td>
<td> {$val_1["verein"]} </td>
<td> {$val_1["ttr"]} </td>
<td> {$newDate} </td>
</tr>
";
}
echo "</table>";
function printResult($res_2) {
echo "<br/><b>Nach TTR</b>
<table class='table_gesamtspielplan'>
<tr>
<td><b>ID extern</b></td>
<td><b>ID DB</b></td>
<td><b>Name</b></td>
<td><b>Vorname</b></td>
<td><b>Verein</b></td>
<td><b>TTR</b></td>
<td><b>Meldeeingang</b></td>
</tr>
";
foreach ($res_2 as $val_2) {
$date = DateTime::createFromFormat('Y-m-d H:i:s', $val_1["timestamp"]);
$newDate = $date->format('d.m.Y H:i');
// $anzahlTeilnehmer = $date->format('d.m.Y H:i');
$aktuellesJahr = $date->format('Y');
echo "
<tr>
<td> {$val_2["id"]} </td>
<td> {$val_2["id"]} </td>
<td> {$val_2["nachname"]} </td>
<td> {$val_2["vorname"]} </td>
<td> {$val_2["verein"]} </td>
<td> {$val_2["ttr"]} </td>
<td> {$newDate} </td>
</tr>
";
}
echo "</table>";
}
}
?>
Alles anzeigen
Was klappt, was klappt nicht
Was Klappt:
Verbindung wurde hergestellt, Tabelle 1 wird aufgezeigt.
Was klappt nicht:
Tabelle 2 wird mir nicht aufgezeigt..
In jeder Tabelle würde ich gerne von 1 - 64 hochzählen. Wie wird dies realsiert?
Die Überschrift mit Bisher sind $anzahlTeilnehmer Meldungen zum Turnier $aktuellesJahr bei uns eingegangen! Auflistung nach Meldedatum."; wird auch nicht aufgezeigt
vllt. hat ja jemand erbarmen und schaut sich das Ganze mal an Danke schon mal im voraus.
Gruß Alex