Bonjour tout le monde,
Je fais appelle à une fonction pour voir si un champ contient la valeur 0 ou 1.
Je dois passer trois paramètres à cette fonction.
1) la requête n'est pas bonne alors que (je pense que) ça devrait l'être :
$cours_cloture = 'SELECT inscrits_en.MNEMONIC,inscrits_en.TYPE_DE_COURS,inscrits_en.CATEGORIE WHERE inscrits_en.ID = '.$LesDonnees['1'];
l'echo me donne ceci :
SELECT inscrits_en.MNEMONIC,inscrits_en.TYPE_DE_COURS,inscrits_en.CATEGORIE WHERE inscrits_en.ID = 2
La structure de ma table est la suivante :
Champ Type Null Défaut Commentaires
ID int(11) Non
MATRICULE_ET varchar(255) Non
MNEMONIC varchar(255) Non
ANNEE_ACADEMIQUE varchar(255) Non
CATEGORIE varchar(255) Non
NOTE text Oui NULL
DECISION_ANNEE varchar(255) Oui NULL
SESSION int(11) Non
TYPE_DE_COURS varchar(255) Non
Dans PHPMyAdmin, je copie/colle la requête, j'obtiens ce message d'erreur :
Erreur
requête SQL: Documentation
SELECT inscrits_en.MNEMONIC, inscrits_en.TYPE_DE_COURS, inscrits_en.CATEGORIE
WHERE inscrits_en.ID =2
MySQL a répondu
ocumentation
#1064 - 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 inscrits_en.ID = 2' at line 1
Les messages d'erreurs que j'obtiens sont :
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\wamp\www\Excel\Import\Dernier\example.php on line 54
Requete invalide : 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 inscrits_en.ID = 2' at line 1
La ligne 54 est la suivante :
while ($tab_req_cours_cloture = mysql_fetch_assoc($req_cours_cloture))
Voici une bonne partie du code :
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
| $cours_cloture = 'SELECT inscrits_en.MNEMONIC,inscrits_en.TYPE_DE_COURS,inscrits_en.CATEGORIE WHERE inscrits_en.ID = '.$LesDonnees['1'];
echo $cours_cloture;
$req_cours_cloture = mysql_query($cours_cloture);
while ($tab_req_cours_cloture = mysql_fetch_assoc($req_cours_cloture))
{
//je vérifie ici si le cours est clôturé, car autrement, on pourrait mettre à jour un cours via excel même si il est clôturé !!!
if(check_cloture($tab_req_cours_cloture['MNEMONIC'],$tab_req_cours_cloture['TYPE_DE_COURS'],$tab_req_cours_cloture['CATEGORIE'] ) == 0)
{
$sql = 'UPDATE inscrits_en SET NOTE = ' .$LesDonnees['5'].' WHERE inscrits_en.ID = ' .$LesDonnees['1'];
//je mets directement a jour la base de données
$result = mysql_query($sql);
$ok = false;
$compteur_ok +=1;
// Vérification du résultat
// Ceci montre la requete envoyée a MySQL ainsi que l'erreur. Utile pour déboguer.
}
else
{
echo 'cours clôturé !';
exit();
}
}
}
else
{
$compteur_pas_ok+=1; //nombre d'enregistrement(s) qui n'ont pas été ajoutés dans la bd
} |
Ainsi que le code de ma fonction check_cloture :
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
| <?php
function maFonction($MNEMONIC, $TYPE,$CATEGORIE)
{
session_start();
include('../connexion.php');
//var_dump($_POST);
$Desactiver_Bouton_Cloture = "SELECT * FROM `cours` WHERE cours.MNEMONIC = '".$MNEMONIC."' AND cours.TYPE_DE_COURS = '".$TYPE."' AND cours.CATEGORIE = '".$CATEGORIE."'";
//echo $Desactiver_Bouton_Cloture;
$query_Desactiver_Bouton_Cloture = mysql_query($Desactiver_Bouton_Cloture);
$nombre = mysql_num_rows($query_Desactiver_Bouton_Cloture);
//echo "nombre ".$nombre;
while ($tab = mysql_fetch_array($query_Desactiver_Bouton_Cloture))
{
if($tab['Cloture'] != 1)
{
return 1;
}
else
{
return 0;
}
}
}
?> |
Je vous remercie d'avance pour votre aide.
beegees
Partager