Beiträge von Stef

    Guten Morgen,

    okay. Intressant. Ist das nicht ein Fehler der DateTime-Klasse?

    Danke der Info.

    Es funktioniert nun.

    Hey,

    ich möchte ein normales Datum sowie eine normale Uhrzeit als DateTime-Objekt haben.

    Habe daher das Datum mit der Uhrzeit konkatentiert und der DateTime-Klasse als Parameter mitgegeben.

    Alles gut soweit.

    Aber passt jetzt auf:

    Wenn ich alles jetzt teste bekomme ich folgende Fehler, weil $datum->date anscheinend keinen Wert hat :

    1. Notice: Undefined property: DateTime::$date in C:\xampp\htdocs\php\projekt\panel\admin\php\diary.php on line 123

    2. Ein Fehler ist aufgetreten: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'datum' cannot be null

    Nun habe ich var_dump() auf $datum angewendet. Dort kommt dies raus: object(DateTime)#2 (3) { ["date"]=> string(26) "2018-04-18 12:00:00.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(13) "Europe/Berlin" }

    Wenn ich es jetzt mit den gleichen Werten teste funktioniert alles ohne Probleme. Kaum entferne ich das var_dump() kommt wieder der Fehler.

    Ich bin grad wirklich ratlos.

    Der Codeteil:

    Grüße,

    Stef

    Guten Morgen,

    du hast recht. Jetzt sehe ich meinen Fehler. Ich müsste NOW() in der Funktion DATE_SUB verwenden. Denn ich möchte alles, der letzten 2 Wochen, aus der DB ziehen.

    Danke für die ausführliche Erklärung.

    Gruß,

    Stef

    Hat sich erübrigt.

    Mein Fehler war der Where-Teil.

    Richtig ist es so:

    $selectMessages = $dbv->prepare("SELECT messageHead, message, datum FROM messages WHERE datum >= DATE_SUB(datum, INTERVAL 12 DAY)");

    EDIT:

    Dies funktioniert doch nicht wie gehofft.

    Es werden trotz DATE_SUB alle Einträge gefetcht.

    Was ist denn daran falsch ?

    Hey,

    ich möchte, dass alle DB-Einträge der letzten 2 Wochen aus der Datenbank gezogen werden.

    Ich habe bereits gegoogelt und habe die DATE_SUB()-Function von Mysql gefunden sowie ein paar Tutorials.

    Nun habe ich es so gemacht wie ich die Nutzung gesehen habe aber es wird kein DB-Eintrag aus der Datenbank gezogen.

    Die Query wird ausgeführt, da execute True zurückgibt.

    Habt ihr eine Idee woran das liegt?

    Mein Code:

    PHP
    $selectMessages = $dbv->prepare("SELECT messageHead, message, datum FROM messages WHERE datum = DATE_SUB(datum, INTERVAL 12 DAY)");
        $result = $selectMessages->execute();
    
        // var_dump($result); -> gibt true zurück
    
        $messages = $selectMessages->fetchAll(PDO::FETCH_ASSOC);
    
        //var_dump($messages); -> gibt array(0){} zurück

    Grüße,

    Stef

    Hey,

    hier ist ein Beispiel wie dus machen kannst:

    Link zu dem Fiddle: https://jsfiddle.net/6zsa6r24/13/

    basti1012 : Dein "php echo event"-Script funktioniert nicht. Bei mir jedenfals nicht. Siehe: http://prntscr.com/j4uak2

    Desweiteren ist es eine Überlegung wert ob du nicht die komplette Formvalidierung mit Javascript programmierst. Dann kannst du die Daten z.b. mittels Ajax/XMLHttpRequest an die PHP datei weiter senden (ohne Seitenneuladung) und diese dort weiterverarbeiten. Ist meiner Meinung nach für dein Anwendungsfall doch die beste herangehensweise.

    Hey,

    es ist ganz einfach.

    Ablauf:

    Du hast z.b. ein Formular mit radio-buttons und diese sind mit den jeweiligen Jahren versehen. Nun bei einem Click auf ein radio-Button wird ein Request mittels Javascript ausgeführt. Das Jahr wird dann an die PHP-Datei gesendet. In dieser überprüfst du erst mal ob ein Jahr vorhanden ist oder nicht. Wenn ja dann lest du alle Bilder aus dem Ordner mit dem Jahr aus und gibst diese dann mittels PHP aus. In der HTML-Datei kann man dann z.b. auf diese Ausgabe mittels request.responseText zugreifen und ausgeben.

    Schlagwörter:

    - XMLHttpRequest

    - If-Abfragen

    - Bilder auslesen mit PHP und ausgeben

    Gruß,

    Stef

    cottton & m.scatello :

    Vielen Dank für die Hilfe. Besoners danke Cottton für deinen super Tipp.

    Es klappt ohne Probleme und ist auch viel besser.

    Hey,

    m.scatello : Ich würde schon sagen, dass ich mich so gut wie möglich an das EVA-Prinzip halte.

    & cottton :

    Okay. Ich habe erst create, dann delete und dann edit gemacht. Aber es kommt nach deinem Schema das selbe raus.

    Das Problem ist, dass ich ja mehrere Termine habe. Ich gebe diese dann aus. Nun hat jeder Termin ein löschen und editieren Button. Aber die ganzen Buttons müssen einen unterschiedlichen Namen haben weil es sonst nicht funktioniert. Da dachte ich, dass ich dann an den Namen den Schlüssel hänge und dann mittels einer for-schleife alle buttons auch abdecke und ausführbahr mache. Aber für die for-schleife brauche ich ja die Schlüssel aus dem Array $alleTermine. Also brauche ich diesen schon vor dem Löschen des Datensatzes. Sonst sind die Schlüssel nicht vorhanden und es funktioniert nicht.

    Ich habe jetzt eine Möglichkeit gefunden. Aber ich denke dies ist unsauber und nicht so gut.

    Ich habe einfach nochmal zum Schluss alle Datensätze aus der DB-Tabelle gefetcht.

    Was meint ihr dazu?

    Gruß,

    Stef

    Hey,

    ich habe ein Problem.

    Und zwar habe ich Termine. Man kann diese erstellen, editieren und löschen. Alles funktioniert auch. Nur ich brauche den Array ($alleTermine), welcher alle aus der DB gezogenen Termindaten enthält, schon vor dem löschen und editieren. Somit wird nach dem Löschen erst beim 2ten Seitenaufruf dieser gelöschte Termin nicht mehr angezeigt.

    Eine Idee wäre Ajax aber ich möchte dies so lösen. Weiß nur nicht wie ich es machen soll. Hoffe ihr könnt mir hilfreiche Tipps geben.

    Der Code:

    Die Ausgabe der Termine erfolgt so:

    Gruß,

    Stef

    Hey,

    ich habe diesen Codeteil gesehen:

    PHP
    $extra="index.php";
    $host=$_SERVER['HTTP_HOST'];
    $uri=rtrim(dirname($_SERVER['PHP_SELF']),'/\\');
    header("location:http://$host$uri/$extra");

    und frage mich für was man sowas denn braucht? Hat dies Vorteile?

    Ich halte dies für überflüssig und auch gefährlich. Weil über $_SERVER['PHP_SELF'] können auch XSS-Attacken erfolgen.

    Man kann doch einfach den Pfad so eintragen:

    header("location:http://example.com/admin/join");

    Freue mich auf eure Meinung.

    Grüße,

    Stef