Je possède une base de données contenant des noms d'étudiants et un numéro d'anonymat qui leur est attribué pour leur examen.
A côté, j'ai leur note (de physique) et leur numéro d'anonymat dans un fichier Excel, que j'ai enregistré au format CSV.
Afin d'insérer les notes dans les base MySQL, chaque note correspondant donc à un numéro, j'utilise ce script :
<?
switch($action)
{
case "ajouter":
$bdd = "xxx";
$host= "xxx";
$user= "xxx";
$pass= "xxx";
@mysql_connect($host,$user,$pass) or die("Impossible de se connecter à la base de données");
@mysql_select_db($bdd);
if (file_exists($fichier))
$fp = fopen("$fichier", "r");
else
{
echo "Fichier introuvable !<br>Importation stoppée.";
exit();
}
while (!feof($fp))
{
$ligne = fgets($fp,4096);
$liste = explode( ";",$ligne);
$num = $liste[0];
$physique = $liste[1];
$query = "INSERT INTO P1 (physique) VALUES('$physique') WHERE num='$num'";
$result= MYSQL_QUERY($query);
if(mysql_error())
{
print "Erreur dans la base de données : ".mysql_error();
print "<br>Importation stoppée.";
exit();
}
else
print "$num $physique <br>";
}
echo "<br>Importation terminée, avec succès.";
fclose($fp);
MYSQL_CLOSE();
break;
default:
?>
<? echo "<form method=\"post\" action=\"$PHP_SELF\">"; ?>
<table border="0" cellspacing="0" cellpadding="3">
<tr>
<td>Fichier :</td>
<td> <input type="text" name="fichier"> </td>
</tr>
<td></td>
<td> <input type="submit" name="submit" value="Ajouter !"> </td>
</tr>
</table>
<input type="hidden" name="action" value="ajouter">
</form>
<?
break;
}
?>
Dans le champ fichier, j'indique le nom du fichier uploadé (Classeur1.csv) dans le même dossier que mon script.Seul problème, j'obtiens un message d'erreur, et je ne trouve pas ce qui cloche...
Si quelqu'un pouvait m'éclairer, ce serait sympa...Erreur dans la base de données : 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 'WHERE num='1'' at line 1
Importation stoppée.