strpos() Problem

Metha hat gesagt.:
Ist es vielleicht besser wenn ich keinen Timestamp abspeicher, sondern die MySQL Spalte als DATETIME definiere?
Da scheiden sich die Geister. Meiner Meinung nach ist es besser. In Bezug auf das Datenbankmodell gibt es wohl auch keine weitere Diskussion. Gegenargumente sind die einfachere Verarbeitung von UNIX-Timestamp in PHP (wobei sich sonst vieles auch über MySQL-Funktionen lösen lässt) und je nach Anwendungsfall schwankt die Performance geringfügig, mal ist die eine Variante besser, mal die andere.
Eine etwas hitzige, aber durchaus aufschlussreiche Diskussion zu dem Thema gab es vor ein paar Monaten.

Zu Deinem letzten Post:
Wenn ich Dich bisher richtig verstanden habe, willst Du die Jahre haben und zwar jedes Jahr nur einmal. Dann müsstest Du Deinem Statement ein GROUP BY YEAR(zeit) anhängen.

Gruß hpvw
 
Nunja, eine Datetime-Format lässt sich ja aber auch recht fix wieder in UNIX umwandeln. Und den Aufwand den ich bislang hatte eine PHP-MYSQL Anfrage zusammen zu stricken, fand ich auch immer enorm.

Hmm erzeugt keine Ausgabe:
PHP:
<?php
include('mysql.php');
$qry=mysql_query('SELECT YEAR(zeit) FROM asd GROUP BY YEAR(zeit)');
while($erg=mysql_fetch_object($qry))
{
echo $erg->zeit;
echo '<br>';
}
?>
 
Der Zugriff auf zeit ist so nicht möglich, da Du YEAR(zeit) und nicht zeit ausgewählt hast.
Verwende Aliasnamen:
Code:
SELECT YEAR(zeit) AS jahr FROM asd GROUP BY jahr
oder
Code:
SELECT YEAR(zeit) AS jahr FROM asd GROUP BY jahr DESC
Zugriff in PHP auf das Feld ist jetzt natürlich nicht mit zeit, sondern mit jahr möglich.
 
Ich denke das die Entscheidung für DATETIME nicht schlecht ist.
Wenn du auf DATETIME umstellst dann ist mein erster Post zu diesem Thema dein Schlüssel :D
 
Zuletzt bearbeitet:
Danke Danke

So gehts:
PHP:
$qry=mysql_query('SELECT YEAR(zeit) AS jahr FROM asd GROUP BY jahr');
while($erg=mysql_fetch_object($qry))
{
echo $erg->jahr;
echo '<br>';
}
Also YEAR ist doch eine sog. Aggregationsfunktionen oder ? aber wozu diese Aliasnamen, denn ich kann ja auch wieder zeit angeben!?
 
Zuletzt bearbeitet:
Hallo ich nochmal :rolleyes:

Wenn ich nun nur die monate ausgeben will eines gewählten jahres, in denen Datensätze vorhanden sind.?

Hier mein bisheriger code (Gib diesen Fehler: mysql_fetch_object(): supplied argument is not a valid MySQL result resource):
PHP:
$qry=mysql_query('SELECT MONTH(datum) AS monat FROM md_counter_user WHERE YEAR(datum)=\''.$this->jahr.'\' DESC');
while($erg=mysql_fetch_object($qry))
{$this->monatsliste.='<option value="'.$erg->monat.'">'.$erg->monat.'</option>';}
Habe meine Tabelle nun auf DATETIME umgestellt. $this->jahr ist ein durch ein formular übergebener wert.
 
Zuletzt bearbeitet:
Ok, habs selber hinbekommen. hier der richtige Query:
PHP:
$qry=mysql_query('SELECT MONTH(datum) AS monat FROM md_counter_user WHERE YEAR(datum)='.$this->jahr.' GROUP BY monat');
 
Zurück