ausgabe mit buchstabenlinks

Kurt Cobain

Erfahrenes Mitglied
tag helfer


weis nicht ob ichs zu php forum odeer sql forum posten soll



ich hab n kelines problem mit ner ausgabe
hier der link zu nem ähnlichen beispiel, wie ichs gern hätte:
http://www.taborama.com/archive/art...=Machine Head


hier hab ich mal was gemacht:

PHP:
$link = mysql_connect() or die ("Keine Verbindung moeglich");
mysql_select_db("manuel") or die ("Die Datenbank existiert nicht");


$abfrage = "SELECT * FROM autos WHERE  marke = 'vw'  GROUP BY fabrikat ORDER BY fabrikat  asc ";

$ergebnis = mysql_query($abfrage)  or die (mysql_error());
while($row = mysql_fetch_object($ergebnis))
{

 echo  "$row->fabrikat";

 echo "           ";

 echo

    if($row->farbe == "rot")
    {echo "<a href=\"farben.php?f=rot\">R</a>";
    }
    else{echo "-";
    }


       if($row->farbe == "schwarz")
      {echo "<a href=\"farben.php?f=schwarz\">S</a>";
      }
      else{echo "-";
      }


        if($row->farbe == "blau")
        {echo "<a href=\"farben.php?f=blau\">B</a>";
        }
        else{echo "-";
        }


         if($row->farbe == "weiß")
         {echo "<a href=\"farben.php?f=weiß\">W</a>";
         }
         else{echo "-";
         }
   echo "<br>";

}



gehen wir mal davon aus, dass einer einen vw passat,
der die farbe schwarz (es gibt nur diese 4 farben) eingetragen hat.
nun ist die ausgabe diehier: (richtig)
passat - S - -


wenn jetzt aber noch einer einen vw passat, der die farbe weiß
hat dazueinträgt kommt auch dashier:
passat - S - -
aber eigendlich sollte doch dashier kommen:
passat - S - W


was muss man da noch ändern?

dankel
 
Zuletzt bearbeitet:
wenn jetzt aber noch einer einen vw passat, der die farbe weiß
hat dazueinträgt
Das heißt, dass Du dann ja zwei "Passat"-Einträge hast. Durch das "GROUP-BY" in der SQL-Abfrage bekommst Du aber nur einen (ich bin mir nicht sicher, aber ich glaub, es ist der erste jeweils) Datensatz zurück. Somit is die farbe "weiß" ja nicht im Datensatz.

Du müsstest also nochmal eine Abfrage starten, die Dir alle Einträge des Fabrikat's bringt.

Probiers mal ungefähr so:

PHP:
$link = mysql_connect() or die ("Keine Verbindung moeglich"); 
mysql_select_db("manuel") or die ("Die Datenbank existiert nicht"); 


$abfrage = "SELECT * FROM autos WHERE  marke = 'vw'  GROUP BY fabrikat ORDER BY fabrikat  asc "; 

$ergebnis = mysql_query($abfrage)  or die (mysql_error()); 
while($row = mysql_fetch_object($ergebnis)) 
{ 

$abfrage = "SELECT farbe FROM autos WHERE  marke = '$row->fabrikat'"; 

echo  "$row->fabrikat"; 

echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"; 

$ergebnis_farben = mysql_query($abfrage)  or die (mysql_error()); 
while($row_farben = mysql_fetch_object($ergebnis_farben)){

echo 

    if($row_farben->farbe == "rot") 
    {echo "<a href=\"farben.php?f=rot\">R</a>"; 
    } 
    else{echo "-"; 
    } 


       if($row_farben->farbe == "schwarz") 
      {echo "<a href=\"farben.php?f=schwarz\">S</a>"; 
      } 
      else{echo "-"; 
      } 


        if($row_farben->farbe == "blau") 
        {echo "<a href=\"farben.php?f=blau\">B</a>"; 
        } 
        else{echo "-"; 
        } 


         if($row_farben->farbe == "weiß") 
         {echo "<a href=\"farben.php?f=weiß\">W</a>"; 
         } 
         else{echo "-"; 
         } 
}
   echo "<br>"; 

}
So ungefähr müsste das IMHO dann aussehen...

MfG
Hans
 
Zurück