|
| PHP Fra : Simon Jørgensen |
Dato : 12-08-02 18:25 |
|
Jeg har en php side, der henter informationer fra mysql-database. Jeg har
en masse links i den database, der ligger på forskellige urls. Nu skal
alle de urls ændres. Kan man evt. hente et program der kan connecte til
sådanne en database, og så at man kan lave de mange urls ændringer på en
anden måde? Det drejer sig om over 6000 værdier. Så det er ikke lige sådan
at gå igang med via det nuværnde php web interface.
| |
Johan Holst Nielsen (12-08-2002)
| Kommentar Fra : Johan Holst Nielsen |
Dato : 12-08-02 19:22 |
|
Simon Jørgensen wrote:
> Jeg har en php side, der henter informationer fra mysql-database. Jeg har
> en masse links i den database, der ligger på forskellige urls. Nu skal
> alle de urls ændres. Kan man evt. hente et program der kan connecte til
> sådanne en database, og så at man kan lave de mange urls ændringer på en
> anden måde? Det drejer sig om over 6000 værdier. Så det er ikke lige sådan
> at gå igang med via det nuværnde php web interface.
Hva skal de ændres fra og til? Det burde være rimelig nemt at lave selv
:) Hmm giv eksempler på ænderingerne? :=
mvh
Johan
| |
Simon Jørgensen (12-08-2002)
| Kommentar Fra : Simon Jørgensen |
Dato : 12-08-02 21:19 |
|
>> Jeg har en php side, der henter informationer fra mysql-database.
>> Jeg har en masse links i den database, der ligger på forskellige urls
> Hva skal de ændres fra og til? Det burde være rimelig nemt at lave selv
> :) Hmm giv eksempler på ænderingerne? :=
Det er kun selve grund-url der ændres. Ikke filnavne. Fx :
http://blahblah.dk/billedetingnavn01.jpg
til
http://snaksnak.dk/billedetingnavn01.jpg
Men jeg tror at Anders Madsens forslag ikke er helt tosset. Men jeg mener
at have hørt om et Windows program engang med de funktioner jeg søger?
| |
Tinky Winky (13-08-2002)
| Kommentar Fra : Tinky Winky |
Dato : 13-08-02 11:53 |
|
> > Hva skal de ændres fra og til? Det burde være rimelig nemt at lave selv
> > :) Hmm giv eksempler på ænderingerne? :=
>
> Det er kun selve grund-url der ændres. Ikke filnavne. Fx :
>
> http://blahblah.dk/billedetingnavn01.jpg
>
> til
>
> http://snaksnak.dk/billedetingnavn01.jpg
Hvis jeg var dig, ville jeg ændre http://blahblah.dk/billedetingnavn01.jpg
til billedetingnavn01.jpg
Og så ændre i den funktion der returnere URL'en. sådan:
function getPictureUrl ($pictureId) {
$baseURL = ' http://blahblah.dk/';
sql = bla bla .... connect
.... disconnect ......
$url = $baseURL.$row['billede_filnavn'];
return $url;
}
Kan du se ideen? Det er meget godt hvis man ikke "hardcoder" url'er i
databasen på den måde.
Når du skal fjerne det første af URL'en kan du lave en PHP metode, der gør
det.
noget i retning af SELECT * FROM billedtabel WHERE url LIKE %http%
så gem alle id'erne og url'erne. Lav så en metode der finder ud af hvad de
skal hede i stedet for.
Kør så en løkke der updater ændringerne.
| |
Anders Madsen (12-08-2002)
| Kommentar Fra : Anders Madsen |
Dato : 12-08-02 20:39 |
|
Du kan lave en løkke hvori ændringerne eksekveres...
eks. for mySQL:
$result = mysql_query("SELECT * FROM database WHERE url = 'something'");
while($row = mysql_fetch_array($result)) {
if ($row['url'] == $something) {
$newurl = $somethingelse;
mysql_query("UPDATE database SET url = '".$newurl."' WHERE url =
'".$row['url']."'");
}
}
Du skal bare huske, at du ikke kan slette hele rækker på denne måde...
MVH Anders Madsen
"Simon Jørgensen" <mob51641@orangenet.dk> skrev i en meddelelse
news:aj8r1g$5ne$1@sunsite.dk...
> Jeg har en php side, der henter informationer fra mysql-database. Jeg har
> en masse links i den database, der ligger på forskellige urls. Nu skal
> alle de urls ændres. Kan man evt. hente et program der kan connecte til
> sådanne en database, og så at man kan lave de mange urls ændringer på en
> anden måde? Det drejer sig om over 6000 værdier. Så det er ikke lige sådan
> at gå igang med via det nuværnde php web interface.
>
>
| |
Peter Brodersen (13-08-2002)
| Kommentar Fra : Peter Brodersen |
Dato : 13-08-02 02:20 |
|
On Mon, 12 Aug 2002 19:24:51 +0200, "Simon Jørgensen"
<mob51641@orangenet.dk> wrote:
>Kan man evt. hente et program der kan connecte til
>sådanne en database, og så at man kan lave de mange urls ændringer på en
>anden måde?
Følgende MySQL-query burde kunne gøre det for samtlige entries i en
tabel, én gang for alle:
UPDATE tabelnavn SET url =
REPLACE(url,' http://blahblah.dk/','http://snaksnak.dk/');
Erstat "tabelnavn" med navnet på din tabel, og "url" (begge steder)
med feltnavnet, hvor linket står i.
--
- Peter Brodersen
| |
Simon Jørgensen (18-08-2002)
| Kommentar Fra : Simon Jørgensen |
Dato : 18-08-02 22:56 |
|
Hej Peter, jeg totalt grøn hvad angår SQL. Så håber du kan hjælpe.
>> og så at man kan lave de mange urls ændringer på en
> Følgende MySQL-query burde kunne gøre det for samtlige entries i en
Okay! Men du må lige uddybe det en sidste gang for mig :)
> UPDATE tabelnavn SET url =
> REPLACE(url,' http://blahblah.dk/','http://snaksnak.dk/');
>
> Erstat "tabelnavn" med navnet på din tabel, og "url" (begge steder)
> med feltnavnet, hvor linket står i.
Hvad skal jeg skrive helt præcist, hvis mit tabelnavn er:
"mrs_arkiv"
og url der skal ændres fra er :
http://www.blahblah.dk/
og nyt url er :
http://www.snaksnak.dk/
Kan jeg afvikle det i for eksempel PHP MyAdmin eller hvad det hedder.
Tak på forhånd.
| |
Larz (18-08-2002)
| Kommentar Fra : Larz |
Dato : 18-08-02 23:15 |
| | |
Larz (18-08-2002)
| Kommentar Fra : Larz |
Dato : 18-08-02 23:17 |
| | |
Peter Brodersen (18-08-2002)
| Kommentar Fra : Peter Brodersen |
Dato : 18-08-02 23:30 |
|
On Sun, 18 Aug 2002 23:55:30 +0200, "Simon Jørgensen"
<mob51641@orangenet.dk> wrote:
>> Følgende MySQL-query burde kunne gøre det for samtlige entries i en
>Okay! Men du må lige uddybe det en sidste gang for mig :)
Det kunne dog være rart at se hvad, du prøvede med.
>> UPDATE tabelnavn SET url =
>> REPLACE(url,' http://blahblah.dk/','http://snaksnak.dk/');
>>
>> Erstat "tabelnavn" med navnet på din tabel, og "url" (begge steder)
>> med feltnavnet, hvor linket står i.
>
>Hvad skal jeg skrive helt præcist, hvis mit tabelnavn er:
>
>"mrs_arkiv"
Erstat "tabelnavn" med navnet på din tabel. Da din tabel hedder
"mrs_arkiv", er det det, vi skal sætte ind.
Til gengæld nævner du ikke hvad url-feltet i din tabel hedder, så jeg
vil fortsætte med at gå ud fra at det felt hedder "url". Vi får
således:
UPDATE mrs_arkiv SET url =
REPLACE(url,' http://www.blahblah.dk/','http://www.snaksnak.dk/');
>Kan jeg afvikle det i for eksempel PHP MyAdmin eller hvad det hedder.
Ja, for eksempel. Vælg din database, vælg "SQL", og indsæt ovenstående
query.
--
- Peter Brodersen
| |
Simon Jørgensen (18-08-2002)
| Kommentar Fra : Simon Jørgensen |
Dato : 18-08-02 23:41 |
|
> Til gengæld nævner du ikke hvad url-feltet i din tabel hedder, så jeg
> vil fortsætte med at gå ud fra at det felt hedder "url". Vi får
Mit url hedder href (for stort billede) og href_sml (for thumbnail), så
det er vel noget i stil med :
UPDATE mrs_arkiv SET href_sml =
REPLACE(url,' http://www.blahblah.dk/','http://www.snaksnak.dk/');
Nu hedder hele værdien jo faktisk :
http://www.blahblah.dk/billednavn01.jpg
Men hvis jeg fyrer overstående kommando afsted. Så vil den så stadig
rette det korrekt?
| |
Peter Brodersen (19-08-2002)
| Kommentar Fra : Peter Brodersen |
Dato : 19-08-02 06:29 |
|
On Mon, 19 Aug 2002 00:41:19 +0200, "Simon Jørgensen"
<mob51641@orangenet.dk> wrote:
>Nu hedder hele værdien jo faktisk :
>
> http://www.blahblah.dk/billednavn01.jpg
>
>Men hvis jeg fyrer overstående kommando afsted. Så vil den så stadig
>rette det korrekt?
Med al respekt - har du prøvet én af følgende:
1. ... prøvet at kigge i MySQL-manualen og slå REPLACE-funktionen op?
Den er fint dokumenteret
2. ... prøvet at tage en kopi af din nuværende tabel, køre nærværende
query, og så se på resultatet? Jeg kan ikke se at der er noget i vejen
for selv at teste en gang.
--
- Peter Brodersen
| |
Simon Jørgensen (19-08-2002)
| Kommentar Fra : Simon Jørgensen |
Dato : 19-08-02 13:28 |
|
> 1. ... prøvet at kigge i MySQL-manualen og slå REPLACE-funktionen op?
> Den er fint dokumenteret
Ikke endnu :/
> 2. ... prøvet at tage en kopi af din nuværende tabel, køre nærværende
> query, og så se på resultatet? Jeg kan ikke se at der er noget i vejen
> for selv at teste en gang.
Jeg har bare være bange for ødelægge noget. Men jeg vil se om jeg ikke
selv kan løse det.
| |
Peter Brodersen (19-08-2002)
| Kommentar Fra : Peter Brodersen |
Dato : 19-08-02 14:12 |
|
On Mon, 19 Aug 2002 14:28:06 +0200, "Simon Jørgensen"
<mob51641@orangenet.dk> wrote:
>> 1. ... prøvet at kigge i MySQL-manualen og slå REPLACE-funktionen op?
>> Den er fint dokumenteret
>Ikke endnu :/
Så bør du gøre det :) REPLACE-funktionen laver netop en almindelig
søg&erstat, som du ønsker det. Så:
UPDATE mrs_arkiv SET href_sml =
REPLACE(url,' http://www.blahblah.dk/','http://www.snaksnak.dk/');
.... må være hvad, du ønsker.
>> 2. ... prøvet at tage en kopi af din nuværende tabel, køre nærværende
>> query, og så se på resultatet? Jeg kan ikke se at der er noget i vejen
>> for selv at teste en gang.
>Jeg har bare være bange for ødelægge noget. Men jeg vil se om jeg ikke
>selv kan løse det.
Derfor anbefalingen om at lave et dump af din tabel, som du så altid
kan lægge ind igen, hvis noget går galt.
Bruger du PHPMyAdmin, kan du fx vælge databasen, vælge "Export" i
menuen, og fx vælge at dump'e "Strukturen og data".
--
- Peter Brodersen
| |
|
|