Prb de requête
Résolu/Fermé
simsim
-
28 mai 2008 à 16:31
sly-bzh Messages postés 415 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 5 décembre 2009 - 30 mai 2008 à 14:19
sly-bzh Messages postés 415 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 5 décembre 2009 - 30 mai 2008 à 14:19
A voir également:
- Prb de requête
- Quelle requête écrire pour demander au moteur de recherche de présenter de préférence les pages web traitant de pomme mais pas de pomme de terre ? - Forum Minecraft
- Erreur de requete facebook rencontre - Forum Facebook
- Requête sql pix - Forum Python
- Facebook rencontre erreur de requete - Forum Facebook
- Il y a eu un problème avec cette requête. nous travaillons à sa résolution aussi vite que nous le pouvons. - Forum Facebook
9 réponses
sly-bzh
Messages postés
415
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
5 décembre 2009
118
29 mai 2008 à 00:30
29 mai 2008 à 00:30
Bonsoir,
Je ne vois pas d'erreurs flagrantes dans ton code hormis des parenthèses qui manquent dans ta requête SQL :
Si l'ajout de ces parenthèses ne résout pas ton problème, j'aimerais avoir 2-3 petites précisions. Mais avant cela je voudrais être sûr d'avoir bien compris : ton problème se situe bien au niveau de ta requête SQL @$requete_verif_heure_cours2 n'est-ce pas ?
Si tel est le cas pourrais-tu répondre à ces questions s'il te plait :
- J'aimerais d'abord savoir comment tu récupères $debut et $fin ou plutôt sous quelle forme tu les récupères ?
- Ensuite : es-tu sûr du format de stockage de "heure_debut" et "duree" dans ta base de donnée ?
- Enfin si tu fais un test simple du style "SELECT heure_debut,duree FROM cours WHERE date='$date'" Ca te retourne bien des données ?
Mais si ton soucis ne se situe pas dans cette requête peux-tu me dire où il se trouve s'il te plait ?
Je ne vois pas d'erreurs flagrantes dans ton code hormis des parenthèses qui manquent dans ta requête SQL :
//WHERE ((heure_debut < '$debut' AND heure_debut + duree > '$debut') à remplacer par : WHERE ((heure_debut < '$debut' AND (heure_debut + duree) > '$debut')
Si l'ajout de ces parenthèses ne résout pas ton problème, j'aimerais avoir 2-3 petites précisions. Mais avant cela je voudrais être sûr d'avoir bien compris : ton problème se situe bien au niveau de ta requête SQL @$requete_verif_heure_cours2 n'est-ce pas ?
Si tel est le cas pourrais-tu répondre à ces questions s'il te plait :
- J'aimerais d'abord savoir comment tu récupères $debut et $fin ou plutôt sous quelle forme tu les récupères ?
- Ensuite : es-tu sûr du format de stockage de "heure_debut" et "duree" dans ta base de donnée ?
- Enfin si tu fais un test simple du style "SELECT heure_debut,duree FROM cours WHERE date='$date'" Ca te retourne bien des données ?
Mais si ton soucis ne se situe pas dans cette requête peux-tu me dire où il se trouve s'il te plait ?
sly-bzh
Messages postés
415
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
5 décembre 2009
118
29 mai 2008 à 10:56
29 mai 2008 à 10:56
L'ajout des parenthèse n'a pas résolu ton problème ?
d'ailleurs quel est ton problème EXACTEMENT ?
Un exemple aiderait je pense à bien comprendre ;)
d'ailleurs quel est ton problème EXACTEMENT ?
Un exemple aiderait je pense à bien comprendre ;)
non ça marche pas mm avec les parenthèses.
ben mon poblème c'est k je vx k cette requête avant de supprimer les lignes de base de données ,elle doit vérifier s'il y a klk chose ou pas à supprimer , et elle doit m'afficher "alerte" "il n'ya pas de cours sur ce crénau d'horaire".
par exemple pour ma requête d'ajout: elle vérifie avant tt s'il y a un cours avant de l'ecraser .
c'est c k je vx.
merci
ben mon poblème c'est k je vx k cette requête avant de supprimer les lignes de base de données ,elle doit vérifier s'il y a klk chose ou pas à supprimer , et elle doit m'afficher "alerte" "il n'ya pas de cours sur ce crénau d'horaire".
par exemple pour ma requête d'ajout: elle vérifie avant tt s'il y a un cours avant de l'ecraser .
c'est c k je vx.
merci
à l'aide svp,
non ça marche pas mm avec les parenthèses.
ben mon poblème c'est k je vx k cette requête avant de supprimer les lignes de base de données ,elle doit vérifier s'il y a klk chose ou pas à supprimer , et elle doit m'afficher "alerte" "il n'ya pas de cours sur ce crénau d'horaire".
par exemple pour ma requête d'ajout: elle vérifie avant tt s'il y a un cours avant de l'ecraser .
c'est c k je vx.
merci
non ça marche pas mm avec les parenthèses.
ben mon poblème c'est k je vx k cette requête avant de supprimer les lignes de base de données ,elle doit vérifier s'il y a klk chose ou pas à supprimer , et elle doit m'afficher "alerte" "il n'ya pas de cours sur ce crénau d'horaire".
par exemple pour ma requête d'ajout: elle vérifie avant tt s'il y a un cours avant de l'ecraser .
c'est c k je vx.
merci
sly-bzh
Messages postés
415
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
5 décembre 2009
118
30 mai 2008 à 00:35
30 mai 2008 à 00:35
Ben justement dans ton code tu mets :
Or si je comprend bien ce que tu as codé, si $nb est supérieur à 0 c'est justement qu'il y a un cours de défini sur ce créneau étant donné que ta requète SQL te renvois au moins une réponse
Au contraire tu devrais faire :
if($nb>0) { alerte("Aucun cours n'est défini sur ce créneau dans cette promotion."); }
Or si je comprend bien ce que tu as codé, si $nb est supérieur à 0 c'est justement qu'il y a un cours de défini sur ce créneau étant donné que ta requète SQL te renvois au moins une réponse
Au contraire tu devrais faire :
if($nb==0) { alerte("Aucun cours n'est défini sur ce créneau dans cette promotion."); } if(!isset($id_promotion) || !isset($id_module) || !isset($id_enseignant)) { alerte("Vous ne pouvez pas supprimer ce cours car certains champs sont vides."); exit; } if(isset($_GET['text_salles']) && (empty($_GET['text_salles']) || $_GET['text_salles'] == "Saisir la salle")) { alerte("La salle n\'a pas été saisie."); } else { $id_cours=id_cours; $id = $_GET['id']; $requete_suppression = "DELETE FROM cours WHERE id_cours = $id_cours"; mysql_query($requete_suppression,$connect) or die ("Erreur : ".mysql_error()); alerte("Le cours a bien été supprimé"); /* Le formulaire de suppression a été envoyé, on a cliqué sur le bouton supprimer le cours */ }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
j'ai modifié ça , mais ça me donne la mm chose , toujours elle m'a ffiche pas l'allerte alerte("Aucun cours n'est défini sur ce créneau dans cette promotion.");
ben ça m'affole vraiment
ben ça m'affole vraiment
sly-bzh
Messages postés
415
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
5 décembre 2009
118
30 mai 2008 à 02:14
30 mai 2008 à 02:14
Bon ben on va se lancer dans le debuggage pas à pas alors...
Tu vas me lancer ce script et voir ce qui sort :
Tu vas me lancer ce script et voir ce qui sort :
<? if(isset($_GET['bouton_supprimer'])) { echo "on entre bien dans le premier if : on a cliqué sur le bouton supprimer<br/>"; /* Chroinologie des des heures de début et de fin du cours */ if($_GET['liste_debut'] >= $_GET['liste_fin']) { alerte("Chronologie entre les heures de début et de fin du cours incorrecte."); } else { echo "on est bien entré dans le 2ème if : $_GET['liste_debut'] >= $_GET['liste_fin'] <br/>"; // La date existe-t-elle ? if(!checkdate($mois,$jour,$annee)) } alerte("Le $jour/$mois/$annee n\'est pas une date valide !"); } else { echo "On est entré dans le 3ème if : la date entrée est bonne et est de la forme : "; // Récupération de la date avec le format jj/mm/aaaa $date = date("d/m/Y",mktime(0,0,0,$mois,$jour,$annee)); echo $date."<br/>"; // La date fait-elle partie de l'année universitaire ? if((ecart_entre_deux_dates($date_debut,$date)<0) || (ecart_entre_deux_dates($date_fin,$date)>0)) { alerte("Le ".date_francais($jour,$mois,$annee)." ne fait pas partie de l\'année universitaire."); } else { echo "on est entré dans le 4ème if : la date fait bien partie de l'année universitaire"; $debut = $_GET['liste_debut']; $fin = $_GET['liste_fin']; $duree = $fin - $debut; //$id_salle = $_GET['liste_salles']; $id_promotion = $_GET['liste_promotion']; echo '$debut = '.$debut.'<br/>'; echo '$fin = '.$fin.'<br/>'; echo '$duree = '.$duree.'<br/>'; if(isset($_GET['case_classe'])) { $id_groupe = NULL; $case_classe = $_GET['case_classe']; } else { $id_groupe = $_GET['liste_groupe']; $case_classe = NULL; } echo '$id_groupe = '.$id_groupe.'<br/>'; echo '$cas_classe = '.$case_classe.'<br/>'; /* nb groupe : si n'estpas > 1 alors $id_groupe = NULL */ /*$requete_nb_groupes = "SELECT id_groupe FROM groupes WHERE id_promotion = '$id_promotion'"; $resultat = mysql_query($requete_nb_groupes,$connect) or die ("Erreur : ".mysql_error()); $nb_groupes = mysql_num_rows($resultat); if($nb_groupes<2) $id_groupe = NULL;*/ /* Vérification qu'aucun cours est déjà crée dans la période indiquée */ @$requete_verif_heure_cours2 = "SELECT heure_debut,duree FROM cours WHERE ((heure_debut < '$debut' AND heure_debut + duree > '$debut') OR (heure_debut < '$fin' AND (heure_debut + duree) >= '$fin') OR (heure_debut >= $debut AND (heure_debut + duree) <= '$fin')) AND date = '$date' AND id_promotion = '$id_promotion' AND (id_groupe='0' OR id_groupe = '$id_groupe')"; echo "<br/> La requète qui va s'exécuter est la suivante : <br/> $requete_verif_heure_cours2<br/>"; $resultat = mysql_query($requete_verif_heure_cours2,$connect) or die ("Erreur : ".mysql_error()); //echo $requete_verif_heure_cours; // S'il y a un cours sur cette plage alors la suppression ne peut pas se faire $nb = mysql_num_rows($resultat); echo "on a nb = $nb<br/>"; if($nb==0) { echo 'on est dans le if testant le nombre, donc $nb est égal à 0<br/>'; alerte("Aucun cours n'est défini sur ce créneau dans cette promotion."); } if(!isset($id_promotion) || !isset($id_module) || !isset($id_enseignant)) { alerte("Vous ne pouvez pas supprimer ce cours car certains champs sont vides."); exit; } if(isset($_GET['text_salles']) && (empty($_GET['text_salles']) || $_GET['text_salles'] == "Saisir la salle")) { alerte("La salle n\'a pas été saisie."); } else { echo "on est dans le else amenant la requète de suppression qui est la suivante : <br/>"; $id_cours=id_cours; $id = $_GET['id']; $requete_suppression = "DELETE FROM cours WHERE id_cours = $id_cours"; echo $requete_suppression; mysql_query($requete_suppression,$connect) or die ("Erreur : ".mysql_error()); alerte("Le cours a bien été supprimé"); /* Le formulaire de suppression a été envoyé, on a cliqué sur le bouton supprimer le cours */ } } } } } ?>
Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in c:\program files\easyphp1-8\www\emplois_tps\creation_emplois_temps.php on line 527
la ligne est :
echo "on est bien entré dans le 2ème if : $_GET['liste_debut'] >= $_GET['liste_fin'] <br/>";
après que j'ai fait le debogage de tt le code , qd je change la date il me donne" le cours est supprimé" sans toucher au bouton supprimer et qd je clique sur ajouter il me fait cours supprimé et aussi insertion effectué.
la ligne est :
echo "on est bien entré dans le 2ème if : $_GET['liste_debut'] >= $_GET['liste_fin'] <br/>";
après que j'ai fait le debogage de tt le code , qd je change la date il me donne" le cours est supprimé" sans toucher au bouton supprimer et qd je clique sur ajouter il me fait cours supprimé et aussi insertion effectué.
sly-bzh
Messages postés
415
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
5 décembre 2009
118
30 mai 2008 à 03:10
30 mai 2008 à 03:10
La parse error tu l'as corrigée n'est-ce pas ? Tu remplaces la ligne par :
echo "on est bien entré dans le 2ème if : _GET['liste_debut'] >= _GET['liste_fin'] <br/>";
Et tu ne veux pas me faire un copier/coller de ce que ça sort exactement s'il te plait ?
echo "on est bien entré dans le 2ème if : _GET['liste_debut'] >= _GET['liste_fin'] <br/>";
Et tu ne veux pas me faire un copier/coller de ce que ça sort exactement s'il te plait ?
merci bcp pour ton aide et c'est grace à $nb=0 que tu m'avais proposé, et j'ai modifié aussi la requête.
}
/* nb groupe : si n'estpas > 1 alors $id_groupe = NULL */
/*$requete_nb_groupes = "SELECT id_groupe FROM groupes WHERE id_promotion = '$id_promotion'";
$resultat = mysql_query($requete_nb_groupes,$connect) or die ("Erreur : ".mysql_error());
$nb_groupes = mysql_num_rows($resultat);
if($nb_groupes<2) $id_groupe = NULL;*/
@$requete_verif_heure_cours =
"SELECT heure_debut,duree FROM cours
WHERE ((heure_debut < '$debut' AND (heure_debut + duree) > '$debut')
OR (heure_debut < '$fin' AND (heure_debut + duree) >= '$fin')
OR (heure_debut >= $debut AND (heure_debut + duree) <= '$fin'))
AND date = '$date' AND id_promotion = '$id_promotion'
AND (id_groupe='0' OR id_groupe = '$id_groupe')";
$resultat = mysql_query($requete_verif_heure_cours,$connect) or die ("Erreur : ".mysql_error());
//echo $requete_verif_heure_cours;
// S'il y a un cours sur cette plage alors l'insertion ne peut pas se faire
$nb = mysql_num_rows($resultat);
//echo "<br> $nb";
if($nb==0){
alerte("Aucun cours n'est défini sur ce créneau dans cette promotion.");
exit;
}
}
/* nb groupe : si n'estpas > 1 alors $id_groupe = NULL */
/*$requete_nb_groupes = "SELECT id_groupe FROM groupes WHERE id_promotion = '$id_promotion'";
$resultat = mysql_query($requete_nb_groupes,$connect) or die ("Erreur : ".mysql_error());
$nb_groupes = mysql_num_rows($resultat);
if($nb_groupes<2) $id_groupe = NULL;*/
@$requete_verif_heure_cours =
"SELECT heure_debut,duree FROM cours
WHERE ((heure_debut < '$debut' AND (heure_debut + duree) > '$debut')
OR (heure_debut < '$fin' AND (heure_debut + duree) >= '$fin')
OR (heure_debut >= $debut AND (heure_debut + duree) <= '$fin'))
AND date = '$date' AND id_promotion = '$id_promotion'
AND (id_groupe='0' OR id_groupe = '$id_groupe')";
$resultat = mysql_query($requete_verif_heure_cours,$connect) or die ("Erreur : ".mysql_error());
//echo $requete_verif_heure_cours;
// S'il y a un cours sur cette plage alors l'insertion ne peut pas se faire
$nb = mysql_num_rows($resultat);
//echo "<br> $nb";
if($nb==0){
alerte("Aucun cours n'est défini sur ce créneau dans cette promotion.");
exit;
}
sly-bzh
Messages postés
415
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
5 décembre 2009
118
30 mai 2008 à 14:19
30 mai 2008 à 14:19
Et donc ça marche ?
Content d'avoir aidé alors :D
Content d'avoir aidé alors :D
29 mai 2008 à 02:04
ben j'ai déjà une autre requête des ajouts qui se situe sur la mm page et qu'elle fonctionne bien , ou il y a aussi la mmrequete de SQL @$requete_verif_heure_cours2 ,ben je voulais juste vous préciser que je suis pas hyperdouée en php , mais j'ai un truc à rendre et c très urgent , merci bcppp pour votre aide