Avatar billede gjessing Nybegynder
13. maj 2008 - 09:33 Der er 13 kommentarer og
1 løsning

søg og erstat i phpmyadmin

Hej
jeg vil søge en tekst. eks www.ps3.dk?id=45 og erstatte den med 'www.affiliant.dk&url='www.ps3.dk.. og så da alt det der står bagved som kan være forskelligt.eks kan id være 200 eler andet
jeg ville gøre det i phpmyadmin og bruge sql funktionen
Avatar billede johny Nybegynder
13. maj 2008 - 11:36 #1
Nu ved vi jo ikke hvad der står i din db. F.eks. er alle rækker i den kolonne et link, eller vil du forsøge at finde links inde i længere strings?

For hvis du har links'ne stående i en kolonne for sig selv, er det bare at sige:
UPDATE (tabel) SET (kolonne)='\'www.affiliant.dk&url=\''+(kolonne)+'\''
Avatar billede gjessing Nybegynder
13. maj 2008 - 12:02 #2
Jeg tror du har fat i noget der Johny - jeg tester det lige
Avatar billede gjessing Nybegynder
13. maj 2008 - 12:03 #3
men jeg ville også søge efter noget hvordan kan jeg gøre det
Avatar billede johny Nybegynder
13. maj 2008 - 12:16 #4
GET * FROM (tabel) WHERE (kolonne) LIKE '%(søgetekst)%' ?

Men igen, hvad er det du vil finde? En række hvori den tekst findes, eller er det en bid af teksten du vil have fat i, eller hvad er det helt præcist du er efter?
Avatar billede gjessing Nybegynder
13. maj 2008 - 13:17 #5
Altså alla sådan her.?
GET * FROM (tabel) WHERE (kolonne) LIKE '%(søgetekst)%' UPDATE (tabel) SET (kolonne)='\'www.affiliant.dk&url=\''+(kolonne)+'\''
Jeg vil søge efter en string som altid starter med www.ps3.dk/en hel masse andre parameter som skal bevares.
Avatar billede johny Nybegynder
13. maj 2008 - 15:25 #6
Hmm, jeg er ikke bekendt med at man kan gå ind i dele af en streng med SQL, men kun søge efter om den rent faktisk indeholder en del streng.

Er der en grund til at du ikke vil løse det på en overliggende programmeringsflade som PHP?
Avatar billede gjessing Nybegynder
13. maj 2008 - 15:38 #7
det skal ikek være nogle hemlighed at de har med siden www.ps3.dk at gøre. det er fordi affil programet er ændret så der skal være et link foran alle de links jeg har derinde.links føre jo til spil på coolshops hjemmeside. derfor er det en operation der skal køres 1 gang og ikke mere
Avatar billede michael_stim Ekspert
13. maj 2008 - 15:45 #8
Mon ikke det er replace du skal have fat i?
UPDATE tabel SET url=REPLACE(url,'www.url.dk','www.nyUrl.dk')
Avatar billede johny Nybegynder
13. maj 2008 - 22:28 #9
Problemet er jo, at det ikke er noget specifikt han skal erstatte, men en hel url med varierende parametre, man kan vel ikke smide en RegEx ind i det?
Avatar billede gjessing Nybegynder
13. maj 2008 - 22:42 #10
Hej Guys
jeg har fundet ud af det med lidt hjælp her og der. jeg lavede en PHP fil

$query = mysql_query("select * from table where link like '%www.coolshop.dk%'");
while($row = mysql_fetch_array($query)) {

mysql_query("update table set link = 'http://clk.tradedoubler.com/click?p=64473&a=1500633&g=17324478?url=".$row[link]."' WHERE id = $row[id]");


}
Avatar billede gjessing Nybegynder
13. maj 2008 - 22:42 #11
Men Johny
du var tættes på så kom med et svar så lukker vi den :D
Avatar billede arne_v Ekspert
14. maj 2008 - 04:04 #12
Umiddelbart ville jeg da mene at:

UPDATE dintabel
SET link = CONCAT('http://clk.tradedoubler.com/click?p=64473&a=1500633&g=17324478?url=', link)
WHERE link LIKE '%www.coolshop.dk%'

burde gøre det samme.
Avatar billede johny Nybegynder
14. maj 2008 - 10:41 #13
Ja, og siden linket var en streng i sig selv, burde den løsning jeg kom med først også virke. Med de data du kom med, må den færdige udgave så se sådan ud:

UPDATE table
SET link='http://clk.tradedoubler.com/click?p=64473&a=1500633&g=17324478?url='+link
WHERE link LIKE '%www.coolshop.dk%'

Den burde vel også gøre det?
Avatar billede arne_v Ekspert
14. maj 2008 - 15:25 #14
MySQL bruger CONCAT og ikke + til at konkatanere strenge.
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