www.ProFTPD.de
13. März 2007, 19:24:17 *
Willkommen Gast. Bitte einloggen oder registrieren.
Haben Sie Ihre Aktivierungs E-Mail übersehen?

Einloggen mit Benutzername, Passwort und Sitzungslänge
News: SMF - Neu installiert!
 
   Übersicht   Hilfe Suche Login Registrieren  
Seiten: [1]   Nach unten
  Drucken  
Autor Thema: OT ?: mysql - suche und ersetzen  (Gelesen 799 mal)
0 Mitglieder und 1 Gast betrachten dieses Thema.
Kellerkind
ProFTPD
*
Offline Offline

Beiträge: 17


Profil anzeigen WWW
« 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
Gespeichert
Claus
ProFTPD
*
Offline Offline

Beiträge: 44


137219665
Profil anzeigen WWW E-Mail
« Antwort #1 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
Gespeichert

#################################
support your local
#################################
Kellerkind
ProFTPD
*
Offline Offline

Beiträge: 17


Profil anzeigen WWW
« Antwort #2 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  Cool
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
Gespeichert
stonki
Administrator
ProFTPD
*****
Offline Offline

Beiträge: 1853


15318939
Profil anzeigen WWW E-Mail
« Antwort #3 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
Gespeichert

www.stonki.de:    the more I see, the more I know.......
www.proftpd.de:   Deutsche ProFTPD Dokumentation
www.krename.net:  Der Batch Renamer für KDE
www.kbarcode.net: Die Barcode Solution für KDE
Wörsty
Moderator
ProFTPD
*****
Offline Offline

Beiträge: 1602


50772603
Profil anzeigen WWW E-Mail
« Antwort #4 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:
Gespeichert

RedHat 8.0 (2.4er Kernel)
proftpd 1.2.10
-mod_sql_mysql
-mow_wrap
-mod_exec
-mod_ifsession[/size]
Wörsty
Moderator
ProFTPD
*****
Offline Offline

Beiträge: 1602


50772603
Profil anzeigen WWW E-Mail
« Antwort #5 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";
    }
  }
Gespeichert

RedHat 8.0 (2.4er Kernel)
proftpd 1.2.10
-mod_sql_mysql
-mow_wrap
-mod_exec
-mod_ifsession[/size]
Claus
ProFTPD
*
Offline Offline

Beiträge: 44


137219665
Profil anzeigen WWW E-Mail
« Antwort #6 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
Gespeichert

#################################
support your local
#################################
Wörsty
Moderator
ProFTPD
*****
Offline Offline

Beiträge: 1602


50772603
Profil anzeigen WWW E-Mail
« Antwort #7 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?
Gespeichert

RedHat 8.0 (2.4er Kernel)
proftpd 1.2.10
-mod_sql_mysql
-mow_wrap
-mod_exec
-mod_ifsession[/size]
Claus
ProFTPD
*
Offline Offline

Beiträge: 44


137219665
Profil anzeigen WWW E-Mail
« Antwort #8 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
Gespeichert

#################################
support your local
#################################
Kellerkind
ProFTPD
*
Offline Offline

Beiträge: 17


Profil anzeigen WWW
« Antwort #9 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:
Gespeichert
Seiten: [1]   Nach oben
  Drucken  
 
Gehe zu:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.2 | SMF © 2006-2007, Simple Machines LLC Prüfe XHTML 1.0 Prüfe CSS
Seite erstellt in 0.063 Sekunden mit 16 Zugriffen.