Hallo forumleden,

Misschien kan iemand een php beginner verder helpen.

Ik wil de files van een directory uitlezen en deze dan in een mysql db plaatsen, maar ik kom op een punt niet verder.

Dit is tot nu toe mijn code:

<?php
//Read dir
if ($handle = opendir("../test_dir")) {
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
echo "$entry";
}
}
closedir($handle);
}

//Database name & Table name
$db_name="DBname"; // Database name
$tbl_name="example"; // Table name

// Select database.
mysql_select_db("$db_name")or die("cannot select DB");

// Insert data into mysql
$sql="INSERT INTO $tbl_name(coll_1, Coll_2)VALUES('$entry', 'Test text')";
$result=mysql_query($sql);

// if successfully insert data into database, displays message "Successful".
if($result){
echo "Successful";
}

else {
echo "ERROR";
}
?>

De inhoud van $entry wordt weergegeven op de site, dus dat readdir stuk werkt.
De Test text van coll_2 wordt in de database geplaatst, dus dat werkt ook.
Het probleem is dus dat de inhoud van $entry niet in coll_1 wordt geplaatst.
Deze coll_1 blijft leeg.

Wat doe ik hier fout? Vast iets heel banaals als een komma of een haakje vergeten denk ik, maar dat zijn zo de struikelblokken waar je als php beginner mee te maken hebt.

Alvast bedankt voor de hulp.
Rob
Draai dit eens om:
<?php
if($result){
echo "Successful";
}
else {
echo "ERROR";
}
?>

Dus:
<?php
if($result === false){
echo "ERROR";
}
else {
echo "Successful";
}
?>

Toevoeging op 12/04/2012 18:28:11:

En je hebt natuurlijk alleen de laatste in de database.

<?php
//Read dir


//Database name & Table name
$db_name="DBname";         // Database name
$tbl_name="example";         // Table name

// Select database.
mysql_select_db("$db_name")or die("cannot select DB");

// Insert data into mysql

if ($handle = opendir("../test_dir")) {
    while (false !== ($entry = readdir($handle))) {
        if ($entry != "." && $entry != "..") {
            echo "$entry";

$sql="INSERT INTO $tbl_name(coll_1, Coll_2)VALUES('$entry', 'Test text')";
$result=mysql_query($sql);

// if successfully insert data into database, displays message "Successful".
if($result){
echo "Successful";
}

else {
echo "ERROR";
}

       }
    }
    closedir($handle);
}
?>


zoiets. Op regel 4 heb je een while staan. Alles daarbinnen wordt meerdere keren uitgevoerd. $eentry wordt dus elke keer overschreven. Zodra de while eindigd bevat hij alleen maar de laatste waarde. Stop je query in je while, dan voert hij hem voor alle bestanden uit.
Ja, dank je wel.
Het werkt, nu wordt het nog even er op kauwen om het te begrijpen.

Reageren