[PHP] ORDER BY TIME

Dieses Thema im Forum "Webentwicklung" wurde erstellt von 3X3X3X3, 29. Juni 2009 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 29. Juni 2009
    ORDER BY TIME

    Halli Hallo,
    ich habe mal ne Frage.. hab schon gegoogelt gehabt und die meinten man müsste den String zerlegen...
    Ich hab ne Tabelle als VARCHAR mit dem Inhalt 16.45, 3.15, 8.00, 10.45, 7.30, 14.15
    Nun will ich das ganze aber in der Zeitlichen Reihenfolge ausgeben!
    Mit ORDER BY zeit ASC funktioniert das so nicht!

    Kann mir da jmd weiter helfen?

    Lg
     
  2. 29. Juni 2009
    AW: ORDER BY TIME

    Hey,

    dafür gibt es ja extra das Datenbankfeld TIME. Am einfachsten würdest dus dir machen, wenn du die alle umkonvertierst. Einfach kleines PHP-Script, was alle Datensätze ausliest das Format umwandelt und sie wieder in ein extra Feld einfügst.

    Hiermal ein kleiner Script-Ansatz:

    PHP:
    <? php

    $mysql 
    = new  mysqli ( $host , $user , $pw , $db );

    $daten  $mysql -> query ( "SELECT * FROM tabelle;" );
    while(
    $datensatz  $daten -> fetch_assoc ()){
    $neues_feld  str_replace ( "." , ":" , $datensatz [ 'altes_feld' ]);
    $neues_feld  $neues_feld . ":00" ;
    $mysql -> query ( "UPDATE tabelle SET neues_feld = '" . $neues_feld . "' WHERE id(oda sowas) = '" . $datensatz [ 'id(oda sowas)' ]. "';" );
    }

    ?>
    Hoffe hab das alles so richtig verstanden und konnte dir helfen



    Gruß Blackbird
     
  3. 29. Juni 2009
    AW: ORDER BY TIME

    in deinem fall wäre "FLOAT" als feldtyp ausreichend. dann würde "ORDER BY zeit ASC|DESC" korrekt funktionieren.
     
  4. 29. Juni 2009
    AW: ORDER BY TIME

    danke für die hilfe werds glei mal probieren!

    okay danke funktioniert.. hab nicht um "die ecke" gedacht

    noch ein "problem"
    wenn ich jetzt 8.00 eingebe schreibt er mir nur 8 in die tabelle?! kann man das verhindern?
     
  5. 29. Juni 2009
    AW: ORDER BY TIME

    via number_format

    PHP:
    print  number_format ((float) 11 2 ':' ':' );  // 11:00
    ich persönlich verwende bei zeitangeben IMMER timestamps.
    damit kann man super rechnen und man is ned von mysql abhängig (wegen den ganzen zeitfunktionen)
     
  6. 29. Juni 2009
    AW: ORDER BY TIME

    wenn du ein autoincrement wert hast, kannst du theoretisch auch nach diesem sortieren. dann musst du nicht nach der zeit sortieren.
     
  7. 29. Juni 2009
    AW: ORDER BY TIME

    quatsch...
    wenn du erst n termin um 9 einträgst und dann einen um 8, danach ggf einen für 10 uhr. dann is das schwachsinn^^
     
  8. 29. Juni 2009
    AW: ORDER BY TIME

    /sign

    Ist auch meiner Meinung nach die beste Lösung. Habe ich selbst in allen meinen Script implementiert.


    Gruß Blackbird
     
  9. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.