mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 19.04.2024 02:14 Benutzername: Passwort: Auto-Login

Thema: [PHP / MySQL] Datensätze anzeigen ohne "Doppelte" vom 17.08.2007


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> [PHP / MySQL] Datensätze anzeigen ohne "Doppelte"
Autor Nachricht
LioGetz
Threadersteller

Dabei seit: 24.03.2003
Ort: Aachen
Alter: 44
Geschlecht: Männlich
Verfasst Fr 17.08.2007 12:12
Titel

[PHP / MySQL] Datensätze anzeigen ohne "Doppelte"

Antworten mit Zitat Zum Seitenanfang

Hi @ all,

mal wieder ne kurze Frage beim zusammenfummeln von meinem Webshop...
Ich hab ne Table "bestellung" in die die abgesendeten Warenkörbe reinkommen.
Diese Table beinhaltet: bestell_ID, user, artikel, anzahl, time
Die Bestell-ID ist hierbei nicht unique und auch kein Auto-Increment, da eine bestellung über mehrere Zeilen der Table geht (für jeden Artikel 1 Zeile)...d.h. bei 5 gekauften Artikeln gibt es 5 Zeilen, mit EINER bestell-ID.

Ok, der Shop-Admin soll sich Übersichten anzeigen lassen.
Mit meiner momentanen Abfrage hole ich alles aus der bestell-Table raus, aber das ist irgendwie falsch. Ich möchte das ne Tabelle ausgegeben wird, in der nur die bestellung 1 mal vorkommt, und nicht z.B. 5 mal (bei 5 Waren).

Wie stelle ich das an, das er bei nem erneuten auftreten des bestell_ID wertes die Zeile einfach skippt und zur nächsten geht???

Mein momentaner Code:

Code:

dbstart();
$query = "SELECT * FROM bestellung ODER BY time DESC";   // Befehl an Datenbank 
$result = mysql_query($query); // Befehl an DB senden

echo "<table border=\"1\">\n";
while($data = mysql_fetch_array($result)) {

// Datum und Zeit wird aus der DB umgewandelt
$date = date("d.m.Y",$data['time']);
$time = date("H:i",$data['time']);

echo "<tr>\n";
echo "<td>" . $data['bestell_ID']. "</td>\n";
echo "<td>" . $data['user']. "</td>\n";
echo "<td>" . $date. "</td>\n";
echo "<td>" . $time. "</td>\n";
echo "<td><a href=\"bestell_details.php?bestellung=" . $data['bestell_ID'] . "\">Details</a></td>";
echo "</tr>\n";

}
echo "</table>\n";


Die Übersicht soll nur 1 Spalte pro Bestellung anzeigen, dann mach ich noch nen Link "Details" der dann die komplette Bestellung anzeigt (aber das ist ja dann wieder einfach *zwinker* ).
Jemand ne Idee?

Thx im voraus

CU
Lio Grins

P.S. Ja, ich weiß, man soll nicht mit * abfragen, aber für meine Zwecke reicht das erstmal...
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Nimroy
Community Manager

Dabei seit: 26.05.2004
Ort: zwischen Köln und D'dorf
Alter: 45
Geschlecht: Männlich
Verfasst Fr 17.08.2007 12:17
Titel

Antworten mit Zitat Zum Seitenanfang

Probier mal "SELECT DISTINCT ..."
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
LioGetz
Threadersteller

Dabei seit: 24.03.2003
Ort: Aachen
Alter: 44
Geschlecht: Männlich
Verfasst Fr 17.08.2007 12:32
Titel

Antworten mit Zitat Zum Seitenanfang

Hey danke, nettes Schlüsselwort, ich hatte gerade nen halben Roman aufgesetzt, aber ich glaube es klappt doch *zwinker*.

CU
Lio Grins
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Account gelöscht


Ort: -
Alter: -
Verfasst Fr 17.08.2007 13:15
Titel

Antworten mit Zitat Zum Seitenanfang

Neben DISTINCT ist vlt das Stichwort "Aggregation" noch von Interesse, siehe "GROUP BY"-Klausel.

Nebenbei:

Zitat:
echo "<tr>\n";
echo "<td>" . $data['bestell_ID']. "</td>\n";
echo "<td>" . $data['user']. "</td>\n";
echo "<td>" . $date. "</td>\n";
echo "<td>" . $time. "</td>\n";
echo "<td><a href=\"bestell_details.php?bestellung=" . $data['bestell_ID'] . "\">Details</a></td>";
echo "</tr>\n";


ist ziemlich old styled und macht heutzutage kein Mensch mehr so. Bsp: http://www.phpguru.org/static/templating.html

Auch hat das Datenmodell und die Geschäftslogik in ner Weise was in der Ausgabe selbst verloren. Stichwort Schichtenarchitektur.

Im Übrigen hat Audiofreak im Post unter mir vollkommen recht.


Zuletzt bearbeitet von am Fr 17.08.2007 13:17, insgesamt 3-mal bearbeitet
 
aUDIOfREAK

Dabei seit: 04.04.2002
Ort: Ansbach
Alter: 44
Geschlecht: Männlich
Verfasst Fr 17.08.2007 13:16
Titel

Antworten mit Zitat Zum Seitenanfang

warum teilst du die bestellung nich einfach in 2 tables auf? ne table für den besteller mit allen angaben wie adresse usw. und ne table für den warenkorb, dem die bestellerid zugewisen ist...
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
 
Ähnliche Themen [mySQL] Datensätze löschen
[PHP & MySQL] Datensätze bearbeiten per UPDATE
Datensätze aus MySQL-Datenbank sortieren...
mysql - doppelte interpretenausgabe verhindern
[php/mysql] top 10 anzeigen lassen
PHP,MYSQL --> DESCRIBE (infos über tabelle anzeigen lasse
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.