Antworten auf deine Fragen:
Neues Thema erstellen

mySQL Daten Auslesen und Umwandeln?

Daniel_Knecht

PSD-Mitglied

Hallo,
ich habe ein kleines Registrationsscript welches u.a. die Sprache in die mySQL DB als Wort "german" oder "english" Speichert (['language']). Beim Auslesen in der Memberlist soll jedoch das Wort "german" als zb. img1.png und das Wort "english" als zb. img2.png angezeigt werden. Könnt ihr mir evtl. sagen wie ich das am einfachsten Realisiere?

PHP:
while($row = mysql_fetch_assoc($result))
	{
		echo "<div id='listContentMid1'>";
		echo "<table width='100%' border='0'>";
		echo "<tr>";
		echo "<td width='20%'>" . $row['ingamename'] . "</td>";
		echo "<td width='20%'>" . $row['language'] . " " . $row['location'] . "</td>";
		echo "<td width='20%'>" . $row['level'] . "</td>";
		echo "<td width='20%'>" . $row['rang'] . "</td>";
		echo "<td width='20%'>" . $row['membersince'] . "</td>";
		echo "<!--<td width='20%' align='right'>0 <b>RP</b></td>-->";
		echo "</tr>";
		echo "</table>";
		echo "</div>";
	}
 

owieortho

Aktives Mitglied

AW: mySQL Daten Auslesen und Umwandeln?

Ich würde die Sprache erst gar nicht verbos abspeichern, sondern schon im Formular zur Datenerfassung jeder Sprache einen Wert zuweisen (dtsch. = 1, engl. = 2, etc.). Dann brauchst Du bei Deiner Ausgabe nur noch:
PHP:
  echo "<td width='20%'><img src=\"img" . $row['language'] . ".png\" /> " . $row['location'] . "</td>";
Das ist dann auch sehr flexibel, für jede weitere Sprache muss nur ein entsprechendes Bild hinterlegt werden und im Formular eine weitere Auswahlmöglichkeit eingefügt werden. Das geht dann schneller, als mit einer weiteren if-Schleife.

Viel Erfolg
O.
 

Duddle

Posting-Frequenz: 14µHz

AW: mySQL Daten Auslesen und Umwandeln?

Das ist dann auch sehr flexibel
Zumindest für diesen einen Fall, was im Endeffekt nicht besonders viel Flexibilität zeigt.

Wenn er im nächsten Schritt abhängig von der Sprache bspw. einen anderen Text ausgeben will, steht dann im Quelltext
PHP:
if($lang == 1) { 
  echo "foo";
}
statt
PHP:
if($lang == "german") { 
  echo "foo";
}
Ich würde da die zweite Variante bevorzugen.


Duddle
 
Zuletzt bearbeitet:

Isometric

Powerproster

AW: mySQL Daten Auslesen und Umwandeln?

@duddle: Was owieortho vorgeschlagen hat, funktioniert doch auch, wenn man die Sprache als String abspeichert. Oder nicht?
PHP:
  echo "<td width='20%'><img src=\"img" . $row['language'] . ".png\" /> " . $row['location'] . "</td>";
Dann heißen die Bilder eben "german.png" und "english.png" statt "1.png" und "2.png".
 

Daniel_Knecht

PSD-Mitglied

AW: mySQL Daten Auslesen und Umwandeln?

So funktioniert es wie owieortho es Schrieb... Danke!
PHP:
echo "<td width='20%'><img src='img/icons/". $row['language'] .".png' width='16' height='11' /> ". $row['location'] ."</td>";

Ich lasse die Sprache nun als entweder "de", "en" etc. in der DB Speichern. Die kleinen Fähnchen heißen logischerweise "de.png", "en.png" etc.

Edit: habe aber ein problem mit dem "if" jetzt...
Hier zb. für den Rang des Users... in der DB lasse ich das alles über Englische Wörter machen (gehört sich denk ich einfach so) nun möchte ich aber die Wörter in Deutsch angezeigt bekommen was aber nicht klappt.

PHP:
if ($rang == "member") {
			echo "<td width='20%'>Mitglied</td>";
		} else {
			echo "<td width='20%'>nix...</td>";
		}

Ich bekomme nur "nix..." Ausgegeben was ich zum Test reingeschrieben habe. die variable $rang gibt es und die User in der DB haben auch in der Tabelle "member" stehen.
 
Zuletzt bearbeitet:

Duddle

Posting-Frequenz: 14µHz

AW: mySQL Daten Auslesen und Umwandeln?

die variable $rang gibt es
... und es steht etwas anderes als "member" drin. Was drin steht und warum es drin steht, passiert ausserhalb des gezeigten Codes.
Was owieortho vorgeschlagen hat, funktioniert doch auch, wenn man die Sprache als String abspeichert. Oder nicht?
Natürlich funktioniert es, da habe ich mich etwas ungenau ausgedrückt. Ich wollte nur darauf anspielen, dass das Symbol "german" verständlicher ist als das Symbol "1".


Duddle
 

msa1989

Bin da

AW: mySQL Daten Auslesen und Umwandeln?

Dein Code ist prinzipiell nicht verkehrt, nur kann es sein, dass in der Variable noch Leerzeichen oder sonstiges gespeichert sind.
Schau dir mal deine Datenbank genauer an. Ist die Kollation UTF-8 oder latin1 oder oder. Hier kanns schonmal Probleme geben wenn du die Strings aus der Datenbank holst bzw. speicherst.

Probier mal die Variablen mit utf8_encode() aus der Tabelle zu holen.

Eventuell hast du auch noch Zeilenumbrüche in deinem String. Ist mir auch schonmal passiert dass ich beim Speichern aus versehen immer einen Zeilenumbruch mitgespeichert hab. Diese kannst du mit
PHP:
$string = str_replace(array("\r\n", "\r", "\n", "\n\n"), '', $string);
sicherheitshalber entfernen.
 

Isometric

Powerproster

AW: mySQL Daten Auslesen und Umwandeln?

Ich bekomme nur "nix..." Ausgegeben was ich zum Test reingeschrieben habe. die variable $rang gibt es und die User in der DB haben auch in der Tabelle "member" stehen.
Dann lass dir doch einfach ausgeben, was in $rang drinsteht

PHP:
if ($rang == "member") {
            echo "<td width='20%'>Mitglied</td>";
        } else {
            echo "<td width='20%'>Mist...<br />Rang: ". $rang . "</td>";
        }
 

Daniel_Knecht

PSD-Mitglied

AW: mySQL Daten Auslesen und Umwandeln?

Das hab ich schon geprüft. da ist weder ein Leerzeichen drin nch ein Zeilenumbruch noch irgend was anderes. Die Kollation ist "utf8_unicode_ci".

@Isometric: Da steht nichts drin das isses ja. Habe mir wie du gesagt hast dne Rang mal ausgeben lassen. Dabei raus kommt:
 

Duddle

Posting-Frequenz: 14µHz

AW: mySQL Daten Auslesen und Umwandeln?

Dein Fehler passiert ausserhalb des gezeigten Quellcodes.
Wenn ich in meine Datenbank schaue steht bei rang "member" drin.
So wie du es formulierst bin ich mir unsicher ob du mglw. denkst, dass Spalten in einer Datenbanktabelle automatisch in gleichnamigen Variablen übernommen werden - was aber nicht der Fall ist. Du musst zeigen, was du vor dem if machst, sonst kann nur geraten werden.


Duddle
 

Daniel_Knecht

PSD-Mitglied

AW: mySQL Daten Auslesen und Umwandeln?

Das ist jetzt meine komplette Datei worin die Mitglieder aufgelistet werden sollen:

PHP:
<?php	
	mysql_select_db($database);
	$result = mysql_query("SELECT * FROM rrc_users ORDER BY ID");
	
	echo "<div id='ContentHead'>&raquo; Mitgliederliste</div>
	<div id='listContentMid2'>
	<table width='100%' border='0'>
		<tr>
			<td width='20%'><b>InGame Name:</b></td>
			<td width='20%'><b>Sprache/Wohnort:</b></td>
			<td width='20%'><b>Level Bereich:</b></td>
			<td width='20%'><b>Position (Rang):</b></td>
			<td width='20%'><b>Mitglied seit:</b></td>
		</tr>
	</table>
	</div>";
	
	while($row = mysql_fetch_assoc($result))
	{
		echo "<div id='listContentMid1'>";
		echo "<table width='100%' border='0'>";
		echo "<tr>";
		echo "<td width='20%'>". $row['ingamename'] ."</td>";
		echo "<td width='20%'><img src='img/icons/". $row['language'] .".png' width='16' height='11' /> ". $row['location'] ."</td>";
		echo "<td width='20%'>". $row['level'] ."</td>";
		if ($rang == "member") {
			echo "<td width='20%'>Mitglied</td>";
		} else {
			echo "<td width='20%'>Mist... Rang: ". $rang ."</td>";
		}
		echo "<td width='20%'>". $row['membersince'] ."</td>";
		echo "</tr>";
		echo "</table>";
		echo "</div>";
	}
?>
 

msa1989

Bin da

AW: mySQL Daten Auslesen und Umwandeln?

Wenn ich mir deinen Code so anschaue, dann wundert es mich nicht, dass $rang leer ist. Hier fehlt sowas wie:

$rang = $row['rang']
 

Daniel_Knecht

PSD-Mitglied

AW: mySQL Daten Auslesen und Umwandeln?

Ah stimmt :kopfpatsch:
Aber ich hab es durch deinen Post gerade noch anders versucht und siehe da es klappt auch so:
PHP:
if ($row['rang'] == "member") {
			echo "<td width='20%'>Mitglied</td>";
		} elseif ($row['rang'] == "...") { ...
 

Isometric

Powerproster

AW: mySQL Daten Auslesen und Umwandeln?

Hier zb. für den Rang des Users... in der DB lasse ich das alles über Englische Wörter machen (gehört sich denk ich einfach so) nun möchte ich aber die Wörter in Deutsch angezeigt bekommen was aber nicht klappt.
Warum steht der Eintrag in der Datenbank eigentlich in Englisch, wenn du ihn für die Ausgaben immer in Deutsch brauchst?
 

Daniel_Knecht

PSD-Mitglied

AW: mySQL Daten Auslesen und Umwandeln?

Später brauche ich ihn auch in mehreren Sprachen. Aber Allgemein ist bei mir das Scripten, mySQL etc. immer in Englisch das ist irgendwie einfach so ;)
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Keine Mitglieder online.

Statistik des Forums

Themen
118.635
Beiträge
1.538.449
Mitglieder
67.556
Neuestes Mitglied
Ggirl
Oben