PSD-Tutorials.de
Forum für Design, Fotografie & Bildbearbeitung
Tutkit
Agentur
Hilfe
Kontakt
Start
Forum
Aktuelles
Besonderer Inhalt
Foren durchsuchen
Tutorials
News
Anmelden
Kostenlos registrieren
Aktuelles
Suche
Suche
Nur Titel durchsuchen
Von:
Menü
Anmelden
Kostenlos registrieren
App installieren
Installieren
JavaScript ist deaktiviert. Für eine bessere Darstellung aktiviere bitte JavaScript in deinem Browser, bevor du fortfährst.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen
alternativen Browser
verwenden.
Antworten auf deine Fragen:
Neues Thema erstellen
Start
Forum
Sonstiges
Webdesign, Webentwicklung & Programmierung
PHP, Javascript, jQuery, Ajax, nodeJS, MySQL...
[PHP & mysql] aktuellesten Eintrag hervorheben
Beitrag
<blockquote data-quote="Curanai" data-source="post: 2702754" data-attributes="member: 534923"><p>Hi, ist das noch akut? Zunächst einmal ein paar Schwächen in Deinem Query:</p><p>- SELECT * bitte nicht verwenden; Felder direkt eintragen (Performance!)</p><p>- "ticks" setzen bei allem, was Bezeichner in Spalten oder Table-Namen sind; bspw. "FROM `whiteboard_eintraege` (Performance!)</p><p>- time() hat keinen Übergabeparameter; und eine Stunde in PHP entspricht 60 * 60 (3600); aber "time(6000)" ist falsch</p><p>- ORDER BY `datum` würde mir womöglich noch ASC oder DESC wichtig sein (Du hast per se "ASC" drin, da keine Angabe)</p><p></p><p>Jetzt machen wir es etwas schwieriger, da ich das gerade aus dem Kopf runterpinne und nicht weiß, ob das stimmt - bitte nicht hauen!</p><p></p><p>[code]$timestamp = strtotime($row ['time']);[/code]</p><p>... müsste Dir eigentlich (!!) aus Deinem MySQL-Timestamp-Format einen typischen time()-Timestamp in PHP machen. Oder ich bin gerade auf dem Holzweg (dann einfach mal bitte einen Eintrag aus der Tbl zeigen). <img src="/styles/default/xenforo/smilies/zwinker.gif" class="smilie" loading="lazy" alt=";)" title="Wink ;)" data-shortname=";)" /></p><p></p><p>Sollte das ein 10-stelliger Integer Wert sein (ich setze in meiner DB zu gern einen echte INT als Typ für sowas, weniger Gefrickel in der Folge), so machen wir es so ...</p><p>[code]$timestamp = (int) $row['time']; // castet den erhaltenen Wert zu einem Integer; wenn Zeichenkette, kommt 0 raus[/code]</p><p></p><p>Soooo ... und dann könntest Du eigentlich Deine Flags setzen:</p><p>[code] if (($timestamp + 3600) >= time()){</p><p> // bekommt Marker für jüngste Änderung ...</p><p>} else {</p><p> // schon länger her ...</p><p>}[/code]</p><p>Ich mache es also genau anders herum: Letztes Änderungsdatum + Zeitfenster ist dann größer als der aktuelle Zeitstempel mittels time(), wenn er eben in der letzten Stunde modifiziert wurde. Anstatt ständig time() zu verwenden, schreibst Du das vor Deiner Schleife einfach in eine Variable (damit es nur 1x abgerufen wird).</p><p></p><p>Joar, damit müsstest Du eigentlich weiterkommen.</p><p></p><p>Viel Erfolg.</p></blockquote><p></p>
[QUOTE="Curanai, post: 2702754, member: 534923"] Hi, ist das noch akut? Zunächst einmal ein paar Schwächen in Deinem Query: - SELECT * bitte nicht verwenden; Felder direkt eintragen (Performance!) - "ticks" setzen bei allem, was Bezeichner in Spalten oder Table-Namen sind; bspw. "FROM `whiteboard_eintraege` (Performance!) - time() hat keinen Übergabeparameter; und eine Stunde in PHP entspricht 60 * 60 (3600); aber "time(6000)" ist falsch - ORDER BY `datum` würde mir womöglich noch ASC oder DESC wichtig sein (Du hast per se "ASC" drin, da keine Angabe) Jetzt machen wir es etwas schwieriger, da ich das gerade aus dem Kopf runterpinne und nicht weiß, ob das stimmt - bitte nicht hauen! [code]$timestamp = strtotime($row ['time']);[/code] ... müsste Dir eigentlich (!!) aus Deinem MySQL-Timestamp-Format einen typischen time()-Timestamp in PHP machen. Oder ich bin gerade auf dem Holzweg (dann einfach mal bitte einen Eintrag aus der Tbl zeigen). ;) Sollte das ein 10-stelliger Integer Wert sein (ich setze in meiner DB zu gern einen echte INT als Typ für sowas, weniger Gefrickel in der Folge), so machen wir es so ... [code]$timestamp = (int) $row['time']; // castet den erhaltenen Wert zu einem Integer; wenn Zeichenkette, kommt 0 raus[/code] Soooo ... und dann könntest Du eigentlich Deine Flags setzen: [code] if (($timestamp + 3600) >= time()){ // bekommt Marker für jüngste Änderung ... } else { // schon länger her ... }[/code] Ich mache es also genau anders herum: Letztes Änderungsdatum + Zeitfenster ist dann größer als der aktuelle Zeitstempel mittels time(), wenn er eben in der letzten Stunde modifiziert wurde. Anstatt ständig time() zu verwenden, schreibst Du das vor Deiner Schleife einfach in eine Variable (damit es nur 1x abgerufen wird). Joar, damit müsstest Du eigentlich weiterkommen. Viel Erfolg. [/QUOTE]
Bilder bitte
hier hochladen
und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Zitate einfügen…
Authentifizierung
Wenn ▲ = 7, ▼ = 3, ◇ = 2 und die Summe von ▲ und ▼ durch ◇ geteilt wird, was ist das Ergebnis?
Antworten
Start
Forum
Sonstiges
Webdesign, Webentwicklung & Programmierung
PHP, Javascript, jQuery, Ajax, nodeJS, MySQL...
[PHP & mysql] aktuellesten Eintrag hervorheben
Oben