Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP / MySQL - Abfrage & Ausgabe

Einklappen

Neue Werbung 2019

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

  • #16
    Zitat von protestix Beitrag anzeigen
    Dein Proplem Datumsberechnung.
    Dieses lässt sich aber nur sinnvoll lösen wenn du anstatt

    `date` varchar(20)

    den Datentyp nimmst, der für Kalenderwerte vorgesehen ist. Also date oder datetime und nicht varchar.
    Ausserdem hasst du latin1 als Zeichenkodierung, das ist aber Urzeiten her, dass man das verwendet hat. du müsstest also auf UTF8 umstellen.

    Das du was lernen willst ist ja schön, aber das Forum ist nicht dafür da dir was beizubringen, hier wird erwartet das du das Thema zumindest einigermassen beherrscht worüber wir uns her austauschen.
    Siehe auch https://www.php.de/articles/regeln-und-richtlinien
    Wir können uns gerne über EXCEL unterhalten oder über Telekommunikation (Anbieter, Tarife, Telefonanlagen, Cloud-Telefonie, IP-Telefonie, SIP-Trunk, ISDN, Netzwerke etc pp.)
    aber von PHP habe ich nur etwas ahnung und von MySQL leider noch nicht, allerdings steht schon ein Buch daheim

    PHP 7 und MySQL - Das umfassende Handbuch von Christian Wenz und Tobias Hauser https://www.rheinwerk-verlag.de/php-7-und-mysql_4090/

    Kommentar


    • #17
      Zitat von MarH Beitrag anzeigen
      Ich arbeite nicht an der Hauptdatenbank oder an den Hauptfiles sondern auf meiner Lokalen Maschine (BackUp) von der Hauptdatenbank auf unseren Webhost.
      In der Date_notification Spalte werden tatsächlich unterschiedliche Formate eingetragen die bsp. in dem Notizfeld: "Benachrichtungs Datum:" eingetragen werden, das ganze könnte ich doch mit einem Kalenderfeld umgehen?
      Das ist schonmal gut.

      Jetzt müsstest du herausfinden, welche unterschiedlichen Formate in diesem Feld gespeichert sind und für jedes Format eine Konvertierung vornehmen (ein SQL schreiben, das die Konvertierung vornimmt).
      Bei derartigen Migrationen ist es sinnvoll, neben dem Originalfeld (varchar) eine zweite Spalte anzulegen (Datetime) in die die konvertierten Werte eingetragen werden. Am Besten in einer neuen Tabelle.
      Eventuell wirst du auch auf Einträge treffen, die entweder gar nicht oder nur unter bestimmten Annahmen konvertiert werden können.
      Beispiel englisches "DD/MM/YYYY" vs. amerikanisches Format "MM/DD/YYYY". Für eine Datum mit Monat und Tag <= 12 ist nicht erkennbar, ob der Monat oder der Tag zuerst genannt wird, 3/7/2018 könnte also der 3. Juli 2018 sein, aber genausogut der 7. März 2018.

      Wie du siehst, es gibt hier eine Menge Fehlerpotential und Stolperfallen.
      Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

      Kommentar


      • #18
        Zitat von lstegelitz Beitrag anzeigen

        Das ist schonmal gut.

        Jetzt müsstest du herausfinden, welche unterschiedlichen Formate in diesem Feld gespeichert sind und für jedes Format eine Konvertierung vornehmen (ein SQL schreiben, das die Konvertierung vornimmt).
        Bei derartigen Migrationen ist es sinnvoll, neben dem Originalfeld (varchar) eine zweite Spalte anzulegen (Datetime) in die die konvertierten Werte eingetragen werden. Am Besten in einer neuen Tabelle.
        Eventuell wirst du auch auf Einträge treffen, die entweder gar nicht oder nur unter bestimmten Annahmen konvertiert werden können.
        Beispiel englisches "DD/MM/YYYY" vs. amerikanisches Format "MM/DD/YYYY". Für eine Datum mit Monat und Tag <= 12 ist nicht erkennbar, ob der Monat oder der Tag zuerst genannt wird, 3/7/2018 könnte also der 3. Juli 2018 sein, aber genausogut der 7. März 2018.

        Wie du siehst, es gibt hier eine Menge Fehlerpotential und Stolperfallen.
        Noch einmal Vielen Dank! Ich habe jetzt einfach das Feld "Benachrichtung am:" mit einem Datepicker ersetzt und habe um fehler in der Datenbank zu vermeiden dieses Feld als required gesetzt... Ich setzte jetzt zudem die Tabelle um von varchar in date, und konfiguriere die DB in utf 8, damit sollte mein problem behoben sein...

        Generell arbeiten 2-3 Leute an dem Programm, die tragen i. d. R auch Deutsche Datumformat ein, ansonsten ist deren Notiz halt dann weg....

        Vielen Dank!

        Kommentar


        • #19
          Ob es damit getan ist?
          Beispiel "deleted" und "done": macht man so nicht, hier können widersprüchliche Daten eingetragen werden. Ist vielleicht noch halbwegs stabil, wenn es durch eine Webseite "geschützt" bearbeitet wird, aber wenn nebenbei jemand ständig Daten in der DB ändert, um sie zu korrigieren oder eine Wiedervorlage zu prodizieren, dann riecht es nach Datensalat.
          Ohne die Abläufe zu kennen, würde ich sowas wohl in einem(!) Statusfeld unterbringen. Etwas ist deleted oder done, aber nicht beides. Vielleicht gibt es auch den Statusübergang done>deleted, geht trotzdem in eine Feld.

          Kommentar

          Lädt...
          X