multiple uploads save in database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Johan

Johan

10/07/2007 01:12:00
Quote Anchor link
Ik heb een script waarbij ik maximaal 5 bestanden kan uploaden. Nu wil ik dat het script de bestandsnamen opslaat in een database. Ik krijg het alleen niet voor elkaar. Zoals ik het nu heb plaats hij 5x dezelfde rij in de database.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?
while(list($key,$value) = each($_FILES[1][name]))
{

if(!empty($value)){                               // this will check if any blank field is entered

$filename = $value;                                // filename stores the value
$add = "uploads/$filename";                       // upload directory path is set

copy($_FILES[images][tmp_name][$key], $add);    //  upload the file to the server
chmod("$add",0777);                             // set permission to the file.
}

// opslaan in database

 $prijs = $_POST['prijs'].".".$_POST['prijs2'];
nl2br($_POST['omschrijving']);

        // Query opbouwen met variabelen
        
    
        $query="INSERT INTO artikelen (cat,anummer,prijs,omschrijving,img1,img2,img3,img4,img5)";
        $query .= "VALUES ('"; // let op positie van de enkele aanhalingstekens
        $query .= $_POST["cat"] ."', '" ;
        $query .= $_POST["anummer"] ."', '" ;
        $query .= $prijs ."', '" ;
        $query .= $_POST["omschrijving"] ."', '" ;
        $query .= $_FILES[images][name] ."', '" ;
        $query .= $_FILES[images][name] ."', '" ;
        $query .= $_FILES[images][name] ."', '" ;
        $query .= $_FILES[images][name] ."', '" ;
        $query .= $_FILES[images][name] ."');" ;
        $result = mysql_query($query) or die ("FOUT: " . mysql_error());
        echo "<meta http-equiv=refresh content=0;url=artikelen.php>";
        }

?>
 
PHP hulp

PHP hulp

13/01/2025 21:15:45
 
Joren de Wit

Joren de Wit

10/07/2007 10:31:00
Quote Anchor link
Ja, zo gaat het natuurlijk ook niet lukken. Je hebt je query in een while loop stana waarin dus telkens 1 bestand behandeld wordt. Nu wil je echter met die query wel 5 verschillende bestanden tegelijk invoeren. Dat gaat dus niet.

Er kloppen nog meer dingen niet, te beginnen met je datamodel. Jij hebt in je tabel nu 5 kolommen voor de verschillende bestanden, echter hoor je de verschillende bestanden gewoon in verschillende records op te slaan. Je kunt er over het algemeen van uitgaan dat je datamodel incorrect is zodra je kolomnamen gaat nummeren.

In jouw geval zou je nog een aparte tabel met afbeeldingen krijgen. In deze tabel sla je het id van het artikel op waar de afbeeldingen bij horen.

Tenslotte ontbreken er een groot aantal quotes in je script. $_FILES[images][name] hoort namelijk $_FILES['images']['name'], images en name zijn namelijk geen contstanten maar strings.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.