Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

sql: Datensätze abteilen

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
nerd
PostRank 10
PostRank 10
Beiträge: 4023
Registriert: 15.02.2005, 04:02

Beitrag von nerd » 02.01.2007, 13:04

hallo,

ich habe folgendes problem: ein shopping system mit warenkorb, und ich will eine liste mit allen verkauften waren, kunde, auftrag_id. klappt auch, nur sieht meine ausgabe jetzt etwa so aus:
auftrag - name - artikel
1 - Max musterman - musterprodukt 1 (preis, anzahl, ...)
1 - Max musterman - musterprodukt 3
2 - Bernd Beispiel - beispielprodukt 2

gibt es irgendwie die möglichkeit in sql die ausgabe so umzubiegen das etwas rauskommt wie:
auftrag 1, Max Musterman
musterprodukt 1
musterprodukt 3
auftrag 2, Bernd Beispiel
beispielprodukt 2

klar, in php kann ich das auch aber für mich wäre es praktischer wenn ich nur sql umschreiben muss.

Anzeige von ABAKUS

von Anzeige von ABAKUS »

Content Erstellung von ABAKUS Internet Marketing
Ihre Vorteile:
  • einzigartige Texte
  • suchmaschinenoptimierte Inhalte
  • eine sinnvolle Content-Strategie
  • Beratung und Umsetzung
Jetzt anfragen: 0511 / 300325-0

SloMo
PostRank 10
PostRank 10
Beiträge: 4880
Registriert: 04.01.2005, 18:26

Beitrag von SloMo » 02.01.2007, 13:16

Nerd, SQL-Abfragen liefern immer Tabellenzeilen mit der gleichen Spaltenzahl und -reihenfolge. Für die Erzeugung angenehmer lesbarer Listen ist dann PHP oder (noch besser) das Template-System zuständing.

Ice Man
PostRank 9
PostRank 9
Beiträge: 2477
Registriert: 04.06.2003, 19:16

Beitrag von Ice Man » 02.01.2007, 15:47

Schleife 1 mach doch eine Abfrage nach Bestellnummer
Jetzt schleife2: Abfrage nach Produkte von Besteller Schleifen[id]
Ende schleife 2: mit Gesamt Summe
Ende schleife 1:

damit sollte es übersichtlich sein

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


nerd
PostRank 10
PostRank 10
Beiträge: 4023
Registriert: 15.02.2005, 04:02

Beitrag von nerd » 02.01.2007, 20:06

SloMo hat geschrieben:Nerd, SQL-Abfragen liefern immer Tabellenzeilen mit der gleichen Spaltenzahl und -reihenfolge. Für die Erzeugung angenehmer lesbarer Listen ist dann PHP oder (noch besser) das Template-System zuständing.
ich hatt mal einen sql kurs vor ein paar jahren, dachte da war etwas ähnliches mal am ende des kurses, dachte damals "wer kann denn sowas jemals brauchen" - weis jetzt aber nichtmehr wie das kommando war, und es war auch eine mssql2000 db - hier ist es mysql.

man kann (zumindest bei mssql2000) abfragen oder stored procedures schreiben die mehr als nur ein recordset erzeugen, also z.b. für eine rechnung einmal empfänger, anschrift usw. und dann in einem 2. recordset die ganzen waren zur rechnung - dabei gibt man dann wie geschrieben nur ein kommando an die db und bekommt mehrere recordsets dafür zurück.

800XE
PostRank 10
PostRank 10
Beiträge: 5223
Registriert: 02.12.2004, 03:03

Beitrag von 800XE » 02.01.2007, 20:40

nerd hat geschrieben: ich habe folgendes problem: ein shopping system mit warenkorb, und ich will eine liste mit allen verkauften waren, kunde, auftrag_id. klappt auch, nur sieht meine ausgabe jetzt etwa so aus:
auftrag - name - artikel
1 - Max musterman - musterprodukt 1 (preis, anzahl, ...)
1 - Max musterman - musterprodukt 3
2 - Bernd Beispiel - beispielprodukt 2

gibt es irgendwie die möglichkeit in sql die ausgabe so umzubiegen das etwas rauskommt wie:
auftrag 1, Max Musterman
musterprodukt 1
musterprodukt 3
auftrag 2, Bernd Beispiel
beispielprodukt 2

klar, in php kann ich das auch aber für mich wäre es praktischer wenn ich nur sql umschreiben muss.
Wie SloMo sagte, mit SQL gehts nicht

und wie DU sagtes ... mit PHP .... aber wie mit PHP

deine PHP ist verscachtelte SQL Abfragen ... erst Kunde und dann seine Artikel?

geht auch mit nur einer SQL

Code: Alles auswählen

SQL.......
while( $line = sql_fetch_array
{
  if ( $lastkunde == $line[ kunde ] )
  {
  }
  else
  {
     $content .= "<br>Auftrag No. $i für $line&#91;kunde&#93;";
  &#125;
  $content .= "<br>Artikel&#58; $line&#91;artikel&#93;";

  $lastkunde = $line&#91; kunde &#93;;
&#125;

Kundenname ausgeben wenn Anders als bei forrausgegangenem Datensatz

nerd
PostRank 10
PostRank 10
Beiträge: 4023
Registriert: 15.02.2005, 04:02

Beitrag von nerd » 03.01.2007, 23:49

800XE hat geschrieben: Wie SloMo sagte, mit SQL gehts nicht
pha, ich frag halt einfach solange weiter bis es jemand weiss! 8)
800XE hat geschrieben: und wie DU sagtes ... mit PHP .... aber wie mit PHP
deine PHP ist verscachtelte SQL Abfragen ... erst Kunde und dann seine Artikel?
Kundenname ausgeben wenn Anders als bei forrausgegangenem Datensatz

jaaaa, das is ja billig. nur habe ich schon eine .php die ich nur mit einem sql string füttern muss um mir diverse stats ausgeben zu lassen. wollte deswegen ja nicht extra ne neue seite anlegen.

800XE
PostRank 10
PostRank 10
Beiträge: 5223
Registriert: 02.12.2004, 03:03

Beitrag von 800XE » 04.01.2007, 00:18

nerd hat geschrieben:
800XE hat geschrieben:
800XE hat geschrieben: und wie DU sagtes ... mit PHP .... aber wie mit PHP
deine PHP ist verscachtelte SQL Abfragen ... erst Kunde und dann seine Artikel?
Kundenname ausgeben wenn Anders als bei forrausgegangenem Datensatz

jaaaa, das is ja billig. nur habe ich schon eine .php die ich nur mit einem sql string füttern muss um mir diverse stats ausgeben zu lassen. wollte deswegen ja nicht extra ne neue seite anlegen.
und wie tät es sein mit einem zusätzlichen Parameter

......php?mode=sublines

Code: Alles auswählen


SQL.......
while&#40; $line = sql_fetch_array
&#123;
 if &#40; $_GET&#91;mode&#93; == 'sublines' &#41;
 &#123;
  if &#40; $lastkunde == $line&#91; kunde &#93; &#41;
  &#123;
  &#125;
  else
  &#123;
     $content .= "<br>Auftrag No. $i für $line&#91;kunde&#93;";
  &#125;
  $content .= "<br>Artikel&#58; $line&#91;artikel&#93;";
  $lastkunde = $line&#91; kunde &#93;;
 &#125;
 else
 &#123;
  $content .= "<br>$line&#91;kunde&#93; | $line&#91;artikel&#93;";
 &#125;
&#125;

Antworten