2016-04-21 12 views
0

In MySQL habe ich zwei Daten: Geburtsdatum als Geburtsdatum und date_starb als Datum des Todes. Aus der Tabelle sind alle Menschen, die ich brauche nur die Toten und das Alter des Verstorbenen wählen:vergleiche zwei date in php von mysql

$sql = "SELECT members.*, TIMESTAMPDIFF(YEAR,'birth_date','date_starb') AS age FROM members WHERE (date_starb != 0)"; //select only dead peoples 

Abfrageverarbeitung:

<?php 
$result = $conn->query($sql); 
if ($result->num_rows > 0) { 
// Fetch a result row as an associative array 
while($row = $result->fetch_assoc()) { 
?> 
<td><?php echo $row["name"];?></td> 
<td><?php echo date("j. F Y", strtotime($row["birth_date"]));?></td> 
<td><?php echo date("j. F Y", strtotime($row["date_starb"]));?></td> 
<td><?php echo $row["age"];?></td> 
<?php 
} 
} 
else 
{ 
echo "0 results"; 
} 
$conn->close(); 
?> 

Wie in Folge, erhalte ich die richtige Anzahl von Linien, Namen und Geburts- und Sterbedaten, aber in der Spalte "Alter" habe ich kein Ergebnis. Ich habe auch keine Fehlermeldung auf der Seite.

Einige Lösung? Danke für die Antwort.

+1

entfernen Sie die einfachen Anführungszeichen birth_date und date_starb – Fabricator

Antwort

2

Sie brauchen keine Feldnamen in '

$sql = "SELECT members.*, TIMESTAMPDIFF(YEAR,birth_date,date_starb) AS age FROM members WHERE (date_starb != 0)"; //select only dead peoples 

sonst MySQL behandelt sie wie ein Zeichenketten

+0

Danke euch beiden zu wickeln :) –