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! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 10-01-2010, 21:40
Fanello
 Registrierter Benutzer
Links : Onlinestatus : Fanello ist offline
Registriert seit: Jul 2005
Beiträge: 64
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, 22:08
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
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, 01:12
Fanello
 Registrierter Benutzer
Links : Onlinestatus : Fanello ist offline
Registriert seit: Jul 2005
Beiträge: 64
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, 01:22
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
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, 14:56
Fanello
 Registrierter Benutzer
Links : Onlinestatus : Fanello ist offline
Registriert seit: Jul 2005
Beiträge: 64
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 15:03 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 11-01-2010, 15:16
Quetschi
 PHP Expert
Links : Onlinestatus : Quetschi ist offline
Registriert seit: Dec 2004
Beiträge: 3.134
Quetschi wird schon bald berühmt werden
Standard

OffTopic:
Wundere mich gerade etwas, dass @wahsaga dich nicht auf dein scheinbar nicht gerade optimales DB-Layout aufmerksam gemacht hat.
__________________
Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
Schön - etwas Geschichte kann ja nicht schaden.
Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!
Mit Zitat antworten
  #7 (permalink)  
Alt 12-01-2010, 19:52
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
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 19:44
[MySQL 4.1] Für Archiv Jahr dazu die Monate Proggy SQL / Datenbanken 8 26-04-2006 16:36
[MySQL 4.1] Bilder und Titel in Tabelle ausgeben Hexakymion SQL / Datenbanken 3 11-03-2006 21:30
MySQL Tabellen auflistung oKin3 PHP Developer Forum 4 08-04-2005 23:39
suche möglichkeit um mit php und mysql etwas dazu verdienen Trashar Archiv / Trash 0 07-08-2002 19: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

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:41 Uhr.