Avatar billede nicocarlos Nybegynder
04. september 2006 - 16:42 Der er 9 kommentarer og
1 løsning

Script der opdeler og indsætter i mysql

Hejsa skal bruge et script som opdeler og indsætter en masse data i en mysql database. Jeg har mine data i et html dokument. En linje af mine data kunne f.eks. se således ud:

<b>Hus</b><i>Dette er et kæmpe hus</i> Ekstra information.<br>
<b>Skib</b><i>Dette er et kæmpe skib</i> Extra information.<br>

Så er det meningen at jeg har et mysql tabel hvor hus og skib bliver indsat i et felt der hedder navn, det der står imellem <i></i> bliver indsat i et felt der hedder om, extra information i et felt der hedder info og i dette felt skal alt html fjernes indtil næste <b></b> det vil sige <br> skal fjernes.

Håber i forstår og at det kan lade sig gøre

Mvh Nicocarlos
Avatar billede coderdk Praktikant
04. september 2006 - 17:13 #1
$data = <<<STOP
<b>Hus</b><i>Dette er et kæmpe hus</i> Ekstra information.<br>
<b>Skib</b><i>Dette er et kæmpe skib</i> Extra information.<br>
STOP;

    if ( preg_match_all( "!<b>(.*?)</b><i>(.*?)</i>(.*?)<br>!m", $data, $m ) )
    {
        echo "<pre>"; var_dump( $m ); echo "</pre>";
        $n = count( $m[1] );
        for ( $i = 0; $i < $n; $i++ )
        {
            $sql = sprintf( "
                    INSERT INTO
                        mysql_tabel
                    (
                        navn
                        ,om
                        ,info
                    ) VALUES (
                        '%s'
                        ,'%s'
                        ,'%s'
                    )"
                    ,mysql_escape_string( $m[1][$i] )
                    ,mysql_escape_string( $m[2][$i] )
                    ,mysql_escape_string( $m[3][$i] )
                );
            // mysql_query( $sql );
            echo "$sql<br><br>";
        }
    }


Bare fjern echo'en og erstat med din MySQL-query :)
Avatar billede nicocarlos Nybegynder
04. september 2006 - 17:41 #2
tester lige om 30 min og vender tilbage :D
Avatar billede nicocarlos Nybegynder
04. september 2006 - 18:44 #3
hmm okay har testet og det kan godt være jeg har forklaret lidt dårligt men det er ikke kun <br> der skal fjernes. Så jeg tænkte måske på noget andet som vil gøre det lettere kan man ikke sige okay så indsætter vi også html (<br> - <i>) etc. Kan man så ikke bare printe html når man skal udskrive det f.eks..

print "row[info]"; // hvordan får jeg så lavet det om til at printe html det er måske lettere?
Avatar billede nicocarlos Nybegynder
04. september 2006 - 18:48 #4
den fjernede <i> fint nok på det der blev smidt ind i "om" feltet men ikke "info" feltet :(
Avatar billede nicocarlos Nybegynder
04. september 2006 - 18:49 #5
"Extra information.<br>"

Dette stykke kan der også godt være andet html i f.eks. <i> det er det jeg snakker om hehe
Avatar billede coderdk Praktikant
04. september 2006 - 18:51 #6
Hmm jeg er nødt til at se nogle flere af dine linjer, for det jeg lavede gør jo præcist hvad du beder om med de to linjer data - Tager det mellem <b></b> og det mellem <i></i> og slutteligt det før <br> - Der er ingen af <b></b><i></i> eller <br> der kommer med...
Er det fordi nogle er <B> eller <I>?
Avatar billede coderdk Praktikant
04. september 2006 - 18:51 #7
Prøv at lave preg_match_all linjen om til:

if ( preg_match_all( "!^<b>(.*?)</b><i>(.*?)</i>(.*?)<br>$!m", $data, $m ) )
Avatar billede coderdk Praktikant
04. september 2006 - 18:52 #8
Så SKAL linjerne starte med <b> og slutte med <br>
Avatar billede nicocarlos Nybegynder
04. september 2006 - 19:16 #9
Jep fandt ud af det og det virker som det skal du kan bare det skidt hehe

Men det var fordi jeg havde en <i></i> i det felt som bliver sat ind i "info" som er efter den første <i></i> og der bliver <i></i> smidt ind i databasen og <br> gør ikke men det er ligemeget fordi det virker nu :D
Avatar billede coderdk Praktikant
04. september 2006 - 19:33 #10
Fedt :)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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