Avatar billede challenge Praktikant
05. oktober 2005 - 20:02 Der er 9 kommentarer og
1 løsning

Replace af tekst

Hejsa.

Jeg ved godt at der lige er oprettet et spørgsmål om dette emne, men det kunne desværre ikke hjælpe mig (kan godt være det bare er mig der er dum...)
Altså:
Jeg skal have udskiftet alt tekst, i en row, der hedder "hej med dig" med "<a href="minside.dk">hej med dig</a>"

Jeg har ingen idé om jeg skal gøre det i mit php script, eller om det er noget der kan sættes i min phpmyadmin.

Kan i hjælpe?

mvh.

Challenge
Avatar billede jaw Nybegynder
05. oktober 2005 - 20:05 #1
Hvis det altid er "hej med dig", så:
str_replace("hej med dig", "<a href='minside.dk'>hej med dig</a>", $row['feltet']);
Avatar billede arne_v Ekspert
05. oktober 2005 - 20:05 #2
UPDATE tabelnavn SET feltnavn = REPLACE(feltnavn,'hej med dig','<a href="minside.dk">hej med dig</a>')

hvis det er en variabel tekst så er det straks meget mere vanskeligt
Avatar billede jaw Nybegynder
05. oktober 2005 - 20:07 #3
Hov, så ikke det var under mysql, beklager...
Avatar billede arne_v Ekspert
05. oktober 2005 - 20:08 #4
spørger skrev "om jeg skal gøre det i mit php script" så du er på den rigtige bane
Avatar billede challenge Praktikant
05. oktober 2005 - 20:21 #5
Tak for svarene!

Men der er nogle problemer...

min kode er som følger:

<?
  $db = mysql_connect("localhost", "user", "pass");
  mysql_select_db("db", $db);
$foresp = mysql_query("SELECT id, tekst FROM table ORDER BY id DESC LIMIT 0, 99");
while($data = mysql_fetch_array($foresp)){
?>
<tr>
<td width="210" class="spec-menu-5">&nbsp;<? echo $data["tekst"]; ?></td>
</tr>
<?
}
?>

Først prøvede jeg din, jaw:

Jeg satte din tekst ind efter "DESC 0,99", men jeg får fejl "not a supplyed argumant"

Derefter prøvede jeg arne v's metode:

Satte teksten ind efter "while($data = mysql_fetch_array($foresp)){"
og før "while($data = mysql_fetch_array($foresp)){"

Så prøvede jeg at indsætte det efter "echo $data["tekst"];"

Men det giver intet resultat.

Hvad gør jeg galt?
Avatar billede jaw Nybegynder
05. oktober 2005 - 20:23 #6
Prøv det her:
<td width="210" class="spec-menu-5">&nbsp;<? echo str_replace("hej med dig", "<a href='minside.dk'>".$data["tekst"]."</a>"; ?></td>
Avatar billede jaw Nybegynder
05. oktober 2005 - 20:25 #7
Nej, det blevet noget møg, sådan her:
<td width="210" class="spec-menu-5">&nbsp;<? echo str_replace("hej med dig", "<a href='minside.dk'>hej med dig</a>", $data["tekst"]); ?></td>
Avatar billede challenge Praktikant
06. oktober 2005 - 22:00 #8
Jotak, det virker perfekt!
Tak ska du have!

Ikke for at være besværelig, men kan jeg replace flere tekster? (JEG HAR PRØVET MED && og ||, men virker ikke...)

Endnu engang tak :)
Avatar billede jaw Nybegynder
06. oktober 2005 - 22:03 #9
Det kan du godt, men så kommer du ikke over at lave et par hop, for i een omgang får du svært ved det.

Men en mulighed kan være såldes:

$tekst = str_replace("a", "b", $row['tekst']);
$tekst = str_replace("c", "d", $tekst);

osv. osv. Og så udskrive $tekst i stedet for $row['tekst']. Forståeligt?

Og selv tak :)
Avatar billede challenge Praktikant
07. oktober 2005 - 14:15 #10
Det er forståeligt, takker :)
Og point til dig :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester