Alter berechnen

Also so wie ich das jetzt im Manual gelesen habe, musst statt diesem (Teil)Query
Code:
DATE_SUB(CURDATE(), ".(int)$_POST["submit_min"]." YEARS)
den hier nehmen:
Code:
DATE_SUB(CURDATE(), INTERVAL ".(int)$_POST["submit_min"]." YEARS)

Es gibt allerdings keine Garantie ^^
 
Funktioniert leider auch nicht, ich glaub so hab ichs auch schon versucht ...

PHP:
mysql_query("SELECT * FROM `accounts` WHERE `geburtsdatum` BETWEEN DATE_SUB(CURDATE(), INTERVAL ".(int)$_POST["submit_min"]." YEARS) AND DATE_SUB(CURDATE(), INTERVAL ".(int)$_POST["submit_max"]." YEARS)");

Fehler:
Code:
ou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'YEARS) AND DATE_SUB(CURDATE(), INTERVAL 0 YEARS)' at line 1
 
Ok, jetzt bekomm ich wenigstens keinen Fehler mehr, allerdings wird auch nichts ausgegeben, sry aber hast du da noch eine Idee?

MfG
 
Hallo,

ich habe eine Lösung gefunden nur ist mir letztens aufgefallen damit das Alter nicht bei allen Gebrutsdatums korrekt ausgegeben wird, an was kann das liegen und wie beheb ich das Problem?

PHP:
$res=mysql_query("

SELECT 

*, YEAR( CURRENT_DATE( ) ) - YEAR( geburtsdatum ) age, datediff( MAKEDATE( YEAR( CURRENT_DATE( ) ), IF( DAYOFYEAR( geburtsdatum ) > DAYOFYEAR( LAST_DAY( MAKEDATE( YEAR( CURRENT_DATE( ) ) , 365 ) ) ) , DAYOFYEAR( LAST_DAY( MAKEDATE( YEAR( CURRENT_DATE( ) ) , 365 ) ) ) , DAYOFYEAR( geburtsdatum ) ) ) , CURRENT_DATE( ) ) % DAYOFYEAR( LAST_DAY( MAKEDATE( YEAR( CURRENT_DATE( ) ) , 365 ) ) ) days_to_birthday

FROM

`mitglieder`

");
  
while($row=mysql_fetch_array($res)) {

if($age >= $_POST["min_alter"] AND $alter <= $_POST["max_alter"]) {
  echo $row["benutzername"];
}

}

MfG proloser
 
Hallo,

probier es mal mit folgender Abfrage:
Code:
SELECT
	*,
	YEAR(CURRENT_DATE) - YEAR(`geburtsdatum`) -
		IF(DATE_FORMAT(CURRENT_DATE, "%m%d") < DATE_FORMAT(`geburtsdatum`, "%m%d"), 1, 0)
	AS `alter`
FROM
	`mitglieder`
HAVING
	`alter` BETWEEN $min_alter AND $max_alter

Grüße,
Matthias
 
Da muss glaub irrgend wo ein Fehler drin sein ...

Code:
Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in suchen.php on line 31
 
Müsste eigentlich passen ...

PHP:
$res=mysql_query("
    SELECT
	  *,
	  YEAR(CURRENT_DATE) - YEAR(`geburtsdatum`) - IF(DATE_FORMAT(CURRENT_DATE, "%m%d") < DATE_FORMAT(`geburtsdatum`, "%m%d"), 1, 0) AS `alter`
    FROM
	  `mitglieder`
    HAVING
      `alter` BETWEEN '".$_SESSION["schnellsuche_alter1"]."' AND '".$_SESSION["schnellsuche_alter2"]."'
");
  
while($row=mysql_fetch_array($res)) {

...

}


MfG proloser
 

Neue Beiträge

Zurück