Probleem met INSERT

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Richard Duinmayer

Richard Duinmayer

04/07/2010 18:36:21
Quote Anchor link
Hallo allen, ik heb een probleem met de INSERT maar ik zie het probleem niet. Hopelijk jullie wel!

Deze lukt echter niet geheel. Op één of andere manier wordt de naam niet opgeslagen in de database.

$dirArray[$index] = de filename en moet in de database komen onder movie_name

Nadat ik dat probleem heb opgelost moet ik op één of andere manier gaan controleren of er een gelijkende movie_name wordt ingevoerd. Wat zijn hiervoor de mogelijkheden met PHP?

Allereerst de INSERT die niet helemaal werkt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
/**
 * Display Movies Table
 */

?>

<h3>Movies Table Contents:</h3>
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<?

// open this directory
$myDirectory = opendir("G:/video");

// get each entry
while($entryName = readdir($myDirectory)) {
    $dirArray[] = $entryName;
}


// close directory
closedir($myDirectory);

//    count elements in array
$indexCount    = count($dirArray);
Print ("$indexCount files<br>\n");

// sort 'em
sort($dirArray);

// store 'em
$i = 0;
for($index=0; $index < $indexCount; $index++) {
 // verbind met de database
$objMysqli = new mysqli( 'localhost', 'root', '', 'moviemanager' );

// start transactie
$objMysqli->query( "START TRANSACTION" );
  
// voeg de gebruiker toe
if ( $objMysqli->query( "INSERT INTO movies (movie_name) VALUES (' . $dirArray[$index] . ')" ) )
{

    // de query is gelukt, voeg het adres toe
    $strQuery = sprintf(
        "INSERT INTO movies (movie_name) VALUES (' . $dirArray[$index] . ')",
        $objMysqli->insert_id
    );
  
    if ( $objMysqli->query( $strQuery ) )
    {

        // beide queries zijn gelukt, voltooi de transactie
        $objMysqli->query( "COMMIT" );
        echo 'De film ' . $dirArray[$index] . ' is toegevoegd<br>';
        $i++;
    }

    else
    {
        // de query is mislukt, beëindig de transactie
        $objMysqli->query( "ROLLBACK" );
        echo 'De film ' . $dirArray[$index] . ' is NIET toegevoegd<br>';
    }
}

else
{
    // de query is mislukt, beëindig de transactie
    echo 'De film ' . $dirArray[$index] . ' is NIET toegevoegd<br>';
    $objMysqli->query( "ROLLBACK" );
}

  
// sluit de verbinding
$objMysqli->close();
}

print $i;

// print 'em
/*
print("<TABLE border=1 cellpadding=5 cellspacing=0 class=whitelinks>\n");
print("<TR><TH>Filename</TH><th>Categorieën</th><th>Wie heeft deze gezien</th><th>Rating / Gem. Rating</th></TR>\n");
// loop through the array of files and print them all
for($index=0; $index < $indexCount; $index++) {
        if (substr("$dirArray[$index]", 0, 1) != "."){ // don't list hidden files
        print("<TR><TD><a href=\"$dirArray[$index]\">$dirArray[$index]</a></td>");
        print("<td>Add</td>");
        print("<td>Add</td>");
        print("<td>Add</td>");
        print("</TR>\n");
    }
}
print("</TABLE>\n");
*/


?>
 
PHP hulp

PHP hulp

21/11/2024 13:12:56
 
Raymond ---

Raymond ---

04/07/2010 21:11:18
Quote Anchor link
Je hebt de variabele in je query binnen quotes staan, maar gebruikt toch punten. Je moet één van beide gebruiken, waarbij de voorkeur gaat naar variabelen buiten quotes.

Verder heb je op regel 31 en 35 dezelfde query staan, maar met andere commentaar. Er worden nu dus twee rijen toegevoegd die gezien het commentaar een andere waarde hebben, maar gezien de code dezelfde waarde hebben. (hoop dat je me nog volgen kan) Ik ken jouw database structuur niet, maar het lijkt me niet logisch.
 



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.