Beiträge von Stef

    Hey,

    vielen Dank cottton :)

    Ich bin wirklich froh, das dieses Forum so jemanden hat wie dich cottton !

    Ich habe mir gestern Abend nach dem Posten noch Gedanken darüber gemacht und stieß dann auf das Problem, wie ich wenn alle Ids in einer Zeile stehen, die Ausgabe erstellen für jeden User soll. Da merkte ich schon, dass meine vorige Idee doch nicht machbar und gut ist. Dein Vorschlag ist super. :)

    Grüße,

    Stef

    Hey zusammen,

    ich habe vor eine Nachrichtenfunction zu erstellen.

    Nun hat jeder User die Möglichkeit auch 1ne Nachricht an mehrere User zu senden.

    Es wird ein Formular erstellt und Checkboxen für jeden User. Die userId ist dann die Value der Checkbox.

    Die SenderId erhalte ich dann über die Session.

    Mein Tabellen Aufbau habe ich mir so gedacht:

    messageId (INT) senderId (INT) empfaengerId (INT)

    Nun gehen wir es mal durch:

    Wenn der User an einem anderen User eine Nachricht sendet sieht die Tabelle so aus. Stellt mich vor keine Probleme.

    messageId (INT) senderId (INT) empfaengerId (INT)
    1 1 2

    Wenn der User nun an mehrer User eine Nachricht sendet, habe ich geplant, dass die Tabelle so aussieht:

    messageId (INT) senderId (INT) empfaengerId (INT)
    1 1 2,3,4,5,6,7

    Nun stell ich mir die Frage wie ich denn die ID's in der Spalte empfaengerId weiterverarbeiten soll.

    Ich habe mir überlegt alle auszulesen und dann mittels explode am Komma zu trennen.

    Dann würde es wie folgt ausssehen:

    Nun dachte ich mir mittels einer for-schleife durch das Array $userId zu iterieren und dann jedem User die Nachricht zu senden.

    Beispiel:

    PHP
    for($i = 0; $i < count($userId); $i++){
        // $userId[$i] ist in jedem Durchgang ein String
        sendMessage($userId[$i]);
        
    }

    $userId[$i] ist dann die Zahl und es wird für so viele Keys im Array die Function sendMessage aufgerufen. Das heißt für jeden User an dem die Nachricht gesendet wurde.

    Wird es dann nicht bei einer großer Auswahl zu langsam?

    Habt ihr Verbesserungsvorschläge?

    Kann man es weiter optimieren?

    Freue mich sehr auf eure Antworten.

    Grüße,

    Stef

    Okay. Danke für die Demonstration und für den Info des fehlenden Meta-Tags.

    Habe eben mal geschaut. Du hast recht. Diesen meta-tag habe ich nicht verwendet. Ich werde es in dem nächsten Release des Interfaces miteinbauen.

    Hey,

    Vielen Dank für deine Meinung :)

    Javascript braucht man hier, in der aktuellen Version des Interfaces, lediglich für das responsive Menü.

    Zitat

    vielleicht sollte statt nur 'Zurück' auch in Unterebenen eine 'Home' angeboten werden

    Ist eine gute Idee. Sonst muss man, je nachdem, erst auf 3 zurücks klicken um auf die Home-Page zu kommen.

    Zitat

    In den Unterpunkten im Adminbereich sind die Überschriften zu 'groß'. Dadurch scrollt die Seite horizontal, wenn die Displaybreite zu klein wird (zB Handy 320px) - eigentlich ein NoNo!

    Okay. Springt auf der Home-Seite und bei den anderen Seiten wo ich diese Darstellung (halb, halb) für größere Größen gewählt habe die rechte Seite nicht runter? Wenn ich es mit meinem PC teste dann springt der rechte Teil nach Unten damit alles vertikal ist und nicht horizontal.

    Muss ich mir aufjedenfall nochmal anschauen. Hast du mit dem Handy es getestet?

    Grüße,

    Stef

    Guten Morgen,

    Okay. Ja dies ist bewusst gemacht. Denn wenn eine Person einen großen Bildschrim hat, passt es. Dafür habe ich den zwei divs die Klasse col-sm-6 gegeben. Darüberhinaus für extra kleine Geräte habe ich den beiden divs auch col-12 gegeben, damit beide div-blöcke bei kleiner werdendem Fenster untereinander dargestellt werden.

    Dies meinte ich in meinem vorigen Beitrag mit: "An manchen Stellen etwas unschön bei manchen Größen".

    Dies kann ich natürlich noch optimieren.

    Danke für deine Meinung :)

    Ich finde es schade, dass nur ein User seine Meinung zu meinem Projekt sagt.
    ich möchte dieses Interface weiter ausbauen und verbessern. Dafür brauche ich eure Meinung

    Kommt schon, ich beis schon nicht ;)

    Sempervivum : Danke für den Link. Man muss eben nach dem richtigen suchen. Ich suche meistens nur mit deutschen Suchbegriffen. Die Klasse pull-right hat aber auch nicht funktioniert. Habe jetzt 10 Minuten rumgetestet. Habe eine andere Lösung gefunden.

    Sailor :

    Habe deinen Codeschnipsel trotzdem getestet und das ist so wie ich es mit meiner Lösung hinbekommen habe. Klasse :)

    Danke :)

    Meine Lösung ist folgende:

    Ich gebe dem <div>-block in dem alles drin ist die class col-cm-6. Das heißt innerhalb des divs sind es ja dann trotzdem 12 Reihen.

    Dann bin ich hingegangen und habe dem Label die class col-11 und dem div indem die checkbox drin ist noch die class mr-3 gegeben. Das heißt das Für das Label 11 Reihen verwendet werden sollen. Dann bleibt eine Reihe übrig. Und diese 1 Reihe bleibt dann für die Checkbox übrig.

    Eigentlich ganz einfaches nachdenken. :D

    So sieht es jetzt aus:

    PHP
    echo "<li class='list-group-item border-blue bg-primary text-dark font-weight-bold'>";
         echo "<label class='col-11'>Termin ". $key . "</label>";
              echo "<div class='custom-control'>";
                      echo "<input type='checkbox' name='id[]' value='" . htmlspecialchars($value['terminId']) . "'>";
              echo "</div>";
    echo "</li>";

    Danke für die Hilfe :)

    Danke für deine Antwort. :)

    Zitat


    Ist zwar nicht vollständig responsive, aber darüber kann ich bei einem PHP-Projekt hinwegsehen.

    Kannst du mir mal bitte zeigen welche Stellen deiner Ansicht nach nicht vollständig responsive sind?

    Es ist nicht nur ein PHP-Projekt. Dieses Projekt beinhaltet alles. Ich habe ja Bootstrap genommen für das designen. Und als ich local alles getestet habe, war alles auch responsive. An manchen Stellen etwas unschön bei manchen Größen, aber dies kann ich dann wenn ich deine Antwort habe auch verbessern.

    Bin immer froh wenn Verbesserungsvorschläge kommen. Also nur her damit.

    Zitat


    Bekommen wir Einsicht in den Code und das Datenbankschema? Das wäre nämlich deutlich interessanter.

    Vorerst ist dies nicht gedacht. Mein Gedanke ist es, dies als Download, auf meiner Seite einzurichten. Aber ich bin mir noch etwas unschlüssig.

    Hey,

    es geht um dieses Projekt von mir: Projekt Adminpanel

    Die Seiten, wo ich es mit den Checkboxen haben möchte, sind im Adminpanel die diary.php und messages.php

    Habe wirklich schon echt viel versucht. Aber ohne Erfolg.

    Ich habe den Aufbau etwas geändert:

    PHP
    echo "<li class='list-group-item border-blue bg-primary text-dark font-weight-bold'>";
         echo "<label>Termin ". $key . "</label>";
                 echo "<div class='custom-control'>";
                       echo "<input type='checkbox' name='id[]' value='" . htmlspecialchars($value['terminId']) . "'>";
                  echo "</div>";
    echo "</li>";

    Hey zusammen,

    ich saß die letzten Wochen an meinem neuen Projekt und freue mich es nun präsentieren zu können.

    Es handelt sich bei meinem Projekt um ein Panel wo man sich anmelden kann. Die User, welche auf diesen Panel Zugriff haben, können nur von den Admins festgelegt werden.

    Jeder User kommt nach dem Login auf die Startseite wo die Nachrichten und Termine angezeigt werden. Ebenso hat jeder User sein eigenes Profil und kann sein Username, Password und Profilbild ändern.

    Admins können darüberhinaus in ihrem Adminpanel User und Termine erstellen, editieren und löschen und Nachrichten nur erstellen und löschen.

    Ich bitte darum, dass niemand den Usernamen sowie das Passwort der folgenden 2 Testuser ändert und diese nicht löscht! Wenn ihr diese ändern oder löschen wollt dann bitte wieder zurückändern und hinzufügen, damit jeder Zugriff hat! Vielen Dank :)

    Seite: http://stef97.bplaced.net/

    Ihr könnt euch mit folgenden Daten anmelden:

    1. Admin

    Username: testadmin

    Passwort: 12345

    2. User

    Username: testuser

    Passwort: 1234

    Falls ihr euch mit den Daten nicht einloggen könnt schreibt mir bitte eine PN.

    Ich freue mich auf euer Feedback, eure Verbesserungsvorschläge und konstruktive Kritik.

    Grüße,

    Stef

    Hey,

    die Seite sieht super aus. Top. Sehr gut gemacht.

    Ein Fehler liegt, welcher mir aufgefallen ist, noch vor. Es ist ein UTF-8 Problem auf der Geschenkideenseite. Wenn man auf eine Geschenkidee klickt und sich das Modal öffnet dann kommen lauter ?.

    Hast du den Testdaten fürs Login ?

    Grüße,

    Stef

    Hey,

    ich versuche grad die Checkbox nach ganz rechts außen zu bekommen.

    Ich verwende Bootstrap. Funktioniert leider nicht. Auch nicht die Bootstrap-Klasse .text-center.

    Die Checkbox bleibt immer links. Oder wenn ich ein label erstelle zwar rechts, aber neben dem Wort und nicht so wie ich es haben möchte, nach ganz rechts außen.

    Das ist mein PHP-Teil dazu:

    PHP
    echo "<div class='mb-3'>";
             echo "<ul class='list-group'>";
                 echo "<li class='list-group-item'>Test <input type='checkbox' class='deleteCheckbox' name='messageId[]'></li>";
                 echo "<li class='list-group-item'>Test</li>";
                 echo "<li class='list-group-item'>Test</li>";
                 echo "<li class='list-group-item'>Test</li>";
              echo "</ul>"; 
    echo "</div>";

    Hoffe ihr könnt mir dabei helfen.

    Grüße,

    Stef

    Ich habe mir eben nochmals den Code angeschaut. Und siehe da, ich habe vergessen beim Update der Spalte die spalte createdAt zu updaten. Kein Wunder warum es nicht funktioniert.

    Danke für deine Mühe und gute Hilfe. :)

    Ok. Ich achte nie auf die Bytes. Sollte man auf die Bytes achten?

    Ja die Unterschiede habe ich mir auch angeschaut währenddessen. Habe Current Timestamp nur genommen, da trotz abspeichern des Datums von ausen, immernoch 0000-00-00 gespeichert wurde.

    Zitat

    0000-00-00 wurde gespeichert, weil es keine DEFAULT value gab. Dann ist DATE "leer" 0000-00-00. DATETIME wäre "0000-00-00 00:00:00".

    Okay. Wenn ich von ausen das Datum, im gleichen Format, in die DB-Tabelle eintragen lasse dann wird auch, wie bereits oben erwähnt, 0000-00-00 in dieSpalte createdAt gespeichert. Alles was ich versucht habe ging nicht. Selbst als ich dem Feld als Standardwert null gegeben habe. Da wurde nichts in die Spalte eingetragen.

    Darum habe ich auch als Notlösung Varchar genommen. Wenn ich weis warum typ date nicht geht dann ändere ich es natürlich.

    Warum ist das so?

    Hey,

    okay. Danke der Info und vielen Dank . Wieder was dazu gelernt.

    Ich möchte damit lediglich nur alle gelöschten DB-Einträge mit dem aktuellen Datum wieder herstellen.

    Ich habe jetzt isDeleted und deletedAt als Spalte zu meinem beiden DB-Tabellen (termine, messages) hinzugefügt.

    Die Spalte isDeleted (INT) bekommt als Standard-Wert die 0. Wenn ein DB-Eintrag gelöscht wird wird dieser Wert auf 1 geupdated und in deletedAt wird das aktuelle Datum eingefügt. Bei der Überprüfung, welche gelöschten Einträge man wiederherstellen kann, prüfe ich auf das aktuelle Datum. Somit werden nur alle Einträge wiederhergestellt die am aktuellen Datum gelöscht wurden. Alle anderen werden nicht mehr wiederhergestellt. Sonst sind plötzlich gelöschte Nachrichten von vor über paar Monate noch dabei ;)

    Ich habe mal noch ne Frage.

    Ich habe zu aller erst für die Spalte deletedAt den Typ date genommen da dieser ja folgendes Format produziert : YYYY-MM-DD. Nun wenn ich als Default Current Timestamp hinzufüge kommt ein Error wegen falschem Default-Wert. Dann habe ich die gelassen. Habe dann einfach mal paar neue Einträge erstellt und musste sehen, dass in die Spalte deletedAt immer nur 0000-00-00 gespeichert wird. Habe daher die Spalte zum Typ Varchar geändert und das Datum dann von außen hinzugefügt.

    Warum wird in der Spalte deletedAt, Typ date, nicht das aktuelle Datum gespeichert sondern nur 0000-00-00?

    Gruß,

    Stef

    Hey,

    hast du schon die Pfade überprüft ob diese richtig sind?

    Wie sieht deine Ordnerstruktur zu den Bilder aus?

    Damit sich die Bilder nicht wiederholen:

    https://www.w3schools.com/cssref/pr_background-repeat.asp

    Zitat


    dann muss ich ihnen noch die Position bottom center, top right und top left geben

    Wenn dies der Fall ist müsstest du auf die Bilder entweder position: relative oder position:absolute anwenden.

    Grüße,

    Stef

    Hey,

    ich habe eine Datenbank mit mehreren Tabellen. Nun kann der Admin dort auch Datenbankeinträge in seinem Bereich löschen.

    Nun kann es vorkommen, das der Admin versehentlich viele Einträge löscht obwohl er es nicht wollte.

    Jetzt möchte ich dem Admin ne Funktion bieten welche wieder alles herstellt.

    Nun ist meine Frage wie sowas denn machbar ist?

    Meine Idee ist wie folgt:

    Ich erstelle noch eine weitere Spalte in jeder Datenbanktabelle. Der Standardwert ist 0. Nun wenn er löschen klickt wird dieser auf 1 gesetzt.

    Bei dem Selektieren der Daten aus der DB wird dann dieser Wert zur Abfrage verwendet.

    Auf Dauer wird es dann aber zu viel ?

    Habt ihr noch andere Vorschläge? Wie findet ihr meine Idee?

    Grüße,

    Stef