SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)
Hilfe Community Kalender Heutige Beiträge Suchen

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 03.11.2009, 19:23:39
Lazy Lazy ist offline
Anfänger
 
Registriert seit: Mar 2009
Alter: 39
Beiträge: 13
[SQL] Wenn zwei gleich -> nur eins anzeigen

Hallo Leute,

auf einer PHP-Seite will ich aus einer Tabelle (news) den Inhalt einer Spalte (keywords) ausgeben lassen. Nun macht es keinen Sinn mehrere identische Keywords gleichzeitig in der Liste zu haben, wenn verschiedene News-Einträge dieselben Keywords haben.

Wie kann ich es im SQL-Code bewerkstelligen, dass von vielen gleichen Keywords nur eins und zwar das neueste (ORDER BY id) anzegzeigt wird und nicht alle? Gibt's da 'ne Möglichkeit (vermutlich mit WHERE)?

Hier noch mein Code bis jetzt:
PHP-Code:
SELECT idnews_keywords FROM news ORDER BY id DESC 
Danke im Voraus
Mit Zitat antworten
  #2  
Alt 03.11.2009, 19:46:20
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: [SQL] Wenn zwei gleich -> nur eins anzeigen

Was hältst Du von Handbüchern?

Ach, habe vergessen, Du weißt nicht wonach Du suchen sollst. Hab's für Dich übernommen. Schau mal hier:

Zitat:
Die Optionen ALL, DISTINCT und DISTINCTROW geben an, ob doppelte Datensätze zurückgegeben werden sollen. Wird keine dieser Optionen angegeben, dann wird ALL als Vorgabe vorausgesetzt (d. h., alle passenden Datensätze werden zurückgegeben). DISTINCT und DISTINCTROW sind Synonyme; sie legen fest, dass doppelte Datensätze aus der Ergebnismenge entfernt werden.
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #3  
Alt 03.11.2009, 20:18:07
Lazy Lazy ist offline
Anfänger
 
Registriert seit: Mar 2009
Alter: 39
Beiträge: 13
AW: [SQL] Wenn zwei gleich -> nur eins anzeigen

Zitat:
Zitat von vt1816 Beitrag anzeigen
Was hältst Du von Handbüchern?
Nicht viel, da ich dort kaum, eher nie, die Lösung für meine spezifischen Probleme finde. Zweitens kommt erschwerend hinzu, dass in deinem Link keinerlei Beispiele für DISTINCT angegeben werden. Zu wissen, was es macht, ist ja schön und gut und ich danke dir vorbehaltlos für deine Antwort, aber jetzt weiß ich immer noch nicht, und das war der Grund für meinen Post, wie ich es einsetze, sodass es mir weiterhilft.
Ich verlange ja nicht dröge nach einem fertigen Script oder sowas, sondern nach einem sachdienlichen und spezifischen Beispiel für mein Problem, damit ich damit arbeiten und daraus lernen, mich weiterbilden kann.

Habe jetzt woanders ein Beispiel gefunden was auch funktioniert, allerdings nur, wenn ich die ID nicht mit auslesen lasse. Doch die brauche ich zwingend für den Hyperlink...

Gibt's da 'ne Lösung, die id normal ausgeben zu lassen und nur die keywords "distinctly" ?

Geändert von Lazy (03.11.2009 um 20:43:38 Uhr)
Mit Zitat antworten
  #4  
Alt 03.11.2009, 23:36:20
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: [SQL] Wenn zwei gleich -> nur eins anzeigen

ich verstehe leider nicht genau was du willst. gib mal beispieldatensätze und für diese eine ausgabe wie du sie willst und wie sie bisher mit welchem statement aussieht.
Mit Zitat antworten
  #5  
Alt 04.11.2009, 17:38:53
Lazy Lazy ist offline
Anfänger
 
Registriert seit: Mar 2009
Alter: 39
Beiträge: 13
AW: [SQL] Wenn zwei gleich -> nur eins anzeigen

Zitat:
Zitat von feuervogel Beitrag anzeigen
ich verstehe leider nicht genau was du willst. gib mal beispieldatensätze und für diese eine ausgabe wie du sie willst und wie sie bisher mit welchem statement aussieht.
Also eine Artikel-Tabelle von mir hat eine ID- und eine keywords-Spalte. Die IDs werden dank auto_increment immer weiter hochgezählt, d.h. jeder Artikel hat eine eigene ID.
Hat aber ein Artikel dasselbe keyword wie ein anderer, hätte ich gerne nur einen derer ausgegeben (DISTINCT).

So sieht mein Statement z.Z. aus...

PHP-Code:
SELECT DISTINCT idnews_keywords FROM news ORDER BY id DESC 
...und so wird's, vereinfacht dargestellt, auf der Seite ausgegeben:

- news_keyword A (id=5)
- news_keyword B (id=4)
- news_keyword C (id=3)
- news_keyword C (id=2)
- news_keyword D (id=1)

Lasse ich im Statement die Abfrage der ID weg, haut's hin, news_keyword C wird nur einmal, wie gewollt, angezeigt.

PHP-Code:
SELECT DISTINCT news_keywords FROM news 
Ich benötige aber die Abfrage der ID unbedingt zusätzlich zwecks Verlinkung...

Gibt's da einen Trick?
Mit Zitat antworten
  #6  
Alt 06.11.2009, 08:49:17
Benutzerbild von Indyk
Indyk Indyk ist offline
Member
 
Registriert seit: Aug 2006
Ort: Lübeck
Alter: 38
Beiträge: 900
Indyk eine Nachricht über ICQ schicken
AW: [SQL] Wenn zwei gleich -> nur eins anzeigen

Hallo Lazy,

ich persönlich habe mit DISTINCT noch nicht gearbeitet da ich GROUP BY verwende.
Du möchtest also Alle Keywords und eine beliebige ID dazu? Ich würde das so machen:

Code:
SELECT
   keyword,
   id
FROM 
   tabelle
GROUP BY
  keyword
ungetestet
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Turnierkalender in Deutsch anzeigen ralohl2001 PHP Grundlagen 2 01.09.2007 19:52:12
HTML-Code einer Seite anzeigen Helium PHP für Fortgeschrittene und Experten 9 23.05.2007 16:36:31
User mit den höchsten Punkten des Tages anzeigen Simon14 MySQLi/PDO/(MySQL) 2 03.01.2007 22:09:30
Abgefrage tabellen einer DB anzeigen hoschy PHP Grundlagen 3 14.08.2005 12:23:05
Nur ein Datensatz anzeigen ohne Schleife Small-Talk MySQLi/PDO/(MySQL) 2 08.06.2004 14:41:03


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:18:06 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt