Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

PHP/MySQL und Rubriken überschrift

Diskussion: PHP/MySQL und Rubriken überschrift im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige Ich stehe vor folgendem Problem: Ich habe Tabelle(Rubriken) mit Rubriken angefertigt: ID|Rubrik_Name 1 |Videos 2 |CD 3 |DVD . ...

Antwort
Alt 03.01.05, 18:52   #1 (permalink)
 
Registriert seit: 18.10.01
keytrix Leistung: Facit NTK
Likes: 0
Standard PHP/MySQL und Rubriken überschrift

Anzeige

Ich stehe vor folgendem Problem:

Ich habe Tabelle(Rubriken) mit Rubriken angefertigt:

ID|Rubrik_Name
1 |Videos
2 |CD
3 |DVD
.
.
.

In einer Anderen Tabelle werden Interpreten/Künstler sortiert:

ID| Künstler/Interpret
Videos|Künstler1
CD|Künstler2
Videos|Künstler3
.
.

Mit "INNER Join" wird den IDs in der letzten Tabelle der Rubrikname übergeben.

Nun möchte ich zusätzlich eine Sortierung nach Rubriken erhalten. Ungefähr so:

Videos: (Überschrift)

Künstler1
Künstler3

CD:

Künstler2


DVD:

....


Wie kann ich das bewerkstelligen? Ich bin schon so weit, dass ich ich die Ausgaben hinbekomme:

Video|Künstler1
Video|Künstler3
CD|Künstler2


Möchte aber über die Überschriften eine andere Art der Sortierung erreichen. Die Daten liegen, wie gesagt, in 2 Tabellen.

keytrix ist offline   Mit Zitat antworten
Alt 03.01.05, 19:29   #2 (permalink)
Member of Honour
 
Benutzerbild von ivegotmail
 
Registriert seit: 28.05.03
ivegotmail Leistung: Z3
Likes: 1
Standard

die 2. tabelle sollte wohl eher so aussehen
Code:
ID	| Künstler/Interpret	| Rubrik
1	|Künstler1		|1
2	|Künstler2		|2
3	|Künstler3		|1
also in der spalte rubrik steht jeweils die rubrik id aus der ersten tabelle

wenn du dann deine rubriken mit künstlern auflisten willst, holst dir die id (und den rubriknamen für deine überschrift) aus der ersten tabelle
und über die id holst du dir dann aus der zweiten tabelle die enstprechenden künstler dieser rubrik
damit du deine gewünschte ausgabe erhällst, muss das ganze ungefähr so aussehen
PHP-Code:
// überschriften und ids holen
SELECT idrubrik_name FROM Rubriken;
for 
schleife1 
{ ... für jede sql-ergebnis-reihe ...
    
// überschrift ausgeben
    // id zwischenspeichern und darüber die Künstler der rubrik holen
    
SELECT Künstler/Interpret FROM Interpreten/Künstler WHERE Rubrik $rubrikID;
    for 
schleife2 { ... für jede sql-ergebnis-reihe ...
        
// künstler ausgeben 
    
}

__________________
http://livehabo.hackerboard.de | http://livebb.sourceforge.net
ivegotmail ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 03.01.05, 20:45   #3 (permalink)
 
Registriert seit: 20.01.03
Zwirni Leistung: Z3
Likes: 0
Standard

Zwei SQL-Statements, wie von ivegotmail beschrieben, sind ziemlich perfomancelastig (führt zu langsamen Aufbau der Seite bei langsamen oder stark beschäftigtem Server), gerade wenn diese dann noch rekursiv abgearbeitet werden und es viele Daten sind. Probiers mal so (hab ich ausm Kopf geschrieben, muss nicht 100%ig stimmen), vorausgesetzt du nutzt php und mysql und möchtest nach "rubrik_name" sortieren:

Code:
$sql="SELECT r.id as rubrik_id,r.rubrik_name,i.interpret_name FROM rubriken as r, interpreten as i where i.rubrikID = r.id order by r.rubrik_name asc, interpret_name desc;";
$result = mysql_query($sql);
echo "<table>";
while($rows=mysql_fetch_array($result))
{
echo "<tr>";
if($lastname==$rows[rubrik_id])
   {
      echo "<td></td><td>".$rows[interpret_name]."</td>";
   }
else
   {
      echo "<td>".$rows[rubrik_name]."</td><td>".$rows[interpret_name]."</td>";
   }
$lastrubr=$rows[rubrik_id];
echo "</tr>";
}
echo "</table>";
Stellt also wenn es sich um die gleiche Rubrik wie bereits zuvor handelt nicht nochmal den Rubriknamen dar. Die Sortierung erfolgt wegen dem "order" primär nach dem Rubriknamen, Sekundär nach dem Internetnamen.

So in etwa ....

Viele Wege führen nach Rom
Zwirni ist offline   Mit Zitat antworten
Alt 05.01.05, 18:14   #4 (permalink)
Themenstarter
 
Registriert seit: 18.10.01
keytrix Leistung: Facit NTK
Likes: 0
Standard hab ich nicht ganz gerafft...

ich habe aber auch den anspruch, dass die rubriken erweiterbar sind. dazu lege ich einen schlüssel an, der sich erweitert -wie eine kundennummer-

in der anderen tabelle sind nun die künstler enthalten. es gibt dort eine spalte in der die einträge noch den rubriken zugeordnet werden.

also (ID steht für die Rubrik):

ID | Künstler/Interpret
1 |Künstler1
2 |Künstler2
3 |Künstler3


nun soll es eine ausgabe geben, die alle daten ausgibt. nach den rubriken soll diese ausgabe sotiert sein. die rubriken dienen als überschriften. darunter sind dann die jeweiligen künstler (künstlertabelle) aufgelistet.
ist dies abgeschlossen, wird die nächte rubrik abgearbeitet. wenn alle rubriken abgearbeitet sind, ist ende. wie schon gesagt, die rubriken sollen von der anzahl nicht statisch sein...

ich habe jetzt immer versucht, mit zwei verschachtelten while-schleifen zu arbeiten.
PHP-Code:

<?php
$sql 
"SELECT
            r.id_rubrik,
             r.rubrik as rubrikNAME
    FROM
             rubrik as r
         ORDER BY
             rubrikNAME ASC"
;

$result mysql_query($sql) OR die(mysql_error());
while (
$row mysql_fetch_assoc($result)) {
  
$rubrik $row['rubrikNAME'];

  echo 
"rubrik:".$row_rubrik['rubrikNAME']." <br>\n";

  
$sql "SELECT

                 k.id_rubrik,
                 k.kuenstlerNAME as kuenstler
         FROM
        kuenstler as k
         INNER JOIN rubrik ON r.id_rubrik=k.id_rubrik
         WHERE
        k.id_rubrik = $rubrik
         ORDER BY
             rubrikNAME ASC"
;

$result mysql_query($sql) OR die(mysql_error());

  while (
$row mysql_fetch_assoc($result)) {


        echo .
$row['kuenstler']."<br> \n";
    echo 
"<br><br>";


  }
}
  echo 
"</table>\n";
  echo 
"</div>\n";
?>
keytrix ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » PHP/MySQL und Rubriken überschrift
Themen-Optionen
Ansicht

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 sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
MySQL mastermix252 Code Kitchen 5 26.05.07 18:30
Php & Mysql Stein (Web-) Design und webbasierte Sprachen 5 16.03.07 14:34
Php & Mysql Stein Code Kitchen 1 15.03.07 19:57
mysql 4 -> mysql 5.0.x bikmaek (Web-) Design und webbasierte Sprachen 11 27.03.06 17:57
php und mysql aus mysql db auslesen chrisi01 (Web-) Design und webbasierte Sprachen 1 02.11.03 13:28


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61