Hallo,
bei MYSQL und PHP bin ich noch Anfänger, deshalb brauche ich Hilfe bei folgendem Problem:
für meinen Kegelverein bastle ich gerade an einer Website und bin nun an den Mitgliedern dran.
Hier habe ich ein MYSQL Datenbank erstellt u. a. mit den Tabellen
member, mitgliedsdauer
member hat die Spalten id, nickname, nachname, geburtstag, sterbedatum
mitgliedsdauer hat die Spalten member_id, eintritt, austritt, eintritt2, austritt2, eintritt3, austritt3, gesamt
Da einige Mitglieder mehrmals aus- und wieder eingetreten sind, gibt es eben die Spalten mit eintritt2, austritt2, eintritt3…
Um die Mitglieder in einer Tabelle auf der Website aufzulisten, habe ich folgenden Code:
<?php
try {
$verbindung = new PDO("mysql:host=localhost;dbname=datenbank;charset=utf8", "root", "");
}
catch(Exception $fehler) {
print $fehler->getMessage();
}
$sqlBefehl = "SELECT `nickname`, `nachname`, `eintritt`, `austritt`, `gesamt` from `member`, `mitgliedsdauer`
where `id` = `member_id`";
$abfrage = $verbindung->prepare($sqlBefehl);
$abfrage->execute();
$ergebnismenge = $abfrage->fetchAll();
?>
<table>
<thead>
<tr>
<td>Vorname</td>
<td>Nachname</td>
<td>Eintritt</td>
<td>Austritt</td>
</tr>
</thead>
<tbody>
<!-- PURES HTML ENDE -->
<!-- LOOP MIT PHP UND HTML TAGS PER ECHO -->
<?php foreach($ergebnismenge as $zeile) : ?>
<tr>
<td><?php echo $zeile['nickname']; ?></td>
<td><?php echo $zeile['nachname']; ?></td>
<td><?php $eintritt = new DateTime($zeile['eintritt']); echo $eintritt->format('d.m.Y')."<br />";?></td>
<td><?php $austritt = new DateTime($zeile['austritt']); echo $austritt->format('d.m.Y')."<br />";?></td>
</tr>
<?php endforeach; ?>
<!-- ENDE PHP LOOP -->
<!-- PURES HTML -->
</tbody>
</table>
<!-- HTML ENDE -->
Dies funktioniert soweit gut. Es wird folgendes ausgeworfen:
Nun möchte ich aber in einer extra Spalte die Dauer der Vereinszugehörigkeit anzeigen lassen - am liebsten mit Tagen, Monaten, Jahren. Und da scheitere ich daran.
Wenns zu kompliziert werden sollte, wäre ich auch nur mit Jahren zufrieden
Im Netz finde ich zwar wie man das Alter bzw. die Dauer berechnen lassen kann, aber ich bekomms einfach nicht hin ☹
Als einzelner Befehl bei phpAdmin habe ich erfolgreich das versucht:
SELECT TIMESTAMPDIFF(YEAR, eintritt, austritt) AS alter_jahr
from mitgliedsdauer
hier wirft er mir die Jahre aus – aber ich bekomms im sql-befehl bzw. php leider nicht hin.
Und komplizierter wird es ja wenn einer ausgetreten ist und wieder dabei ist.
Kann mir da jemand weiterhelfen?
Vielen lieben Dank
Gruß
Ezi
bei MYSQL und PHP bin ich noch Anfänger, deshalb brauche ich Hilfe bei folgendem Problem:
für meinen Kegelverein bastle ich gerade an einer Website und bin nun an den Mitgliedern dran.
Hier habe ich ein MYSQL Datenbank erstellt u. a. mit den Tabellen
member, mitgliedsdauer
member hat die Spalten id, nickname, nachname, geburtstag, sterbedatum
mitgliedsdauer hat die Spalten member_id, eintritt, austritt, eintritt2, austritt2, eintritt3, austritt3, gesamt
Da einige Mitglieder mehrmals aus- und wieder eingetreten sind, gibt es eben die Spalten mit eintritt2, austritt2, eintritt3…
Um die Mitglieder in einer Tabelle auf der Website aufzulisten, habe ich folgenden Code:
<?php
try {
$verbindung = new PDO("mysql:host=localhost;dbname=datenbank;charset=utf8", "root", "");
}
catch(Exception $fehler) {
print $fehler->getMessage();
}
$sqlBefehl = "SELECT `nickname`, `nachname`, `eintritt`, `austritt`, `gesamt` from `member`, `mitgliedsdauer`
where `id` = `member_id`";
$abfrage = $verbindung->prepare($sqlBefehl);
$abfrage->execute();
$ergebnismenge = $abfrage->fetchAll();
?>
<table>
<thead>
<tr>
<td>Vorname</td>
<td>Nachname</td>
<td>Eintritt</td>
<td>Austritt</td>
</tr>
</thead>
<tbody>
<!-- PURES HTML ENDE -->
<!-- LOOP MIT PHP UND HTML TAGS PER ECHO -->
<?php foreach($ergebnismenge as $zeile) : ?>
<tr>
<td><?php echo $zeile['nickname']; ?></td>
<td><?php echo $zeile['nachname']; ?></td>
<td><?php $eintritt = new DateTime($zeile['eintritt']); echo $eintritt->format('d.m.Y')."<br />";?></td>
<td><?php $austritt = new DateTime($zeile['austritt']); echo $austritt->format('d.m.Y')."<br />";?></td>
</tr>
<?php endforeach; ?>
<!-- ENDE PHP LOOP -->
<!-- PURES HTML -->
</tbody>
</table>
<!-- HTML ENDE -->
Dies funktioniert soweit gut. Es wird folgendes ausgeworfen:
Vorname | Nachname | Eintritt | Austritt |
Artur | Göggel | 05.10.1963 | 21.11.1964 |
Felix | Fischer | 05.10.1963 | 27.06.1964 |
Ulbricht | Schröder | 05.10.1963 | 21.12.1970 |
Helmut | Blum | 05.10.1963 | 12.12.1964 |
Kal-Heinz | Müller | 05.10.1963 | 31.05.1964 |
Walter | Huber | 05.10.1963 | 05.01.2017 |
Nun möchte ich aber in einer extra Spalte die Dauer der Vereinszugehörigkeit anzeigen lassen - am liebsten mit Tagen, Monaten, Jahren. Und da scheitere ich daran.
Wenns zu kompliziert werden sollte, wäre ich auch nur mit Jahren zufrieden
Im Netz finde ich zwar wie man das Alter bzw. die Dauer berechnen lassen kann, aber ich bekomms einfach nicht hin ☹
Als einzelner Befehl bei phpAdmin habe ich erfolgreich das versucht:
SELECT TIMESTAMPDIFF(YEAR, eintritt, austritt) AS alter_jahr
from mitgliedsdauer
hier wirft er mir die Jahre aus – aber ich bekomms im sql-befehl bzw. php leider nicht hin.
Und komplizierter wird es ja wenn einer ausgetreten ist und wieder dabei ist.
Kann mir da jemand weiterhelfen?
Vielen lieben Dank
Gruß
Ezi