Smiley's code in dbase, hoe replacen?

Pagina: 1
Acties:

  • Life-is-party
  • Registratie: Oktober 2000
  • Laatst online: 14-02-2023
Oké.
Ik heb een databaseje met al mijn smileys erin (niet die van T.net)
dus
code:
1
2
3
4
5
____________________________
|ID | Code | Img        |
|---|------|---------------|
| 1 | :-)  | ./i/smile.gif |
|___|______|_______________|

Nu wil ik dus dat hij, als er in de tekst
:-) dit staat, dat hij die replace door het volgende
[img]"./i/smile.gif"[/img]

Ik weet wel hoe ik dit moet doen los
code:
1
$bericht = eregi_replace(":-)","[img]\"./i/smile.gif\"[/img]",$bericht);

Maar ik vind het een beetje veel werk om dit voor alle smiley's te doen.
Hoe zou ik dit met een Query kunnen doen.
(ps. PHP & MySQL)
[code]

Acer TM661LMi - Intel Centrino 1,4 Ghz - 512mb ram - DVD-RW


Verwijderd

Een query om alle replacements in te lezen. En dan voor iedere row een str_replace (sneller dan eregi). Ik zie het probleem niet echt, behalve als je niet goed begrijpt wat mysql_query, mysql_fetch_array en str_replace doen.

  • Bigs
  • Registratie: Mei 2000
  • Niet online
Kun je niet die tabel die je hierboven laat zien in een (associative) array zetten en dan gewoon met een klein loopje (heel de array doorlopen) een aantal queries uitvoeren? Dus dat je eerst alle :-) vervangt en dan alle :-P etc. Beetje omslachtig, maar wel de makkelijkste manier denkik.

Ik snap trouwens niet helemaal of je die vervanging ook weer terug in de database wil zetten. Ik ga daar van uit omdat je het in een query wil doen.

  • MAZZA
  • Registratie: Januari 2000
  • Laatst online: 09-09 15:29

MAZZA

Barbie is er weer!

Waarom replace je ze niet VOOR dat je ze database ingooit :?

  • Life-is-party
  • Registratie: Oktober 2000
  • Laatst online: 14-02-2023
Op dinsdag 23 oktober 2001 17:35 schreef Zef het volgende:
Een query om alle replacements in te lezen. En dan voor iedere row een str_replace (sneller dan eregi). Ik zie het probleem niet echt, behalve als je niet goed begrijpt wat mysql_query, mysql_fetch_array en str_replace doen.
Het gaat er dus om dat hij een stukkie code uit de database haalt (bv. $recrow[text])
en in dat bericht staan staan dus die smiley's code.

Hieronder het stukkie code waarmee ik $recrow[text] uit de database haal.
PHP:
1
2
3
4
5
6
7
8
9
<?
$recQuery = "SELECT * FROM reacties WHERE IDa=$id ORDER BY datum , tijd ";
$resultrec = mysql_db_query($dbname, $recQuery);

while ($recrow = mysql_fetch_array($resultrec)) {

echo" Reactie gepost door ".$userrow["username"]." @ ".$recrow["datum"]." om ".$recrow["tijd"]."
<BR>".$recrow["text"]."";
?>

Nou die moeten alle smileycode's in $recrow[text] vervangen worden dóór htmltag die in de database staat.

Acer TM661LMi - Intel Centrino 1,4 Ghz - 512mb ram - DVD-RW


  • Life-is-party
  • Registratie: Oktober 2000
  • Laatst online: 14-02-2023
Op dinsdag 23 oktober 2001 17:53 schreef MAZZA het volgende:
Waarom replace je ze niet VOOR dat je ze database ingooit :?
Maakt dat uit dan.

Het gaat erom hoe krijg ik ze het simpelste uit de tabel en dat ze bruikbaar worden (combinatie code-imgfile) om alles te replacen

Acer TM661LMi - Intel Centrino 1,4 Ghz - 512mb ram - DVD-RW


  • RobbertC
  • Registratie: September 2000
  • Laatst online: 21:24
Maakt dat uit dan.
Ja, dat maakt uit. Als het meteen in de database staat, hoeft er maar 1 keer een regex uitgevoerd te worden. Wanneer je bij elke view een regex uit moet voeren, is dat zwaarder voor de server.

Bij niet zo veel bezoekers maakt het natuurlijk niet echt veel uit.

Nadeel is dan wel dat je de voor een edit functie wel alles moet terug "regexen". Vooral met de nl2br functie is dat niet handig.

edit:

Om antwoord te geven op je echte vraag:
[php]<?
$result = mysql_db_query ("$mysql_database","SELECT * FROM smiles");

while ($row = mysql_fetch_array ($result)){

$bericht = eregi_replace("$row[smilecode]","[img]\".$row[plaats-smilie]">",$bericht); } ?[/img][/php]

  • Life-is-party
  • Registratie: Oktober 2000
  • Laatst online: 14-02-2023
Op dinsdag 23 oktober 2001 18:21 schreef RobbertC het volgende:

[..]

Ja, dat maakt uit. Als het meteen in de database staat, hoeft er maar 1 keer een regex uitgevoerd te worden. Wanneer je bij elke view een regex uit moet voeren, is dat zwaarder voor de server.

Bij niet zo veel bezoekers maakt het natuurlijk niet echt veel uit.

Nadeel is dan wel dat je de voor een edit functie wel alles moet terug "regexen". Vooral met de nl2br functie is dat niet handig.

edit:

Om antwoord te geven op je echte vraag:
[php]<?
$result = mysql_db_query ("$mysql_database","SELECT * FROM smiles");

while ($row = mysql_fetch_array ($result)){

$bericht = eregi_replace("$row[smilecode]","[img]\".$row[plaats-smilie]">",$bericht); } ?[/img][/php]
Tnx!!!! ik was er zelf al achter dat het inderdaad handiger is om andersom te doen! bedankt.

En ik ben door de stomheid der simpelheid geslagen. Ik had het zelf kunnen verzinnen natuurlijk :p zo simpel.... oké tnx

Acer TM661LMi - Intel Centrino 1,4 Ghz - 512mb ram - DVD-RW

Pagina: 1