Ik ben nu alles aan het overzetten van asp naar php. In de nieuwe database staan van 1 veld alle gegevens in het volgende formaat:

<img border="0" src="dbase/images/Uhf.jpg" width="175" height="250">

Dit moet gewoon Uhf.jpg worden, dus zonder de html code. Even op jullie ervaring een beroep doen. Wat zou de beste methode zijn. Gaat het via PHPMySQL of moet ik een php script schrijven die elke record ophaalt stript volgens bepaalde criteria en weer update?

Suggesties welkom.

p.s. Alles voor en na de bestandsnaam is hetzelfde. Dus in feite moeten de 1e 27 en de laatste 26 karakters weg.

Mvg,

Rene
Hoeveel records heb je? als dit er niet heelveel zijn (200 <) zou je ze gewoon handmatig kunnen aanpassen via PHPmyadmin.
Je zou het ook in een foreach() loop kunnen zetten en dan met een regex de string/individuele record kunnen bewerken (of misschien met een substring??)
Het zijn er meer dan 200 Jurgen, een ondoenlijk karwei.

Daar zat ik ook al aan te denken GaMer13.
Zal voor de zekerheid nog een backup maken, het zal niet de 1e keer zijn dat een scriptje mijn tabel heeft gewist.

Had gehoopt dat PHPMyAdmin zo'n functie had ingebouwd.

grt,

Rene
Nope, AFAIK heeft PHPMyAdmin niet zo'n functie, dus zul je het met PHP moeten oplossen...
Je zou een preg_replace kunnen gebruiken om dat stuk eruit te halen:
<?php
$string = '<img border="0" src="dbase/images/Uhf.jpg" width="175" height="250">';

$nieuw = preg_replace('#.+images\/(.+?)".+#', '$1', $string);
echo $nieuw;
?>
Er wordt nu gekeken naar het gedeelte 'images/bestandsnaam.jpg"', alles wat tussen de / en de " staat wordt gematched en bewaard.
Da's een mooi regeltje Blance. Ik had net ff mijn formuliertje klaar - ivm controle - maar ipv de regel voor in te vullen van het veld, liet ie natuurlijk het plaatje zien :(

Dus heb ik jouw 2 regeltjes net ff snel tussengevoegd en nu hoef ik alles slecht 1x langs (submit -> volgende etc.)

bvd,

Rene

<?php
    $result = mysql_query("SELECT * FROM tabel") or die(mysql_error());
    while($rij = mysql_fetch_array($result))
    {
        // Haal de huidige plaatjes veld door de regex...
        $nieuw = preg_replace('#.+images\/(.+?)".+#', '$1', $rij['plaatje']);
        // Update de huidige plaatjes veld m.b.v. de regex...
        $query = mysql_query("UPDATE tabel SET plaatje='".$nieuw."' WHERE id='".$rij['id']."'") or die(mysql_error());
        // Echo voor elke record even dat het geupdate is.
        if($query)
        {
            echo "Record ".$rij['id']." geupdate."; 
        }
        else
        {
            echo "Error!";
        }
    }
?>

Niet getest, maar zoiets zou het moeten worden volgens mij...
:) Zag het net te laat, heb het iets langzamer gedaan- via formulier - maar het is toch gebeurd.

Ik moet dat scriptje zeker eens bestuderen, dan kon wel eens zer handig zijn.

Bedankt allemaal

Rene

Reageren