ebiz-webhosting
- Ad -
php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 10-01-2010, 20:40
Fanello
 Registrierter Benutzer
Links : Onlinestatus : Fanello ist offline
Registriert seit: Jul 2005
Beiträge: 60
Fanello ist zur Zeit noch ein unbeschriebenes Blatt
Standard Auflistung aus MySQL und jeweils der Titel dazu?

Liebe PHP-Gemeinde

Ich hoffe es ist ok, wenn ich für diese Frage ein neues Thema erstelle. Auch weil es eine Fortsetzung bzw. eine Abänderung dieses Themas ist:
Thema

Folgender Datenbank-Aufbau ist vorhanden (wobei die Zahl am Anfang die ID ist und die am Schluss der Status):
Code:
1, Produkt A, weiss, 1
2, Produkt A, gelb, 1
3, Produkt A, blau, 1
4, Produkt A, rot, 1
5, Produkt B, weiss, 1
6, Produkt B, gelb, 1
7, Produkt B, blau, 1
8, Produkt B, rot, 1
9, Produkt C, weiss, 1
10, Produkt C, gelb, 1
11, Produkt C, blau, 1
12, Produkt C, rot
Ausgabe sollte folgendermassen sein:

Produkt A
weiss
gelb
blau
rot

Produkt B
weiss
gelb
blau
rot

Produkt C
weiss
gelb
blau
rot

Der Ansatz ist folgender:

Code:
$get_sql = new rex_sql;
$out = '';
for($z=0; $z<$get_sql->getRows(); $z++)
{
		
if($get_sql->getValue("status") == 1)
		{
                $out .= '<p>'.$get_sql->getValue("farbe").'</p>';
		}
		$get_sql->next();
}
	
$out .= '';
return $out;
So listet es mir einfach alle Farben untereinander auf. Und zwar in der richtigen Reihenfolge wie oben aufgeführt. Wie bekomme ich es aber nun hin, dass vor jeder Farbenauflistung auch das Produkt (A, B, C) angezeigt wird?
Mit Zitat antworten
  #2 (permalink)  
Alt 10-01-2010, 21:08
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 24.486
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Das Stichwort lautet: Gruppenwechsel
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #3 (permalink)  
Alt 11-01-2010, 00:12
Fanello
 Registrierter Benutzer
Links : Onlinestatus : Fanello ist offline
Registriert seit: Jul 2005
Beiträge: 60
Fanello ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Gruppenwechsel ist mir absolut neu. Aber schauen wir mal ob ich es richtig verstanden habe...

Im Prinzip geht es beim Gruppenwechsel in meinem Fall um folgendes:
Ich gebe Produkt 1 aus mit der ersten Farbe.
Die Abfrage läuft weiter.. jetzt muss ich abfragen, ob der Titel "Produkt 1" bereits bei der vorherigen Ausgabe drin war.
Falls ja, gebe mir keinen Titel aus.
Falls nein, gebe Titel aus.
Habe ich das soweit richtig verstanden?


Code:
$get_sql = new rex_sql;
$out = '';
$titel = ''
for($z=0; $z<$get_sql->getRows(); $z++)
{
$titel = $get_sql->getValue("titel");
		
if($get_sql->getValue("status") == 1)
		{
                       if($titel != $get_sql->getValue("titel");)
                       {
                       $out .= '<p></strong>'.$titel.'</strong></p>';
                       }
                $out .= '<p>'.$get_sql->getValue("farbe").'</p>';
		}
		$get_sql->next();
}
	
$out .= '';
return $out;
Ich habe das Gefühl dass meinem Code noch etwas fehlt... Mir ist nicht ganz klar wie ich die Abfrage von der vorherigen Ausgabe machen soll. Ich nehme mal an, ich verstehe den Gruppenwechsel richtig, habe es aber nicht korrekt umgesetzt... Stimmt's?
Mit Zitat antworten
  #4 (permalink)  
Alt 11-01-2010, 00:22
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 24.486
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Fanello Beitrag anzeigen
Ich nehme mal an, ich verstehe den Gruppenwechsel richtig, habe es aber nicht korrekt umgesetzt... Stimmt's?
Ja, soweit ist das schon richtig.
Zitat:
Mir ist nicht ganz klar wie ich die Abfrage von der vorherigen Ausgabe machen soll.
Du merkst dir einfach am Ende jedes Schleifendurchlaufs den aktuellen Wert als „vorherigen”.
Am Anfang der Schleife vergleichst du, ob der (dabei) aktuelle Wert gleich dem vorherigen ist. Wenn nicht, gibst du ihn aus.
Um das ganze sauber zu haben, initialisierst du vor der Schleife noch deine Merkvariable für den ersten Durchlauf mit einem Wert, der in den eigentlichen Werten garantiert nicht vorkommt.

PHP-Code:
$wertAusVorherigemDurchlauf false;
schleife ( ... ) {
  if(
$aktuellerWert !== $wertAusVorherigemDurchlauf) {
    
// der aktuelle Wert ist nicht mehr gleich dem vorherigen,
    // es hat also ein Gruppenwechsel stattgefunden
    
Ausgabe($aktuellerWert);
  }
  
// weitere Vararbeitung, Ausgabe restlicher Daten des Datensatzes
  // ...

  // aktuellen Wert für nächsten Durchlauf als „vorherigen” merken
  
$wertAusVorherigemDurchlauf $aktuellerWert;

__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #5 (permalink)  
Alt 11-01-2010, 13:56
Fanello
 Registrierter Benutzer
Links : Onlinestatus : Fanello ist offline
Registriert seit: Jul 2005
Beiträge: 60
Fanello ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Code:
$get_sql = new rex_sql;
$titel_vorher = 'mami';
$out = '';
for($z=0; $z<$get_sql->getRows(); $z++)
{
		
if($get_sql->getValue("status") == 1)
		{
                $titel_aktuell = $get_sql->getValue("titel");
		if($titel_aktuell !== $titel_vorher) {
		    $out .= '<h2>'.$get_sql->getValue("titel").'</h2>';
    		}
                $out .= '<p>'.$get_sql->getValue("farbe").'</p>';
                $titel_vorher = $titel_aktuell;
		}
		$get_sql->next();
}
	
$out .= '';
return $out;
vielen Dank, habs kapiert! So funktioniert es jetzt!!!

Geändert von Fanello (11-01-2010 um 14:03 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 11-01-2010, 14:16
Quetschi
 PHP Expert
Links : Onlinestatus : Quetschi ist offline
Registriert seit: Dec 2004
Beiträge: 2.759
Quetschi befindet sich auf einem aufstrebenden Ast
Standard

OffTopic:
Wundere mich gerade etwas, dass @wahsaga dich nicht auf dein scheinbar nicht gerade optimales DB-Layout aufmerksam gemacht hat.
__________________
Drelingdo
Krabonse
Simmannamando
Mit Zitat antworten
  #7 (permalink)  
Alt 12-01-2010, 18:52
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

OffTopic:
Nen Gruppenwechsel hätte es ja trotzdem benötigt.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

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
Antwort

Lesezeichen


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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Jeweils mit erster Zeile updaten CC84 SQL / Datenbanken 7 05-03-2007 18:44
[MySQL 4.1] Für Archiv Jahr dazu die Monate Proggy SQL / Datenbanken 8 26-04-2006 15:36
[MySQL 4.1] Bilder und Titel in Tabelle ausgeben Hexakymion SQL / Datenbanken 3 11-03-2006 20:30
MySQL Tabellen auflistung oKin3 PHP Developer Forum 4 08-04-2005 22:39
suche möglichkeit um mit php und mysql etwas dazu verdienen Trashar Archiv / Trash 0 07-08-2002 18:17

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

MariaDB 5.5 veröffentlicht
MariaDB 5.5 veröffentlichtDie freie MySQL-Alternative MariaDB wurde in der stabilen Version 5.5.23 veröffentlicht und soll einige Verbesserungen gegenüber Oracles Communityversion von MySQL mitbringen.

16.04.2012 | Berni

Deutsche Yii Framework Community
Deutsche Yii Framework CommunitySeit dem 19.03.2012 gibt es für die Yii PHP Framework Community ein deutsches Zuhause.

20.03.2012 | dhcomputer

 

Aktuelle PHP Scripte

EM 2012 Tipp-Spiel ansehen EM 2012 Tipp-Spiel

Online Tipp-Spiel zur Fussball Europameisterschaft 2012, basierend auf php-Script mit hinterlegter mySql-Datenbank

27.05.2012 tippimnetz | Kategorie: PHP/ Spiele
Advanced Login ansehen Advanced Login

Login-System und Kundenverwaltung, die sich spielend leicht in bestehende Webseiten einbauen lässt und einen enormen Funktionsumfang bietet. Ihre eigene Webseite muss mit Advanced Login nicht umständlich an ein fertiges System angepasst werden.

25.05.2012 Madden | Kategorie: PHP/ Kundenverwaltung
BROM CMS/BelCal 3 ansehen BROM CMS/BelCal 3

Spezielles CMS für Betreiber von Ferienwohnungen. Komplette Seitenerstellung online, Verwaltung mehrerer Objekte, Reservierungssystem mit sofortigem Abgleich im Belegungskalender und vieles mehr bietet dieses Content Management System.

25.05.2012 belcal2 | Kategorie: PHP/ CMS
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:23 Uhr.