• User

    [Risolto] scrivere il contenuto di un array in un DB in php

    Salve,

    ho bisogno di un aiuto.
    ho bisogno di scrivere il contenuto di un array in un database in php il mio è problema è il seguente:riempio il mio array all'interno di un foreach e invece l'inserimento nel database è al di fuori per questo motivo quando vado ad inserire nel database mi inserisce sempre l'ultimo elemento.
    come devo fare?

    questo è il mio foreach e l'array in questione si chiama indice:

    <?
    $indice = 1;

        foreach ($photos['photo'] as $photo) {
    

    ?>

    <div class="imageBox" id="<?=$indice;?>">
    <div class="imageBox_theImage">
    <?

        $photos_view="<a href=\"$photos_url$photo[id]\"  
            onmouseover=\"my_menu(event,'{$photo['id']}');\" 
            target=\"_blank\">";
        $photos_view.= "<img border='0' align='middle' alt='$photo[title]' ".
        // "src=" . $f->buildPhotoURL($photo, "Square") . " 
        //onmouseover=\"ahah('get_exif.php?id={$photo[id]}','messagebox_exif','','ajax-loader_circle.gif ','');\" >";
        "src=" . $f->buildPhotoURL($photo, "Square") . " id='thumb'>";
        $photos_view.= "</a>";
        $url=substr($f->buildPhotoURL($photo),0,length-1);
    
    
    $ind=$photos_url;
    $ind.=$photo['id']; //nome foto
    
    $indirizzo['photo']=$ind;
    
    echo "\n";
    //echo $indirizzo['photo']; ///mi stampa gli indirizzi differenti
    echo "\n";
    
        
        printf("$indice");
        printf("$photos_view");
        
            
        ?>
    </div>    
    

    </div>

    <?

    $indice++;
    
        }
    

    invece il codice della query è :

    for($j=0;$j<=$TotFoto;$j++) {
        $id[$j]=$j;
    $result2 = mysql_query ("INSERT INTO
                            `photo` VALUES ($j,$id[$j],'$user','$indirizzo')");
    if($result2==FALSE)die("errore nella composizione della query")  ;    
    

    }

    si accettano consigli!!!

    grazie!!!


  • Bannato User Attivo

    La query d'inserimento mi sembra strampalata :S.
    Credo che t'inserisca l'ultimo valore perchè ogni volta che inserisce un dato nel database il valore della seconda array và a sostituire quello del primo e cosi via.
    Dovresti usare l'explode,e usare il trattino come separatore fra il valore di un'array e un'altro.

    Ciau


  • User

    Ciao poi ho risolto con un foreach.

    foreach ($indirizzo as $key => $value) {

        $id[$key]=$key;
        $result2 = mysql_query ("INSERT INTO photo VALUES ($key,$id[$key],'$user','$value')");
        if($result2==FALSE){
        echo mysql_errno() . ": " . mysql_error(). "\n";}
    }
    

    Grazie!!!!


  • Bannato User Attivo

    Bene ^^


  • Super User

    Bene,segnalo come risolto 🙂