|
You last visited: Today at 03:48
Advertisement
PHP MYSQL only first entry from user
Discussion on PHP MYSQL only first entry from user within the Web Development forum part of the Coders Den category.
10/15/2013, 21:15
|
#1
|
elite*gold: 39
Join Date: Feb 2013
Posts: 1,834
Received Thanks: 83
|
PHP MYSQL only first entry from user
Code:
$founduserid = array();
$getmess = mysql_query("SELECT * FROM bg_message WHERE touser = '".$userdaten["id"]."' && userid NOT IN (".implode(',', $founduserid).") ORDER by id DESC ");
while($werte = mysql_fetch_array($getmess))
{
$founduserid[] = $werte["userid"];
}
ALso ich habe folgendes Problem. Ich habe in einer Datenbank viele einträge von verschiedenen Usern und möchte quasi von jedem User nur den neusten haben.
Wie kann ich das allerdings umsetzen? Wie ich es ca meine zeigt mein Beispiel oben, allerdings geht das ja nicht ^^
|
|
|
10/15/2013, 21:47
|
#2
|
elite*gold: 25
Join Date: Apr 2010
Posts: 1,019
Received Thanks: 331
|
Oh Glaskuugel, helf uns doch bitte. Oh - scheint ne Störung zu haben.
Man muss es glaub ich hier für jeden einzeln wiederholen, können wir hellsehen? Wie wäre es mit ner Datenbankstruktur?
|
|
|
10/15/2013, 22:11
|
#3
|
elite*gold: 0
Join Date: Jul 2008
Posts: 1,826
Received Thanks: 226
|
von jeden nur den neuesten : order by creation_date desc
dann von jeden nutzer nur einen: group by user_id
Ohne mehr Info's können wir dir allerdings nicht mehr helfen, wie Synatex schon sagt
|
|
|
10/15/2013, 22:48
|
#4
|
elite*gold: 39
Join Date: Feb 2013
Posts: 1,834
Received Thanks: 83
|
In meinem Beispiel sind alle benötigten Informationen die Ihr braucht.
Es gibt touser, welche die eigene User ist ist und es gibt userid, dies ist die id vom anderen user.
Mir ist klar das ich mit ORDER by id DESC die neusten bekomme nun soller aber auch schauen das er nur 1 mal userid = 3 zb ausgibt, auch wenn es von ihm 4 einträge gibt.
|
|
|
10/15/2013, 23:05
|
#5
|
elite*gold: 2932
Join Date: Oct 2009
Posts: 6,966
Received Thanks: 1,097
|
versuchs mal damit
|
|
|
10/15/2013, 23:13
|
#6
|
elite*gold: 0
Join Date: Jan 2009
Posts: 731
Received Thanks: 233
|
meinst du vielleicht "group by userid"
|
|
|
10/16/2013, 09:04
|
#7
|
elite*gold: 0
Join Date: Jul 2008
Posts: 1,826
Received Thanks: 226
|
Quote:
Originally Posted by DJRedMax
In meinem Beispiel sind alle benötigten Informationen die Ihr braucht.
Es gibt touser, welche die eigene User ist ist und es gibt userid, dies ist die id vom anderen user.
Mir ist klar das ich mit ORDER by id DESC die neusten bekomme nun soller aber auch schauen das er nur 1 mal userid = 3 zb ausgibt, auch wenn es von ihm 4 einträge gibt.
|
Wenn es dir so klar ist wieso frägst du explizit danach?
Quote:
|
jedem User nur den neusten haben.
|
Desweiteren hast du mit Sicherheit in meinem Post den zweiten Teil überlesen, du brauchst noch ein "GROUP BY userid"...
Dadurch wird nun ein Eintrag der User-Id angezeigt
|
|
|
10/16/2013, 11:39
|
#8
|
elite*gold: 39
Join Date: Feb 2013
Posts: 1,834
Received Thanks: 83
|
Quote:
Originally Posted by dealaking
Wenn es dir so klar ist wieso frägst du explizit danach?
Desweiteren hast du mit Sicherheit in meinem Post den zweiten Teil überlesen, du brauchst noch ein "GROUP BY userid"...
Dadurch wird nun ein Eintrag der User-Id angezeigt
|
Ich habe es schon mit GROUP BY userid versucht, allerdings stimmt dann die reihenfolge wieder nicht wie sie angeordnet werden.
Ich hab das ganze jetzt etwas sehr unsauber gelöst.
PHP Code:
$founduserid = array();
$getmess = mysql_query("SELECT * FROM bg_message WHERE touser = '".$userdaten["id"]."' && userid ORDER by id DESC");
while($werte = mysql_fetch_array($getmess))
{
if(!in_array($werte["userid"], $founduserid))
{
$founduserid[] = $werte["userid"];
}
}
|
|
|
10/16/2013, 11:48
|
#9
|
elite*gold: 0
Join Date: Jul 2008
Posts: 1,826
Received Thanks: 226
|
Okay, des sollte allerdings nicht sein, versuch bitte mal dieses SQL Statement:
Code:
$getmess = mysql_query("SELECT * FROM bg_message WHERE touser = '".$userdaten["id"]."' GROUP BY userid ORDER by id DESC");
Mir ist aufgefallen du sortierst nirgends nach deinem Erstellungsdatum oder so, wird dies überhaupt gespeichert? Wenn ja bitte ORDER BY "erstellungsdatum" DESC;
|
|
|
10/16/2013, 11:55
|
#10
|
elite*gold: 39
Join Date: Feb 2013
Posts: 1,834
Received Thanks: 83
|
ORDER BY id DESC sortiert nach erstellungs datum
|
|
|
10/16/2013, 12:26
|
#11
|
elite*gold: 0
Join Date: Feb 2010
Posts: 7,220
Received Thanks: 6,758
|
Wenn 'id' nicht zufällig vom Typ 'datetime' oder 'timestamp' ist eher weniger, sondern einfach nach der ID. Hast du es denn nun mit den etlichen Tipps hier hinbekommen?
|
|
|
10/16/2013, 12:39
|
#12
|
elite*gold: 39
Join Date: Feb 2013
Posts: 1,834
Received Thanks: 83
|
Quote:
Originally Posted by Hühnchenkopf
Wenn 'id' nicht zufällig vom Typ 'datetime' oder 'timestamp' ist eher weniger, sondern einfach nach der ID. Hast du es denn nun mit den etlichen Tipps hier hinbekommen?
|
dadurch das ID immer einen höheren wert hat pro eintrag kann man es zum sortieren perfekt verwenden, neuster eintrag hat die höchste id, hingegen wenn ich es per time sortiere und 3 einträgein der selben sekunde bekomme unterscheiden die sich nicht, die ids sind aber anders
Naja ich habs daweil mit meiner methode gemacht.
|
|
|
10/16/2013, 12:42
|
#13
|
elite*gold: 0
Join Date: Jan 2009
Posts: 731
Received Thanks: 233
|
soblad du mal paar tausend user in der DB hast, kannst das aber vergessen das du überalle User mal drüber gehst und guckst via PHP
|
|
|
10/16/2013, 14:17
|
#14
|
elite*gold: 39
Join Date: Feb 2013
Posts: 1,834
Received Thanks: 83
|
Quote:
Originally Posted by KoKsPfLaNzE
soblad du mal paar tausend user in der DB hast, kannst das aber vergessen das du überalle User mal drüber gehst und guckst via PHP
|
Naja Limit 25 klärt das dann.
Nur was soll ich denn sonst machen wenn GROUP BY userid dazu führt das garkeines mehr angezeigt wird, oder die reihenfolge nicht stimmt.
|
|
|
10/16/2013, 14:22
|
#15
|
elite*gold: 25
Join Date: Apr 2010
Posts: 1,019
Received Thanks: 331
|
... nach zeit und user id sortieren?.. das die die gleichen sind ist sehr sehr unwahrscheinlich
|
|
|
 |
|
Similar Threads
|
Mysql User Problem
03/05/2013 - Metin2 Private Server - 2 Replies
Hello,
ich habe ein mysql user problem doch ich weiß nicht wie ich es den griff gekomme
in filezilla stehen alle dateien datenbanken ( account,common, etc da
doch in navicat nicht bitte um schnelle hilfe und ja alle sachen haben die dateiberechtigung 777).
|
[MYSQL]User Anlegen
01/26/2013 - Metin2 Private Server - 5 Replies
Da ich lange wieder mit User Anlegen && nicht gearbeitet habe
Leider hab ich es Verlernt jetzt wieder nen Mysql user anzulegen
da ich den fehler imma Kriege Beim Starten
Real Server
Log Offmysql_real_connect: Access denied for user 'mt2'@'localhost' (using password: YES)
failed, retrying in 5 seconds
Der es mir per TV macht kriegt mein Rest e*gold
|
[SUCHE] 'user'@ mysql
04/08/2012 - Metin2 Private Server - 3 Replies
Hey.
Habe ausversehen den Inhalt der Tabelle 'user' aus der Datenbank 'mysql' geändert, und suche jetzt den Standardinhalt. Ich nehme Version 6.1 der Serverfiles von Daroo 1678.
Wäre dankbar wenn jemand ein Bild hochladen könnte oder den Inhalt irgendwie anders schnell hochlädt (:
Danke (:
|
Mysql neuen user + EInschränkung?
01/27/2011 - Metin2 Private Server - 6 Replies
Hi ich wollte mich mal erkdundigen ob einer von euch weiß wie es möglich ist
1. einen neuen user für navicat zu machen ( also nicht root sondern z.b.: Lee ) dem sein Wunsch Pw zugeben
und dem User dann nur bestimmten DB tabellen anzeigen zu können?
also das der User Lee nur Player und backup tabelle sehen kann under der user Root alles :D
mfg
|
[MySQL] Neuen User anlegen // * All
05/17/2010 - Metin2 PServer Guides & Strategies - 9 Replies
Vorwort
Ich habe die Suchfunktion benutzt!
Screen:
http://www.abload.de/img/suchergebnisuuyd.png
Tutorial
Ihr startet Navicat
|
All times are GMT +1. The time now is 03:49.
|
|