Beiträge von Blickwinkelkanone

    Nein, das geht leider so nicht.

    So konnte ich es lösen


    SQL
    1. SELECT a.link, a.name, a.punkte FROM vs_punkte a WHERE a.punkte= (SELECT MAX(punkte) FROM vs_punkte b WHERE a.name = b.name) AND a.punte IS NOT NULL GROUP BY a.name

    Hallo,


    ich stehe etwas auf dem Schlauch (eventuell mal ne Pause machen).


    Ich habe eine Tabelle, in der für Mitglieder mehrere Einträge vorhanden sein können, mit Punkten. (Die Punkte werden pro Tag erfasst).

    Jetzt würde ich gerne den höchsten Wert mit dem dazugehörigen Datum ausgeben lassen.


    SQL
    1. SELECT link, MAX(punkte) AS punkte, name FROM vs_punkte WHERE punkte IS NOT NUll GROUP BY name


    Der Code gibt mir die höchste Punktzahl aus, aber nciht das richtige Datum un den richtigen Link dazu. Hier werden wohl die ersten Einträge genommen, die gefunden werden in der Tabelle. Habe die GROUP BY Anweisung auch mit den anderen Spalten erweitert, aber dann erscheinen zuviele Einträge.


    Wo sehe ich den Wald vor lauter Bäumen nicht?


    Danke sehr und eine angenehme Nacht.


    Grüße


    Blickwinkelkanone

    Hallo,


    ich lese per DOM HTML Seiten aus.

    Dabei kommt es immer mal wieder vor, dass Wörter auftauchen, die Sonderzeichen enthalten z.B.


    Dies kann DOM anscheinend nicht wirklich interpretieren und es kommen dann komische Werte in der Datenbank. Im Obigen Beispiel [♟]

    Will ich dies im Code anfangen, scheitert es daran, dass mein Editor damit nicht umgehen kann.

    pasted-from-clipboard.png


    Hat jemand eine Idee, wie ich das abfangen kann, oder so in der Datenbank abspeichern kann, dass es am Ende wieder korretk angezeigt wird (aus [â] wird [♟] ud umgekehrt)?


    Danke sehr

    Sehe das wie Basti1012


    Nutz konsequent PDO und parametisiere diese!

    Benutzt du

    PHP
    1. setAttribute(PDO::ATTR_EMULATE_PREPARES, false);


    Dadurch wird sichergestellt, dass die Anweisung und die Werte nicht von PHP analysiert werden, bevor sie an den MySQL-Server gesendet werden (sodass ein möglicher Angreifer keine Chance hat, schädliches SQL einzuschleusen).


    Muss es unbedingt $_GET['id'] sein?

    ich könnte z.B. eine Seite mit folgendem Code aufrufen


    PHP
    1. seite.php?id=-1 UNION SELECT email, vorname, passwort AS nachname FROM user

    Daraus wird dann (wenn du es nicht entsprechend vorher abfängst).

    SQL
    1. SELECT * FROM con WHERE id =-1 UNION SELECT email, vorname, passwort AS nachname FROM user

    NAtürlich könnte ich einfach ein paar IDs ausprobieren, bis ich z.B. die ID eines Admins habe.


    Das sind nur die Sachen, die ich auf die schnelle sehe.

    Ja, funktioniert soweit.


    Da die Daten noch nicht komplett sind (die ganzen 0 Werte für Uhrzeiten, die nicht in der Datenbank sind) müssen noch ins Array.

    Das mache ich aber im Laufe des TAges.

    Im Mament sieht es so aus.


    pasted-from-clipboard.png


    Nochmals vielen Dank für deine kompetnete Hilfe!


    Grüße


    Blickwinkelkanone

    Danke für die Erläuterung und Korrektur.

    Nun habe ich die Daten drin. Jetzt muss ich nur noch das Array erweitern mit 0 Werten für Wochentage und Uhrzeiten wo keine Dtaen gefunden werden.

    Aber das bekomme ich dann wieder alleine hin :)


    Danke sehr für deine Utnerstützung, geduld und Mühe


    Top!

    Irgendwie bin ich zu doof dafür und verstehe nicht, was genau du meinst.;(?(


    Werte sind im Array, so wie oben in der Tabelle beschrieben.

    JavaScript
    1. $array2d = $sql_zeiten->fetchAll();


    Dann füge ich es wie folgt hinzu.

    JavaScript
    1. const array2d = <?php echo json_encode($array2d); ?>;


    Was verstehe ich hier falsch von deinem Post.


    Anbei mal der komplette Quellcode mit Array Daten

    HI,


    ich habe am Wochenende noch etwas rumgetüftelt.


    Mit stellt sich hier die Frage, wie die Daten aus der Datenbank genua da rinkommen, mit dem Zusatz, dass der Wert 0 angezeigt werden soll, sollte kein Wert für den Zeitraum an dem Tag gefunden werden.


    Das werde ich ja wohl da machen, wo im Moment die Zufallszahlen generiert werden.


    JavaScript
    1. var y = Math.floor(Math.random() * (yrange.max - yrange.min + 1)) + yrange.min;

    Gibt es da eine elegante Version, das umzusetzen und nach Uhrzeit und Wochentag abzufragen?

    Hallo Sempervivum,


    vielen Dank.

    Da wäre ich so schnell nicht selber drauf gekommen.

    Eigentlich war die IDee dahiner wie folgt:


    y Achse Wochentage

    x Achse Uhrzeiten 00:00, 00:30, 01:00 etc


    Wird für ein Wochentag und Uhrzeit ein Wert gefunden, wird die ANzahl dort angegeben. Leifer die SQL Abfrage kein Wert für den Wochentag und Uhrzeit zurück, soll dieser mit 0 angegeben werden.


    So soll angezeigt werden, wann und zu welcher Uhrzeit ein bestimmter User wie oft online ist.

    Erstmal vielen Dank für die Antwort. Dann war ich zumindest schonmal auf dem richtigen Weg.


    Habe mir das jetzt angeguckt und muss leider sagen, dass ich nicht weiter komme.

    Von vorne am besten.


    hiermit selektiere ich die Daten.. Soweit so gut.

    PHP
    1. <?
    2. require_once ('../connect.php');
    3. $name = "Obamacare";
    4. $sql_zeiten = $db->prepare("SELECT FROM_UNIXTIME(FLOOR(UNIX_TIMESTAMP(time)/(1800))*1800) AS timekey, count(name) AS anzahl, tag FROM vs_online WHERE name = :name GROUP BY timekey ORDER BY WEEKDAY(timekey), EXTRACT(HOUR FROM timekey)");
    5. $sql_zeiten->execute(array('name'=> $name ));
    6. $array2d = $sql_zeiten->fetchAll();
    7. //print_r($array2d);
    8. ?>

    Da bekomme ich ein Array, mit den Daten, die in der Datenbank sind. Auch soweit korrekt.


    2020-07-13 01:00:00 1 Montag
    2020-06-22 09:30:00 1 Montag
    2020-06-22 10:30:00 1 Montag
    2020-06-22 13:00:00 1 Montag
    2020-06-29 14:00:00 2 Montag
    2020-06-29 15:30:00 1 Montag
    2020-06-22 23:00:00 1 Montag
    2020-06-30 10:30:00 2 Dienstag
    2020-06-16 11:00:00 1 Dienstag
    2020-06-23 14:30:00 1 Dienstag
    2020-06-23 15:30:00 1 Dienstag
    2020-06-23 17:00:00 1 Dienstag
    2020-07-21 22:00:00 1 Dienstag
    2020-06-24 00:00:00 1 Mittwoch
    2020-07-08 10:00:00 10 Mittwoch
    2020-06-17 11:00:00 1 Mittwoch
    2020-07-01 11:00:00 3 Mittwoch
    2020-07-01 14:30:00 2 Mittwoch
    2020-06-17 14:00:00 2 Mittwoch
    2020-06-24 15:00:00 1 Mittwoch
    2020-07-08 18:30:00 2 Mittwoch
    2020-06-25 00:30:00 1 Donnerstag
    2020-06-25 01:30:00 1 Donnerstag
    2020-06-25 01:00:00 1 Donnerstag
    2020-07-02 02:00:00 1 Donnerstag
    2020-06-18 08:30:00 1 Donnerstag
    2020-07-02 10:30:00 1 Donnerstag
    2020-07-02 11:00:00 1 Donnerstag
    2020-07-16 21:00:00 2 Donnerstag
    2020-07-16 22:30:00 1 Donnerstag
    2020-07-16 22:00:00 1 Donnerstag
    2020-07-16 23:00:00 2 Donnerstag
    2020-07-17 00:00:00 1 Freitag
    2020-07-17 01:30:00 1 Freitag
    2020-07-17 01:00:00 1 Freitag
    2020-06-26 09:00:00 1 Freitag
    2020-06-26 10:30:00 3 Freitag
    2020-06-26 11:30:00 2 Freitag
    2020-06-26 11:00:00 2 Freitag
    2020-06-26 12:30:00 4 Freitag
    2020-06-26 14:00:00 1 Freitag
    2020-07-10 17:00:00 2 Freitag
    2020-06-20 15:00:00 1 Samstag
    2020-06-21 09:30:00 1 Sonntag
    2020-06-28 11:30:00 1 Sonntag
    2020-06-28 12:00:00 1 Sonntag
    2020-06-28 14:30:00 2 Sonntag
    2020-05-31 22:30:00 2 Sonntag


    Das Array habe ich wie von dir beschrieben auch eingefügt.


    Nur die letzte Antwort von dir, verstehe ich nicht ganz.

    Wo muss diese eingefügt bzw was ersetzt diese?


    Danke für deine Hilfe.

    Hallo,


    ich versuche ein HEatmap Chart mit Daten aus der SQL Datenbank zu befüllen.


    Als Script benutze ich das ApexChart und habe es mir etwas angepasst. (nur Tetszwecke, was die Daten angeht)

    MIt JS kenne ich mich kaum aus, daher frage ich hier (erstmal mit den Grundsätzlichen Fragen).

    Wie kann ich die Daten aus meiner SQL Abfrage dort einbinden? Zumindest auf der Seite des Sripts gibt es da keinen support und Recherche im Netz ergab, dass man das mit JSON bewerkstelligen könnte. Leider ist JS nicht mein Gebiet.


    Danke sehr


    Grüße


    Blickwinkelkanone

    Danke für deine Antwort.

    Ich habe etwas rumprobiert und eine Lösung gefunden, die ich euch nicht vorenthalten will. Scheint mir genau das wiederzuegeben, was ich wollte.

    Das kann ich wiederum in meine HEadmap Chart einfügen. Das probiere ich aber dann heute Abend.

    SQL
    1. SELECT FROM_UNIXTIME(FLOOR(UNIX_TIMESTAMP(zeitpunkt)/(1800))*1800) AS timekey, count(name)
    2. FROM test
    3. GROUP BY timekey
    4. order by timekey;


    http://sqlfiddle.com/#!9/7e56fa/1

    Guten Morgen,


    ich bräuchte hier mal paar Denkanstöße.


    Folgendes habe ich vor.

    Wie bereits in einem anderen Post gefragt, würde ich gerne eine Heatmap Chart für online Zeiten erstellen. Die Heatmap habe ich bereits und funktioniert grundsätzlich.


    Ich versuche nun eine effiziente Strategie zu entwickeln, wie ich die Daten entsprechend aufbereite und in die Map eingebe.

    Ziel ist es, die Daten aufgeschlüsselt nach halber Stunde pro Wochentag, anzuzeigen.

    Montag:

    00:00 – 00:30 123

    00:30 – 01:00 567

    01:00 – 01:30 234

    Usw.

    Hier habe ich mir aber überlegt, nicht die absoluten Zahlen auszugeben, sondern die relativen Zahlen in Prozent.

    Datenselektion und Wochentag Ermittlung ist alles soweit kein Problem


    Daten liegen als DATETIME in einer SQL Datenbank (2020-07-15 07:28:00).

    Was mir ein bisschen Kopfzerbrechen bereitet, wie kann ich sinnvoll die DATETIME in 30 Minuten Intervalle zerlegen und dann entsprechend pro Wochentag prüfen.

    Hat jemand eine gute Idee, ich denk schon wieder zu kompliziert.


    Danke sehr