Geachte tweakers,
Ik ben bezig met een schoolproject om een digitaal portfolio in elkaar te schroeven en daarvoor gebruik ik een optie voor de beheerder om een CSV lijst te kunnen importeren. Echter loop ik ergens tegenaan wanneer ik de CSV document er voor de 2de keer doorheen haal om te updaten. Ik hoop dat jullie mij verder kunnen helpen.
De code is als volgt:
De foutmelding die ik krijg als ik de lijst wil updaten is:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'oudernummer='60742' WHERE gebruikersnaam='60742'' at line 1
De CSV file structuur is als volgt:
leerlingnummer, voornaam, tussenvoegsel, achternaam, niveau, oudernummer
68794 - jaap - de - groot - 4 - 68794
Misschien is het een aardig lulig foutje, of ik zie het gewoon even niet maar dat kan komen omdat ik elke dag er 10 uur aan werk, mijn programmeer niveau is dan ook nog niet zo best.
Ohja ik werk op een lokale windows machine met xampp, misschien is dat nog belangrijk voor iets
Met vriendelijke groet,
Sander
Ik ben bezig met een schoolproject om een digitaal portfolio in elkaar te schroeven en daarvoor gebruik ik een optie voor de beheerder om een CSV lijst te kunnen importeren. Echter loop ik ergens tegenaan wanneer ik de CSV document er voor de 2de keer doorheen haal om te updaten. Ik hoop dat jullie mij verder kunnen helpen.
De code is als volgt:
PHP: filename
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
| <?php /** * @author Sander * @copyright 2009 */ session_start(); include_once("../config.php"); function convertCSVtoArray($file, $delimiter) // met headers { $result = Array(); $size = filesize($file) +1; $file = fopen($file, 'r'); $keys = fgetcsv($file, $size, $delimiter); while ($row = fgetcsv($file, $size, $delimiter)) { for($i = 0; $i < count($row); $i++) { if(array_key_exists($i, $keys)) { $row[$keys[$i]] = $row[$i]; } } $result[] = $row; } fclose($file); return $result; } /*------------------------------------------------------------------------------*/ //$infile=$_POST['infile']; $infile=( $_FILES['infile']['tmp_name']); $data = convertCSVtoArray($infile , ";"); ?> <?php for($i = 0; $i < sizeof($data); $i++){ ?> <?php $sql = "SELECT * FROM tbl_gebruikers WHERE gebruikersnaam = '".$data[$i]['leerlingnummer']."'"; $result = mysql_query($sql) or die(mysql_error()); $num_rows = mysql_num_rows($result); if($num_rows==1){ $sqlUpdate = "UPDATE tbl_gebruikers SET voornaam='".$data[$i]['voornaam']."', tussenvoegsel='".$data[$i]['tussenvoegsel']."', achternaam='".$data[$i]['achternaam']."',niveau='".$data[$i]['niveau']."'oudernummer='".$data[$i]['oudernummer']."' WHERE gebruikersnaam='".$data[$i]['leerlingnummer']."'"; mysql_query($sqlUpdate) or die(mysql_error()); echo "Record ".$data[$i]['leerlingnummer']." ".$data[$i]['voornaam']." ".$data[$i]['tussenvoegsel']." ".$data[$i]['achternaam']." ".$data[$i]['niveau']." ".$data[$i]['oudernummer']." succesvol geupdate!<br>"; }else{ $sqlInsert="INSERT INTO tbl_ouders (oudernummer) VALUES ('".$data[$i]['leerlingnummer']."')"; mysql_query($sqlInsert) or die(mysql_error()); $sqlInsert2="INSERT INTO tbl_gebruikers (gebruikersnaam,wachtwoord,gebruikersrol,voornaam,tussenvoegsel,achternaam,niveau,oudernummer) VALUES ('".$data[$i]['leerlingnummer']."','welkom01','leerling','".$data[$i]['voornaam']."','".$data[$i]['tussenvoegsel']."','".$data[$i]['achternaam']."', '".$data[$i]['niveau']."','".$data[$i]['leerlingnummer']."')"; mysql_query($sqlInsert2) or die(mysql_error()); echo "Record ".$data[$i]['gebruikersnaam']." ".$data[$i]['voornaam']." ".$data[$i]['tussenvoegsel']." ".$data[$i]['achternaam']." ".$data[$i]['niveau']." ".$data[$i]['oudernummer']." succesvol toegevoegd!<br>"; } ?> <?php } ?> |
De foutmelding die ik krijg als ik de lijst wil updaten is:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'oudernummer='60742' WHERE gebruikersnaam='60742'' at line 1
De CSV file structuur is als volgt:
leerlingnummer, voornaam, tussenvoegsel, achternaam, niveau, oudernummer
68794 - jaap - de - groot - 4 - 68794
Misschien is het een aardig lulig foutje, of ik zie het gewoon even niet maar dat kan komen omdat ik elke dag er 10 uur aan werk, mijn programmeer niveau is dan ook nog niet zo best.
Ohja ik werk op een lokale windows machine met xampp, misschien is dat nog belangrijk voor iets
Met vriendelijke groet,
Sander