SELFPHP: Version 5.6.9 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



iOS DevCon 2013



Software Architecture Summit 2013


Deine Leidenschaft ist die Unterwasserfoto-grafie?


Dann ist Qozido genau das Richtige für Dich!

Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler ist da!

www.qozido.de

 

CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Das Zend Framework

Das Zend Framework zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 


Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 17.06.2004, 20:53:31
Soeren Soeren ist offline
Anfänger
 
Registriert seit: Jun 2004
Ort: Bremen
Beiträge: 122
Soeren befindet sich auf einem aufstrebenden Ast
PHP/MySQL aus Datum Altersdurchschnitt

Hi,
ich hab eine Datenbank mit Geburtsdaten im Format 01.01.1980
Das Alter daraus berechne ich mit folgendem Script
PHP-Code:
$birthdate=$row[geb];
$parth=explode(".",$birthdate);
$seconds=mktime(0,0,0,$parth[1],$parth[0],$parth[2]);
$seconds=time()-$seconds;
$age=date("Y",$seconds)-1970
So nun möchte ich das Durchschnittsalter von ALLEN einträgen in der Tabelle haben...
Habt ihr eine Idee?
Mit Zitat antworten
  #2  
Alt 17.06.2004, 23:19:18
Benutzerbild von Jürg
Jürg Jürg ist offline
Junior Member
 
Registriert seit: May 2003
Ort: CH Zürich
Beiträge: 352
Jürg befindet sich auf einem aufstrebenden Ast
Jürg eine Nachricht über Skype™ schicken
Als Erstes würde ich die Geburtsdaten nicht so speichern! Das von Dir verwendete Format ist nicht Normgerecht.
Geeignet wäre das Format "date", somit wird das Datum zu: 1980-01-01
Damit müsste sich der Durchschnitt einfach berechnen lassen, Stichwort: avg (average).
Nebenbei, egal wieviel Arbeit damit verbunden ist, ich würde in jedem Fall das Datum in eine normgerechte Form bringen, das nacht sich immer bezahlt.
__________________
www.zudila.ch
Mit Zitat antworten
  #3  
Alt 18.06.2004, 08:13:31
Soeren Soeren ist offline
Anfänger
 
Registriert seit: Jun 2004
Ort: Bremen
Beiträge: 122
Soeren befindet sich auf einem aufstrebenden Ast
Danke Jürg.

Ich werde dann das Format ändern in YYYY-MM-DD, kann ich mir ja kurz ein Script basteln mit STR_TO_DATE()
Wie bekomm ich aber auf dem Datumsformat ein Durchschnittliches Alter?!?
Mit Zitat antworten
  #4  
Alt 18.06.2004, 10:02:26
Marilu Marilu ist offline
Member
 
Registriert seit: Apr 2003
Ort: 49.54, 8.35 - 3./9
Beiträge: 878
Marilu befindet sich auf einem aufstrebenden Ast
Du mußt das Datum in einen Unix-Timestamp konvertieren. Damit kann man sehr gut rechnen.
Mit Zitat antworten
  #5  
Alt 18.06.2004, 10:28:41
Soeren Soeren ist offline
Anfänger
 
Registriert seit: Jun 2004
Ort: Bremen
Beiträge: 122
Soeren befindet sich auf einem aufstrebenden Ast
Also nicht in YYYY-MM-DD sondern in ein Timestamp... hmmm... ich versuch es mal
Mit Zitat antworten
  #6  
Alt 18.06.2004, 19:37:28
Soeren Soeren ist offline
Anfänger
 
Registriert seit: Jun 2004
Ort: Bremen
Beiträge: 122
Soeren befindet sich auf einem aufstrebenden Ast
Ich möchte gerne per Script alle Datumsformate von DD-MM-YYYY in ein Timestamp umwandeln, sprich ich will die Daten in der Tabelle updaten... habt ihr eine Idee, wie ich das am einfachst hinbekomme?

Ich wollte es über strtotime versuchen, aber das scheint nicht zu klappen. (http://www.selfphp.info/funktionsref.../strtotime.php)
Könnt ihr mir weiterhelfen?
Mit Zitat antworten
  #7  
Alt 18.06.2004, 20:05:14
Soeren Soeren ist offline
Anfänger
 
Registriert seit: Jun 2004
Ort: Bremen
Beiträge: 122
Soeren befindet sich auf einem aufstrebenden Ast
Okay, meine Tabelle basiert nun auf nem Timestamp
Mit Zitat antworten
  #8  
Alt 18.06.2004, 20:40:03
Soeren Soeren ist offline
Anfänger
 
Registriert seit: Jun 2004
Ort: Bremen
Beiträge: 122
Soeren befindet sich auf einem aufstrebenden Ast
hab es nun wie folgt gelöst:
PHP-Code:
<?
$abfrage 
="SELECT AVG(geb) AS alt FROM spie";
$result mysql_query($abfrage);
while (
$row mysql_fetch_assoc($result)) {
$seconds=time()-$row[alt];
$age=date("Y",$seconds)-1970;
?>
Durchschnittsalter: <? echo $age?> Jahre
Kann mir das einer vielleicht Bestätigen???
Mit Zitat antworten
  #9  
Alt 22.06.2004, 12:11:59
tapferesschneid tapferesschneid ist offline
Junior Member
 
Registriert seit: Jun 2003
Beiträge: 194
tapferesschneid befindet sich auf einem aufstrebenden Ast
Hier die Formatänderung von 01.01.1980 (VARCHAR) in 1980-01-01 (DATE):
Code:
ALTER TABLE tabelle CHANGE geb geb_alt VARCHAR(255);
ALTER TABLE tabelle ADD geb DATE AFTER geb_alt;
UPDATE tabelle SET geb = 
CONCAT(SUBSTRING(geb_alt, 7, 4), "-", 
       SUBSTRING(geb_alt, 4, 2), "-", 
       SUBSTRING(geb_alt, 1, 2));
ALTER TABLE tabelle DROP geb_alt;
Da TIMESTAMP Sekunden zählt, auf 32-Bit-Systemen nach 2^32 Sekunden aber Schluß ist, würde ich das für das Alter/Geburtsdatum nicht empfehlen.

Aus der korrekten DATE-Spalte bekommst Du das Durchschnittsalter dann so:
Code:
SELECT AVG((TO_DAYS(CURRENT_DATE())-TO_DAYS(geb))/365.25) FROM tabelle
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:38:23 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.


© 2001-2013 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt