str_replace anwenden bei Datenbankausgabe?

DjRay

New Member
Guten Morgen,

ich möchte gerne das das was mein Script ausgibt von meiner SQL Datenbank, durch ein Bild ersetzt wird.
str_replace ist kein Problem aber wie gehe ich vor bei einer Datenbankausgabe?

Danke im vorraus
DjRay
 
Uhm genau gleich? Schliesslich sollte die Ausgabe ja ein String sein den du in einer Funktion umbasteln kannst?
PHP:
$row = mysqli_fetch_array($query,MYSQLI_ASSOC);
echo str_replace("bla","blub",$row['value']);
 
Dumm gefragt ich weiss aber wie wende ich das bei mir an zb für 14mo??

Hier mal mein Code wäre echt dankbar:

Code:
<?php
  mysql_connect("xxx", "xxx", "xxxx");
  mysql_select_db("xxxx");
  $ergebnis = mysql_query("SELECT * FROM sendeplan3 ORDER BY ID")or die(mysql_error());
$i = 0;
$zeit1 = "12-14";
$zeit2 = "14-16";
$zeit3 = "16-18";
$zeit4 = "18-20";
$zeit5 = "20-22";
$zeit6 = "22-0";
echo '<table border="1"><tr>';
echo '<th>' . Uhrzeit . '</th>';
echo '<th>' . Montag . '</th>';
echo '<th>' . Dienstag . '</th>';
echo '<th>' . Mittwoch . '</th>';
echo '<th>' . Donnerstag . '</th>';
echo '<th>' . Freitag . '</th>';
echo '<th>' . Samstag . '</th>';
echo '<th>' . Sonntag . '</th>';
echo '</tr>';
while ($zeile = mysql_fetch_assoc($ergebnis)){
echo '<tr><td>' . $zeit2 . '</td><td>' . $zeile['14mo'] . '</td><td>' . $zeile['14di'] . '</td><td>' . $zeile['14mi'] . '</td><td>' . $zeile['14do'] . '</td><td>' . $zeile['14fr'] . '</td><td>' . $zeile['14sa'] . '</td><td>' . $zeile['14so'] . '</td>';
echo '<tr><td>' . $zeit3 . '</td><td>' . $zeile['16mo'] . '</td><td>' . $zeile['16di'] . '</td><td>' . $zeile['16mi'] . '</td><td>' . $zeile['16do'] . '</td><td>' . $zeile['16fr'] . '</td><td>' . $zeile['16sa'] . '</td><td>' . $zeile['16so'] . '</td>';
echo '<tr><td>' . $zeit4 . '</td><td>' . $zeile['18mo'] . '</td><td>' . $zeile['18di'] . '</td><td>' . $zeile['18mi'] . '</td><td>' . $zeile['18do'] . '</td><td>' . $zeile['18fr'] . '</td><td>' . $zeile['18sa'] . '</td><td>' . $zeile['18so'] . '</td>';
echo '<tr><td>' . $zeit5 . '</td><td>' . $zeile['20mo'] . '</td><td>' . $zeile['20di'] . '</td><td>' . $zeile['20mi'] . '</td><td>' . $zeile['20do'] . '</td><td>' . $zeile['20fr'] . '</td><td>' . $zeile['20sa'] . '</td><td>' . $zeile['20so'] . '</td>';
echo '<tr><td>' . $zeit6 . '</td><td>' . $zeile['22mo'] . '</td><td>' . $zeile['22di'] . '</td><td>' . $zeile['22mi'] . '</td><td>' . $zeile['22do'] . '</td><td>' . $zeile['22fr'] . '</td><td>' . $zeile['22sa'] . '</td><td>' . $zeile['22so'] . '</td>';

 
    if (6 == ($index % 7)) {
        echo '</tr><tr>';
    }
 
    $index++;
}
echo '</tr></table>';
  
  mysql_close();
?>
 
Ich hoffe dass 'Uhrzeit','Montag','Dienstag', ... (Zeilen 13-20) mit define("Uhrzeit","Die Uhrzeit"); deklarierte Konstanten sind, in diesem Skriptteil zumindest sind sie naemlich nicht deklariert...
Sollte es allerdings als Uebersetzung fungieren (was der einzige mir einfallende Grund waere den Text in eine Konstante zu speichern statt direkt ab zu rufen) solltest du aus performance-Gruenden eher auf ein Variablen-Array statt Konstanten zurueckgreifen.

Kleine Anmerkung: nimm -sofern moeglich- als Extension mysqli statt mysql da diese einige erweiterten Funktionen bietet und auch bei mysqli_escape_string() einen richtig escaped String zurueckliefert was mysql nur bei mysql_real_escape_string() macht.

So genug OT, zum Problem:

in der Annahme dass der Wert "Blablahalloblabla ist" und als Ausgabe "blabla<BILD>blabla" erwuenscht ist:
echo '...'.str_replace("hallo","<BILD>",$zeile['14mo']).'...';

Solltest du aber nur zb ein Tick bei Sendung oder ein Cross bei Sendestille wuenschen loest man das anders :)
Am Anfang der Datei:
PHP:
$tick = '<img src='tick.jpg'>';
$cross = '<img src='cross.jpg'>';

Und in der while-Schleife: ( in der Annahme dass in der 14-Mo Variable 0 fuer Nicht-Sendung und 1 fuer Sendung steht)
PHP:
echo '...' . ($zeile['14mo'] ? $tick : $cross ) . '...';
(0 wird zu false waehrend 1 zu true wird, das ganze dann gepaart mit einem ternarischen Operator (einer komprimierten if-else Abfrage) und voila :) )
 
Back
Top