Update & Replace

Matlox

Mitglied
Hallo Leute,
bin wieder ein stückle weitergekommen, hab mich allerdings noch nicht mit dem thema Update und Replace beschäftigt, brauche nun etwas Hilfe für mein Cms :)

Folgendes, ich will das überall in jedem Text z.b. :-) :-D x-D als Bilddatein (Smylies) ersetzt werden, dafür habe ich in der Settings.php Folgenden Code stehen, doch irgendwie funktionierts nich :)

PHP:
	$pfad = "img/smylies/";
	$search = array(
	'xD', 
	':D', 
	'^^', 
	':)', 
	':O', 
	':P', 
	':(', 
	'-.-', 
	';)'); 
	$replace = array(
	'<img src="'.$pfad.'emoticon_evilgrin.png" width="16" height="16" border="0" alt="">',
	'<img src="'.$pfad.'emoticon_grin.png" width="16" height="16" border="0" alt="">',
	'<img src="'.$pfad.'emoticon_happy.png" width="16" height="16" border="0" alt="">',
	'<img src="'.$pfad.'emoticon_smile.png" width="16" height="16" border="0" alt="">',
	'<img src="'.$pfad.'emoticon_surprised.png" width="16" height="16" border="0" alt="">',
	'<img src="'.$pfad.'emoticon_tongue.png" width="16" height="16" border="0" alt="">',
	'<img src="'.$pfad.'emoticon_unhappy.png" width="16" height="16" border="0" alt="">',
	'<img src="'.$pfad.'emoticon_waii.png" width="16" height="16" border="0" alt="">',
	'<img src="'.$pfad.'emoticon_wink.png" width="16" height="16" border="0" alt="">'); 
	$inhalt = str_replace($search, $replace, $inhalt);

dann will ich nochmal auf das UPDATE Thema zurückkommen, ich will ein Einfaches About Scipt dazuschreiben, Mysql Datenbanken besten, index Läuft und Zeigt an, Edit About besteht, Läuft und zeigt mir die Aktuellen News in den Spalten, doch sobald ich Submit Drücke mit den neuen News Datet er nich Up :D, wo liegt der Fehler?!

PHP:
	if (isset($_POST['send'])) 
{ 
	$titel = trim(strip_tags(mysql_real_escape_string($_POST['titel']))); 
	$inhalt = trim(strip_tags(mysql_real_escape_string($_POST['inhalt'])));  

	mysql_query("UPDATE about SET titel = $titel, inhalt = $inhalt");
}
	$sql = "SELECT * FROM about";
	if (!$res_id = mysql_query($sql)) 
	die ('Achtung, SQL-Befehl ist falsch!');
	if (mysql_num_rows($res_id))
	while ($row = mysql_fetch_array($res_id))
{
	$titel = $row['titel']; 
	$inhalt = $row['inhalt']; 

	eval ("dooutput(\"".gettemplate("tpl/admin/about")."\");"); 
}

Danke schonmal für alle Antworten ;)
mfg Matlox
 
PHP:
if (isset($_POST['send'])) 
{ 
    $titel = trim(strip_tags(mysql_real_escape_string($_POST['titel']))); 
    $inhalt = trim(strip_tags(mysql_real_escape_string($_POST['inhalt'])));  

    mysql_query("UPDATE about SET titel = $titel, inhalt = $inhalt");
    echo mysql_error(); // TESTZWECK
}
    $sql = "SELECT * FROM about";
    if (!$res_id = mysql_query($sql)) 
    {
      die ('Achtung, SQL-Befehl ist falsch!');
    }
Soweit so gut, Klammern bei der Bedingung hinzugefügt und mal testweise ein [phpf]mysql_error[/phpf] ausgeben. Die Klammern sind nur übersichtshalber eingefügt.
PHP:
if (mysql_num_rows($res_id))
    while ($row = mysql_fetch_array($res_id))
{
    $titel = $row['titel']; 
    $inhalt = $row['inhalt']; 

    eval ("dooutput(\"".gettemplate("tpl/admin/about")."\");"); 
}
Aber hier fehlen definitiv die Klammern der Bedingung. Aber grundsätzlich ist gefragt, warum gibt es die überhaupt? Wo ist der Zweck?

Zum Smilie Problem:
Gut, dann steht es in der settings.php. Aber wo definierst du $inhalt?
Ist es eine Funktion die du dann beim Anzeigen der Daten aufrufst?
 
Ok zu den Klammern, ich weiß wozu sie da sind, kann auch mit ihnen umgehn, nur versuch ich das CMS komplett für neulinge aufbaun und die Codes so Kurz wie Möglich zu fassen :)

nun zu dem MYSQL Error, kann da nich ganz rauslesen was er will:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Hier! Test' at line 1

und zu den Smylies, $inhalt is bei mir immer der Inhalt, aber das is falsch gedacht oder? :D

Danke dir für ie schnelle Antwort!
 
Jap, ist falsch gedacht ;)

Versuch dein SQL Query mal so:
PHP:
mysql_query("UPDATE `about` SET `titel` = '$titel', `inhalt` = '$inhalt'");

Ich würde die Klammern um jeden Preis setzen, GERADE wenn es um Anfänger geht. Lernen diese einen "dreckigen" Programmierstil wird es viel schwerer dass sie sich später umgewöhnen, als wenn sie es direkt richtig lernen. Es ist einfach eine Frage von Übersicht.

Smilies:

Deklariere es als Funktion:

PHP:
function replace_smilies($inhalt)
{
    $pfad = "img/smylies/";
    $search = array(
    'xD', 
    ':D', 
    '^^', 
    ':)', 
    ':O', 
    ':P', 
    ':(', 
    '-.-', 
    ';)'); 
    $replace = array(
    '<img src="'.$pfad.'emoticon_evilgrin.png" width="16" height="16" border="0" alt="">',
    '<img src="'.$pfad.'emoticon_grin.png" width="16" height="16" border="0" alt="">',
    '<img src="'.$pfad.'emoticon_happy.png" width="16" height="16" border="0" alt="">',
    '<img src="'.$pfad.'emoticon_smile.png" width="16" height="16" border="0" alt="">',
    '<img src="'.$pfad.'emoticon_surprised.png" width="16" height="16" border="0" alt="">',
    '<img src="'.$pfad.'emoticon_tongue.png" width="16" height="16" border="0" alt="">',
    '<img src="'.$pfad.'emoticon_unhappy.png" width="16" height="16" border="0" alt="">',
    '<img src="'.$pfad.'emoticon_waii.png" width="16" height="16" border="0" alt="">',
    '<img src="'.$pfad.'emoticon_wink.png" width="16" height="16" border="0" alt="">'); 
    $inhalt = str_replace($search, $replace, $inhalt);  
    return $inhalt;
}
 
Danke für die Kritik,
Ja ich setze Klammern, doch nicht so oft wies geht sondern eher Dezent :)
es geht bei den CMS eher um Die Funktionen die ich den "Anfängern" lernen will,
das mit About Funktioniert nun, doch die Smylie noch nicht, er gibt immer noch den Text anstatt das Bild aus ?!

danke für alles :)
 
Du musst die Funktion natürlich auch benutzen, dort wo du den Text ausgeben willst:

PHP:
echo $inhalt; # alte Version
echo replace_smilies($inhalt); # so sollte es jetzt aussehen
 
Du musst die Funktion natürlich auch benutzen, dort wo du den Text ausgeben willst:

PHP:
echo $inhalt; # alte Version
echo replace_smilies($inhalt); # so sollte es jetzt aussehen

Ah ok, nur folgendes Problem ich hab das alles in HTML Templates includet, muss ich wie muss ich das nun im PHP code änder wenn es so geschrieben ist?:

PHP:
<?php 
	$sql = "SELECT * FROM about";
	if (!$res_id = mysql_query($sql)) 
	die ('Achtung, SQL-Befehl ist falsch!');
	if (mysql_num_rows($res_id))
	while ($row = mysql_fetch_array($res_id))
{
	$titel = $row['titel']; 
	$inhalt = $row['inhalt']; 

	eval ("dooutput(\"".gettemplate("tpl/about/index")."\");");  
}
	else 
{ 
	eval ("dooutput(\"".gettemplate("tpl/about/noabout")."\");");  
}

?>
 
Zurück