MSSQL-Spalten in Abhängikeit voneinander ausgeben

msycho

Erfahrenes Mitglied
Hallo!

Ich habe unteranderem zwei Spalten in einer MSSQL-Datenbank-Tabelle. Eine hat einen längeren String, die andere ein ganz kurzen String in Form eines Buchstaben:

spalte_a: fritzle, peter
spalte_b: x, y
(Die Datensätze habe ich im o.g. Beispiel durch ein Kommata getrennt.)

Nun möchte ich den Datensatz aus spalte_a in Abhängigkeit aus spalte_b in zwei HTML-Spalten ausgeben:

html-spalte_1: fritzle
html-spalte_2: peter

Es sollen also die Einträge aus spalte_a in der html-spalte_1 ausgegeben werden wenn in der spalte_b x steht. Andersrum ebenso, sprich die Einträge aus spalte_b sollen in der html-spalte_2 ausgegeben werden wenn in der spalte_b y steht.

Hoffe Ihr versteht mich. Ist das überhaupt möglich? Habt Ihr eine Idee, bitte?
 
Ich verstehe ehrlich gesagt nicht, was du damit bezwecken willst. Und seh ich es richtig, dass du pro Buchstaben einen Namen hast? Wie gesagt... ich komm nicht ganz mit deiner Frage klar... Mach mal ein konkretes Beispiel. Dann helf ich natürlich gerne ;)

Tseng
 
Also, nochmal ein Beispiel:

dbspalte_a --- dbspalte_b
==================
name1...................c
name2...................g
name3...................g
name4...................c
name5...................c
name6...................g

htmlspalte_1 --- htmlspalte_2
=====================
name1
..............................name2
..............................name3
name4
name5
..............................name6

Genügt das Beispiel? Ist es nun verständlicher? :)
 
Falls du nur 2 bzw die Buchstaben in der 2ten Spalte weist kannst du ja per if Abfrage in die richtige Spalte einordnen.

PHP:
$sql = "SELECT * FROM tab;";
$erg = mysql_query();
echo '<table width="30%">';
while ($row = mysql_fetch_object($erg))
{
  echo '<tr><td width="50%">';
  if ($row->dbspalte_b == "c")
  {
    echo $row->dbspalte_a;
  }
  echo '</td><td width="50%">';
  if ($row->dbspalte_b == "g")
  {
    echo $row->dbspalte_a;
  }
  echo </td></tr> 
}
echo '</table>';

:p
 
Jop, dank Dir. Etwas erweitert ging es:

PHP:
if ( strcmp ( $dbspalte_b, "c" ) == 0 )
{
$dbspalte_c = $dbspalte_a;
$dbspalte_g = "";
}

if ( strcmp ( $dbspalte_b, "g" ) == 0 )
{
$dbspalte_g = $dbspalte_a;
$dbspalte_c = "";
}

Die Ausgabe erfolgt über die Variablen $dbspalte_g bzw. _c.

strcmp wird verwendet um den Inhalt einer Variable (in dem Fall einer DB-Spalte) auf einen bestimmten String zu überprüfen. Da ich ihn auf den Wert 0 Überprüfe, muss die Spaltengröße auf "1" gesetzt sein. Ist dem nicht so, muss man mit < und > arbeiten.
 
Zurück