Smiliecode direkt von der MySQL Datenbank auslesen?

jackie05

Erfahrenes Mitglied
Hallo,
ist es vieleicht möglich in einem Array eine weitere schleife mit einzubauen?
z:B. eine While schleife zum auslesen von MySQL Datensätze?
PHP:
  $smilies = array(
  ":D" => "<img src='smilies/icon_biggrin.gif'>",
  ":)" => "<img src='smilies/icon_smile.gif'>",
  ":(" => "<img src='smilies/icon_sad.gif'>",
  ":o" => "<img src='smilies/icon_surprised.gif'>",
  ":shock:" => "<img src='smilies/icon_eek.gif'>",
  ":?" => "<img src='smilies/icon_confused.gif'>",
  ":8):" => "<img src='smilies/icon_cool.gif'>",
  ":lol:" => "<img src='smilies/icon_lol.gif'>",
  ":x" => "<img src='smilies/icon_mad.gif'>",
  ":P" => "<img src='smilies/icon_razz.gif'>",
  ":oops:" => "<img src='smilies/icon_redface.gif'>",
  ":cry:" => "<img src='smilies/icon_cry.gif'>",
  ":evil:" => "<img src='smilies/icon_evil.gif'>",
  ":twisted:" => "<img src='smilies/icon_twisted.gif'>",
  ":roll:" => "<img src='smilies/icon_rolleyes.gif'>",
  ":wink:" => "<img src='smilies/icon_wink.gif'>",
  ":!:" => "<img src='smilies/icon_exclaim.gif'>",
  ":?:" => "<img src='smilies/icon_question.gif'>",
  ":idea:" => "<img src='smilies/icon_idea.gif'>",
  ":arrow:" => "<img src='smilies/icon_arrow.gif'>",
  ":|" => "<img src='smilies/icon_neutral.gif'>",
  ":mrgreen:" => "<img src='smilies/icon_mrgreen.gif'>",
  );

Ich möchte die Smiliecodes und die URL direkt von der MySQL Datenbank auslesen, hab hier im Forum schon gesucht, aber leider nix gefunden was mein problem lösen könnte.
Ich habe das auch anderst versucht, also ohne schleife, da wird aber nur der letzte Smiliecode in einer URL umgewandelt.
Ich wäre euch sehr dankbar, wenn ihr mein problem lösen könnt.

MfG
 
Probiere es mal so:

PHP:
$dbAbfrage = mysql_query("SELECT Smiliecode, Url FROM Datenbank");
while($dbAntwort = mysql_fetch_assoc($dbAbfrage))
{
  $smilies[$dbAntwort['Smiliecode']] = $dbAntwort['Url'];
}

Jetzt hast du einen array der so aussieht, wie du es dir vorstellst.
Siehe dazu:

PHP:
print_r($smilies);
 
Danke Dir.
So ähnlich hatte ich es auch schon, aber ich frag ja das Textfeld ab auf Smiliecodes, z.B.
Hallo ;.)
wie gehts :)

sowas steht z.B. in einem Textarea und jetzt möchte ich mit einer schleife prüfen, ob dieser Smiliecode im Text vorhanden ist und diese von der MySQL Tabelle smilies prüfen, ob dieser vorhanden ist und dann dem entsprechendem link setzen, z.B.

PHP:
$sql = "SELECT * FROM nachrichten WHERE id='".$_GET_['id']."'";
$result = mysql_query($sql);
$row = mysql_fetch_object($result);
$nachricht = $row->nachricht;
 
$sql2 = "SELECT * FROM smilies";
$result2 = mysql_query($sql2);
$row2 = mysql_fetch_object($result2);
$nachricht = str_replace("$row2->smilie_code","$row2->smilie_url", $nachricht);
 
echo $nachricht;

wenn ich $row->2->smilie_code in ;-) ersetze und $row2->smilie_url in irgeneinem URL ersetze, dann geht das.
Ich muss das aber mit einer Schleife lösen, es geht irgendwie nicht mit der while schleife.
Habt ihr vieleicht eine idee wie ich das machen könnte?

MfG
 
PHP:
$sql = "SELECT * FROM nachrichten WHERE id='".$_GET_['id']."'";
$result = mysql_query($sql);
$row = mysql_fetch_object($result);
$nachricht = $row->nachricht;
 
$sql2 = "SELECT * FROM smilies";
$result2 = mysql_query($sql2);
while($row2 = mysql_fetch_object($result2))
{
  $nachricht = str_replace($row2->smilie_code,$row2->smilie_url, $nachricht);
}
 
echo $nachricht;

So auch nicht?
Bitte das nächste mal auch schreiben, was nicht geht. Also werden die Smilies nicht ersetzt oder kommt ein Fehler. Das macht das suchen und auch das erständnis zum Ganzen für den Helfenden einfacher :)
 
Danke Dir.
Dein Code funktioniert sehr gut, ich hatte das ja vorher genauso, nur hatte ich bei str_replace die "" benutzt also zwischen den "" habe ich $row........ rein geschrieben, die "" braucht man dort ja nicht.
Danke für die Hilfe.

EDIT: Noch eine Frage und zwar wenn ich es so mache:
PHP:
$nachricht = str_replace($row2->smilie_code,"<img src='".$row2->smilie_url."'", $nachricht);
Dann wird nur ein Smilie angezeigt, obwohl es mehrere sind die eingetragen wurden.
Wenn ich <img> weg lasse, dann sehe ich die URL von den Smilie die ich eingetragen habe.
Wieso funktioniert das nich?

EDIT: Sry, war mein fehler, ich hatte vergessen <img> mit der spitzen klammer abzuschließen.

MfG
 
Zuletzt bearbeitet:
Zurück