www.ProFTPD.de

ProFTPD => ProFTPD - Deutsch => Thema gestartet von: Kellerkind am 18. Mai 2003, 14:42:03



Titel: OT ?: mysql - suche und ersetzen
Beitrag von: Kellerkind am 18. Mai 2003, 14:42:03
moin liebe gurus
meine Frage tangiert proftpd nur leicht, aber vielleicht weiss jmd Rat, ausführliches googlen hatte keinen Erfolg

Situation:
Ich nutze auf meiner "Heimseite" [1] einen Downloadmanager, der über Mysql+PHP meine Dateien kategorisiert, (is praktisch alles wild auf die platte schaufeln und dennoch wiederfinden)
Problem:
leider hab ich bis jetzt alle links auf http:// zeigen lassen, um jetzt auf proftpd umzustellen müsst ich das in ftp:// ändern (und $pfad natürlich auch), nur is das bei ca 150 Datensätzen sehr mühsam von Hand.
Beispiel:
Zitat

Ein Mysql Datensatz enthällt ID, Link, Beschreibung, letzter Zugriff, Größe u.v.m.
| 11 | ADF_Omaha | http://$url/$pfad/Download/ADF_Omaha.pk3 | 1710 | 1044905782 |      1
|         2 |   1044907631 | Maps
Map
Medal of Honor
Spearhead
 | Multiplayer Map fÏr $spiel |

Frage:
gibt es ein Tool, oder einen Befehl das, -der, mir diese Aufgabe abnimmt ?

[1] $URL gibts bei Interesse über PM

Danke schonmal, falls völlig OT > /dev/null


Titel: OT ?: mysql - suche und ersetzen
Beitrag von: Claus am 18. Mai 2003, 18:36:09
Hallo,

wenn ich Dich richtig verstehe möchtest Du alles von http// in ftp// ändern
und nicht nur bestimmte links, oder ?

Da Du ja schon mit php arbeitest, könntest du dir eine script erstellen
das sich per select und update jeden betroffenen Datensatz vornimmt.

So wie es aussieht ist ja nur die Spalte "link" davon betroffen.
In dem Script zerlegst du diesen Eintrag und bastelst ihn mit den
neuen werten zusammen und machst das update.

Wenn $url und $pfad fix sind könntest Du auch per reinem Sql Statement
in einem Mysql Frontend das update vornehmen.

Gruss,

Claus


Titel: OT ?: mysql - suche und ersetzen
Beitrag von: Kellerkind am 18. Mai 2003, 20:29:31
hmm danke für den denkanstoss, hab mal folgendes zussammen assoziert

Zitat
<?php

//Verbindung aufbauen, ausw¦hlen einer Datenbank
$link = mysql_connect("localhost", "**hidden**", "**hidden**")
    or die("No free Lines");
    mysql_select_db("wbb")
        or die("Game Over!");
$sql="SELECT url FROM dlm_files";

                // Ergebnis in $result speichern:
$result=mysql($DBNAME, $sql);


$result = ereg_replace("»'http://kellerkind.homeip.net/Download/'«","»'ftp://kellerkind.homeip.net/';
echo "ergebniss $result";

?>

diesmal mit url, was solls  8)
aber im ereg_replace hab ich wohl nen fehler, wenn mir da noch jemand ein wink mit den zaunpfahl gibt, das dann updaten müsst ich hinbekommen
Ach ja im moment ist das resultat "nix", probiert im cli und als mod_php


Titel: OT ?: mysql - suche und ersetzen
Beitrag von: stonki am 18. Mai 2003, 20:51:22
Zitat von: "Kellerkind"
hmm danke für den denkanstoss, hab mal folgendes zussammen assoziert

Zitat
<?php

//Verbindung aufbauen, ausw¦hlen einer Datenbank
$link = mysql_connect("localhost", "**hidden**", "**hidden**")
    or die("No free Lines");
    mysql_select_db("wbb")
        or die("Game Over!");
$sql="SELECT url FROM dlm_files";

                // Ergebnis in $result speichern:
$result=mysql($DBNAME, $sql);


$result = ereg_replace("»'http://kellerkind.homeip.net/Download/'«","»'ftp://kellerkind.homeip.net/';
echo "ergebniss $result";

?>

diesmal mit url, was solls  8)
aber im ereg_replace hab ich wohl nen fehler, wenn mir da noch jemand ein wink mit den zaunpfahl gibt, das dann updaten müsst ich hinbekommen
Ach ja im moment ist das resultat "nix", probiert im cli und als mod_php


das ganze liegt ja auch als ARRAY vor. Du musst nun die Numrows abfragen und dann ne kleine schleife ...

cu
stonki


Titel: OT ?: mysql - suche und ersetzen
Beitrag von: Wörsty am 18. Mai 2003, 21:44:38
Da du das nur 1 mal machen willst hab ich eine einfachere Variante:

Mach einen SQL-Dump in eine Datei.
Nimm einen Editor und mache ersetzen durch.
Lade den Dump zurück.

 :wink:


Titel: OT ?: mysql - suche und ersetzen
Beitrag von: Wörsty am 18. Mai 2003, 22:00:29
Für die andere Lösung könnte das gehen.
Musst dann halt noch ein INSERT machen.

Code:
if (mysql_num_rows($result)!=0)
  {
   while ($record = mysql_fetch_array($result))
    {
     $record = eregi_replace('ftp://kellerkind.homeip.net/','http://kellerkind.homeip.net/Download/',$record);
     echo "Ergebnis: $record";
    }
  }


Titel: OT ?: mysql - suche und ersetzen
Beitrag von: Claus am 19. Mai 2003, 09:22:14
um die Liste der einfachen Möglichkeiten komplett zu machen...

...tut es auch ein simples Sql Statement

Update ... set (das was ausgetauscht werden soll) (ersetzen)
      where (die kriterien) (suchen)

Gruss,

Claus


Titel: OT ?: mysql - suche und ersetzen
Beitrag von: Wörsty am 19. Mai 2003, 09:58:22
Zitat
tut es auch ein simples Sql Statement

Da bin ich ja gespannt. Das will ich sehen. Bitte hier posten.

Wenn ich ein Feld habe in dem http://blabla/12233543.mp3 steht wie sieht dann die Query aus, um daraus ftp://blabla/lala/12233543.mp3 zu machen?


Titel: OT ?: mysql - suche und ersetzen
Beitrag von: Claus am 19. Mai 2003, 10:50:15
ups,

stimmt, es handelte sich hier ja um einen Teilstring,
das hatte ich schon wieder verdrängt und war auf ein reines suchen und ersetzen fixiert.
Dann muss das ganze natürlich in eine Routine, logisch.

Ich meine aber das auch das ersetzen von Teilstrings und verarbeiten von variablen mit Sql möglich ist.

Sicherlich ist man aber mit jedem Script schneller, ich würde mir diese Mühe auch nicht machen.

So long,

Claus


Titel: OT ?: mysql - suche und ersetzen
Beitrag von: Kellerkind am 25. Mai 2003, 16:06:51
moin

Thx alle!
Ich hab´s jetzt tatsächlich mit <wie uncool> Dump, edit in einem Editor meiner Wahl und Restore gemacht, </wie uncool> das ist soo einfach, das ich da nie drauf gekommen währe, aber ich wollt ja keinen kreativ-Preis gewinnen sondern nur meine links retten


</thread> (wie anmassend von mir)  :lol: