PHP - MySQL Abfrage und Ausgabe Problem
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
array
aufgetreten break
aufsteigende sortierung
ausgabe
benachrichtigung
bild
break
code
dank
date
durchlesen
ordern
problem
rolle
sortierung
spalten
statement
typ
url
zeitangabe
-
Hey,
ich arbeite an einer Ausgabe von Benachrichtigungen, wo alle deine und die deiner Freunde ausgegeben werden soll. Dazu habe ich folgenden Code:
<?php $return_friends = select_sql("SELECT friends_user_id1,friends_user_id2 FROM friends WHERE friends_user_id1 = '".$_SESSION['id']."' OR friends_user_id2 = '".$_SESSION['id']."'"); $return_notifications = select_sql("SELECT * FROM notifications ORDER BY notifications_date, notifications_time DESC"); if($return_friends=="!ERROR!") { $return_friends = array(); } $friends = array($_SESSION['id']); for($z=0;$z<count($return_friends);$z++) { if($return_friends[$z]['friends_user_id1'] == $_SESSION['id']) { array_push($friends, $return_friends[$z]['friends_user_id2']); } else { array_push($friends, $return_friends[$z]['friends_user_id1']); } } for($z1=0;$z1<count($return_notifications);$z1++) { if(in_array($return_notifications[$z1]['notifications_user_id'],$friends)) { $return_user = select_sql("SELECT * FROM user WHERE user_id = '".$return_notifications[$z1]['notifications_user_id']."' LIMIT 1"); switch($return_notifications[$z1]['notifications_type']) { // User beigetreten case ("acceded"): echo "<b>".$return_user[0]['user_fullname']."</b> ist Giga-Score beigetreten.<br />"; break; //Bild hinzugefügt case ("pic_added"): echo "<b>".$return_user[0]['user_fullname']."</b> hat ein Bild hinzugefügt!<br />"; break; // Falls der Typ nicht bekannt ist default: echo "Ein Fehler ist aufgetreten!<br />"; break; } } } ?>
Mein Problem ist jetzt, dass die neusten Benachrichtigungen oben stehen sollen. Das löst man ja normalerweise mit DESC, funktioniert aber leider nicht. Ich hoffe ihr könnt mir helfen.
Mit Freundlichen Grüßen
Michael -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
um nicht im finstern herumzutappen, würde die ausgabe von
show create table notifications
enorm weiterhelfen. -
Warum arbeitest du nicht statt mit "notifications_date, notifications_time" mit einem unix-timestamp? Das ist für Zeitangaben wesentlich performanter, die Sortierung stimmt und umwandeln in ein Datum und/oder in eine Uhrzeit ist auch sehr einfach.
-
Hey,
danke für die schnellen antworten. Ich werde mir das auf Manuel noch einmal mit Timestamp durchlesen. Anfangs wollte ich das auch mit Timestamp machen, habe es dann aber doch so gemacht.
Liebe Grüße
Michael
- - - edit - - -
Hey,
ich hätte mal noch eine Frage, wie würdet ihr das mit dem Timestamp machen? Ich finde auf Manual irgendwie nichts richtiges dazu, und versteh es auch nicht wirklich, also wie man die Ausgaben nach der Zeit sortiert ausgeben kann (Siehe erster Beitrag).
Danke
LG
Michael
Beitrag zuletzt geändert: 7.3.2013 19:10:47 von giga-score -
hi michael,
ob du jetzt mit DATE und TIME oder DATETIME oder TIMESTAMP arbeitest sollte ja eigentlich zur lösung deines problems keine rolle spielen.
da eine aufsteigende sortierung benutzt wird wenn man keine andere angibt solltest du dein statement vielleicht einfach so abändern:
"SELECT * FROM notifications ORDER BY notifications_date DESC, notifications_time DESC" -
hcms schrieb:
hi michael,
ob du jetzt mit DATE und TIME oder DATETIME oder TIMESTAMP arbeitest sollte ja eigentlich zur lösung deines problems keine rolle spielen.
da eine aufsteigende sortierung benutzt wird wenn man keine andere angibt solltest du dein statement vielleicht einfach so abändern:
"SELECT * FROM notifications ORDER BY notifications_date DESC, notifications_time DESC"
vielen Danke :D
Funktioniert Perfekt
Liebe Grüße
Michael -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage