Ausgabe einer abgefragten Datumsspalte formatieren klappt nicht :(

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Ausgabe einer abgefragten Datumsspalte formatieren klappt nicht :(

    Hallo Forum,

    ich prügele mich jetzt schon seid geschlagenen 2 Tagen mit einem, für euch sicher simplen Problem. ICH raffe es einfach nicht.

    Eine Datenbankabfrage soll mir ein vernünftiges Datum ausgeben:
    PHP-Code:
    <?php require_once('../../Connections/storeversand.php'); ?>
    <?php
    if (!function_exists("GetSQLValueString")) {
    function 
    GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
    {
      if (
    PHP_VERSION 6) {
        
    $theValue get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
      }

      
    $theValue function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

      switch (
    $theType) {
        case 
    "text":
          
    $theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
          break;    
        case 
    "long":
        case 
    "int":
          
    $theValue = ($theValue != "") ? intval($theValue) : "NULL";
          break;
        case 
    "double":
          
    $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
          break;
        case 
    "date":
          
    $theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
          break;
        case 
    "defined":
          
    $theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
          break;
      }
      return 
    $theValue;
    }
    }
    $colname_gsearch "-1";
    if (isset(
    $_POST['nummer'])) {
      
    $colname_gsearch $_POST['nummer'];
    }
    mysql_select_db($database_storeversand$storeversand);
    $query_gsearch sprintf("SELECT nummer, date_format(datum, '%W %M %d, %Y'), user_id FROM daten WHERE name LIKE %s ORDER BY datum DESC"GetSQLValueString("%" $colname_gsearch"text"));
    $gsearch mysql_query($query_gsearch$storeversand) or die(mysql_error());
    $totalRows_gsearch mysql_num_rows($gsearch);
    ?>
    Die o.a. Abfrage liefert mir ein "Query was empty" zurück. Lasse ich das DATE_FORMAT() weg liefert mir das Formular ein sauberes Ergebnis. Nur leider natürlich mit dem in der DB abgespeicherten Timestamp.
    Muss ich den Datentyp in der DB ändern? Oder habe ich die Syntax von DATE_FORMAT() einfach falsch verstanden

    Ich hoffe wirklich sehr ihr könnt mir helfen. Habe es auch schon in anderen Foren, Google und tausend Büchern versucht ...ich bekomms einfach nicht hin

    Tausend Dank für jeden Tip!
    VG

  • #2
    DATE_FORMAT() erwartet als ersten Parameter einen DATETIME-Wert.
    So sollte es gehen: SELECT ... DATE_FORMAT(FROM_UNIXTIME(datum), '%W %M %d, %Y') ...

    Kommentar


    • #3
      leider nicht

      klappt immernoch nicht. Gleiche Ausgabe: Query was empty.

      Ich versteh das nicht. Die Abfrage kann doch nicht leer sein. unformatiert, also einfach
      Code:
      select datum...
      klappt doch und ist auch nicht leer...

      ich versteh das einfach nicht

      Kommentar


      • #4
        Hallo,

        bitte sieh dir erstmal die Forenregeln an. Dort steht, wie man es erreicht, dass Fehlermeldungen auch angezeigt werden. Du benutzt sprintf falsch, aber hast PHP geknebelt, so dass es dir das nicht sagen kann.

        Gruß,

        Amica

        Edit: da der gepostete Code hauptsächlich PHP und das Problem auch PHP-bezogen ist, *move*
        Zuletzt geändert von AmicaNoctis; 20.01.2010, 15:43.
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          ich würde auch erst mal die Ausgabe von sprintf anschauen, die eigentlich nichts liefert.

          "date_format(datum, '%%W %%M %%d, %%Y')" wäre bei sprintf richtig.

          warum überhaupt ein sprintf, wenn mann sowieso eine string-variable schreibt?
          Slava
          bituniverse.com

          Kommentar


          • #6
            Hallo Slava,

            danke für Deine Hilfe.

            Warum sprintf? Ich kanns Dir nicht sagen. Ich versuche mich seid Tagen mit 2 Büchern zu PHP/MySql und dazu Dreamweaver.
            Ich habe nun auch schon gemerkt, das DW sehr seltsame Abfragen schreibt.
            Ich habe es aber leider bis Dato auch noch nicht hinbekommen diese so umzuschreiben wie es in den Büchern steht.
            Da kommt bei mir nur Müll raus
            Eigentlich funktioniert die Abfrage von DW ja auch und ich hab auch schon viel gerlernt dadurch. Nur das ich das Datum eben nicht angepasst bekomme. So:
            PHP-Code:
            sprintf("SELECT nummer, DATE_FORMAT(datum, '%%d %%c %%Y'), user_id FROM daten WHERE nummer LIKE %s ORDER BY datum DESC"
            GetSQLValueString("%" $colname_gsearch "%""text")); 
            ..bekomme ich zumindest schon mal Die gesuchten Datensätze angezeigt aber nun ist die Datumsspalte der Ausgabe komplett leer.

            Ich glaube ich muss erstmal weiter lesen bis ich mich an ein Übungsprojekt wage. Dabei lerne ich mit "Try and Error" eigentlich am besten. Aber hier komm ich echt nicht weiter
            Zuletzt geändert von jaffi; 21.01.2010, 07:08.

            Kommentar


            • #7
              Anfängerfrage: Abfrage liefert mir nur EIN Ergebnis - Forum: phpforum.de

              Kommentar


              • #8
                Bevor dir hier weiter geholfen wird, passt du deine Postings bitte unverzüglich an die Regeln an!

                Amica hat dich nicht umsonst schon beim ersten Posting darauf verwiesen!

                Kommentar


                • #9
                  Zitat von jaffi Beitrag anzeigen
                  ..bekomme ich zumindest schon mal Die gesuchten Datensätze angezeigt aber nun ist die Datumsspalte der Ausgabe komplett leer.
                  To-Do-List:

                  Du möchtest das error_reporting auf E_ALL einstellen, wie es in den Forenregeln steht.
                  Dann wird PHP dich darauf hinweisen, dass es in den von dir abgefragten Daten keine Spalte namens datum gibt.

                  Dann schaust du dir einen solchen Datensatz mittels var_dump an, um zu schauen, was wirklich drinsteht.
                  Und dann informierst du dich, was ein Alias in SQL ist.
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    nun hab ichs...

                    Zitat von wahsaga Beitrag anzeigen
                    To-Do-List:

                    Du möchtest das error_reporting auf E_ALL einstellen, wie es in den Forenregeln steht.
                    Dann wird PHP dich darauf hinweisen, dass es in den von dir abgefragten Daten keine Spalte namens datum gibt.

                    Dann schaust du dir einen solchen Datensatz mittels var_dump an, um zu schauen, was wirklich drinsteht.
                    Und dann informierst du dich, was ein Alias in SQL ist.
                    wow! vielen vielen Dank für Deinen/eure Hinweise. So funktioniert es jetzt:
                    PHP-Code:
                    $query_gsearch sprintf("SELECT guppy, DATE_FORMAT(datum, '%%d.%%m.%%Y') AS 'datum',
                    user_id FROM daten WHERE guppy LIKE %s ORDER BY datum DESC"
                    GetSQLValueString("%" $colname_gsearch "%""text")); 
                    Habe immer gedacht, das ein ALIAS kein MUSS ist. Und das es den genauen Spaltennamen bezeichnen muss, da wär ich nie drauf gekommen!!
                    Aber das scheint bei sprintf wohl doch so zu sein.??!!
                    Diese ToDo-List war für mich als absoluter Neueinsteiger eine grosse Hilfe.

                    Bitte habt Nachsicht das ich mich nicht sofort an die Regeln gehalten hab.
                    Wenn man verzweifelt nach einer Lösung sucht vergisst man alles um sich herum!! Tausend mal sorry, und ich gelobe Besserung!!

                    Vielen, Vielen Dank!!
                    Wir lesen uns jetzt bestimmt öfters

                    Nochmals Danke an alle!!

                    Kommentar


                    • #11
                      Zitat von jaffi Beitrag anzeigen
                      Habe immer gedacht, das ein ALIAS kein MUSS ist.
                      Ist er auch nicht.
                      Aber wenn du die Spalte mit
                      Code:
                      DATE_FORMAT(datum, '%%d.%%m.%%Y')
                      ermittelst, dann landet sich auch unter genau diesem „Bezeichner” im Ergebnisarray, wenn du die Daten per PHP als assoziatives Array ausliest.
                      Und weil das unhandlich ist, vergibt man lieber einen Alias, der sich hübscher ansprechen lässt.

                      Und das es den genauen Spaltennamen bezeichnen muss, da wär ich nie drauf gekommen!!
                      Muss es ebenfalls nicht.

                      Du kannst auch
                      Code:
                      SELECT DATE_FORMAT(datum, '%%d.%%m.%%Y') AS xyz
                      verwenden - dann wird der Wert unter dem Key 'xyz' abgelegt.


                      Btw., die Hochkommata um den Aliasnamen braucht es auch nicht.
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        nu hab ichs auch verstanden ...

                        tausend Dank!!

                        Kommentar

                        Lädt...
                        X