Seite 1 von 1

DB-Problem

Verfasst: 21.02.2003 14:37
von Condor
Hallo,
ich habe in einer DB, in einer Spalte Abkürzungen stehen. Nehmen wir an, in einem Datensatz steht "z.B.". Wenn ich jetzt den Datensatz per Script ausgeben möchte, soll nicht "z.B." sondern "zum Beispiel" ausgegeben werden. Wie kann ich sowas realisieren ?

Verfasst: 21.02.2003 15:23
von Pyramide
Heißt
Condor hat geschrieben:in einer Spalte Abkürzungen stehen
daß du eine Tabelle mit zwei Spalten Abkürzung und Langform hast oder daß du in einer Tabelle Texte gespeichert hast, in denen die Abkürzungen vorkommen?

Verfasst: 21.02.2003 16:28
von Xmopf
Hi,

also wenn deine Tabelle so aussieht:

abkuerzung | bedeutung
---------------------------------------------
z.B. | zum Beispiel
mfg | mit freundlichen Grüßen
... | ...

dann sollte folgendes funzen:

Code: Alles auswählen

$einString = "Irgendein Text, z.B. was total sinnloses... ";
echo $einString ."<br>";

$sqlString = "SELECT * FROM tabelle_abkuerzungen";
$sqlErgebnis = mysql_query($sqlString);

while($rowAbkuerzung = mysql_fetch_array($sqlErgebnis)) 
{
	$einString = str_replace($rowAbkuerzung["abkuerzung"], $rowAbkuerzung["bedeutung"], $einString);
}
Gruß
Xmopf

Verfasst: 22.02.2003 00:43
von Condor
Hallo,
nicht ganz. Das würde zwar auch gehen, aber ich habe das jetzt etwas anders. Nehmen wir an die Tabelle sieht so aus:

Code: Alles auswählen

| Verein | Runde |
---------------------
| PSG    |   1/4   |
Das soll heissen, das PSG im Viertelfinale ist. Jetzt soll aber nicht 1/4 ausgegeben werden sondern "Viertelfinale". Also die Bedeutung steht nicht in der DB. Muss ich da mit IF-Abfragen arbeiten ?

Verfasst: 22.02.2003 00:49
von PhilippK
Condor hat geschrieben:Muss ich da mit IF-Abfragen arbeiten ?
Müssen nicht, aber können. Alternative wäre z.B. die switch-Anweisung von PHP.

Gruß, Philipp

Verfasst: 22.02.2003 00:56
von Condor
Hi,
wie könnte denn so eine simple Switch-Abfrage aussehen ?

Verfasst: 22.02.2003 01:02
von PhilippK
Condor,

schau mal hier nach:
http://www.php.net/manual/en/control-st ... switch.php

Gruß, Philipp

Verfasst: 22.02.2003 11:24
von Pyramide
Du könntest auch eine Tabelle wie Xmopf sie beschrieben hat anlegen und dann direkt von der Datenbank die Langform generieren lassen:

Code: Alles auswählen

SELECT v.verein, a.langform
FROM vereine v, abkuerzungen a
WHERE a.abkuerzung = v.runde

Verfasst: 22.02.2003 11:34
von PhilippK
@Pyramide:

gibt es eigentlich einen Vorteil deines SQL-Befehls gegenüber dem hier:

Code: Alles auswählen

SELECT v.verein, a.langform 
FROM vereine v INNER JOIN abkuerzungen a 
  ON a.abkuerzung = v.runde
Ich wundere mich immer, wieso auf die JOINs so gerne verzichtet wird...

Gruß, Philipp

Verfasst: 22.02.2003 11:52
von Pyramide
Ich finde JOIN eigentlich auch besser, weil man da a) definieren kann, welches die dominante Tabelle ist (LEFT JOIN / RIGHT JOIN) und b) leichter erkennt, daß es kein Filter, sondern eine Beziehung ist. Aber seit ich mal für Oracle schreiben musste (der kennt JOIN nicht) habe ich mir angewöhnt, Beziehungen mit WHERE zu schreiben.

In diesem Fall würde ich die Abfrage so wie du schreiben, aber mit LEFT JOIN, weil dann ein Verein auch angezeigt wird, wenn die Beziehung runde->abkuerzung nicht aufgelöst werden kann (weil die Abkürzung nicht eingetragen ist)