msi79
Messages postés509Date d'inscriptionlundi 24 août 2009StatutMembreDernière intervention 2 mai 2023
-
Modifié par msi79 le 9/10/2013 à 07:13
jordane45
Messages postés38144Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention21 avril 2024
-
9 oct. 2013 à 15:42
Bonjour, quelqu'un peut il m'aider a retrouver l'erreur dans ma requète v? mercu d'avance.
voici l'erreur qui s'affiche :
Erreur SQL !
SELECT a.id_infoG,a.jugerV,a.JdateInt,a.MdateInt,a.AdateInt,a.JdateVerif,a.MdateVerif,a.AdateVerif,a.Jdatecod,a.Mdatecod,a.Adatecod,a.Jdatesaisi,a.Mdatesaisi,a.Adatesaisi,a.observationV,b.id_prejMat,b.pejudiceMateriels1,b.pejudiceMateriels2,b.pejudiceMateriels3,b.pejudiceMateriels4,b.pejudiceMateriels5,b.pejudiceMateriels6,b.pejudiceMateriels7,b.pejudiceMateriels8,b.autreprejudices,c.id,pereD,c.mereD,c.epouseD,d.id,d.nom_loc,e.id,e.nom_com,f.id,f.nom_sous_pref,g.id,g.nom_depart,h.matricule,h.nomV,h.prenomV,h.epouseV,h.lienV,h.autreLienV,h.sexeV,h.jourD,h.moisD,h.anneeD,h.ageD,h.nationaliteV,h.pieceV,h.autrepieceV,h.numeroPieceV,h.groupeEthniqueV,h.langue1,h.langue2,h.professionAct,h.professionD,h.religionP,h.autreReligion,h.lireV,h.radios_0,h.causedecedeD,h.observationV,h.ate_ohourd8,i.id_prejM,i.prejudiceMoraux1,i.prejudiceMoraux2,i.prejudiceMoraux3,i.prejudiceMoraux4,i.prejudiceMoraux5,i.prejudiceMoraux6,i.prejudiceMoraux7,i.prejudiceMoraux8,i.prejudiceMoraux9,i.prejudiceMoraux10 FROM infogenerale a , prejudicemateriel b , tb_parent c , tb_localite d, tb_commune e, tb_sous_prefecture f, tb_departement g , victime h ,prejudicemoraux i WHERE a.id_infoG = b.id_prejMat AND c.id = a.id_infoG AND d.id = a.id_infoG AND e.id = a.id_infoG AND f.id = a.id_infoG AND g.id = a.id_infoG AND h.matricule = a.id_infoG AND i.id_prejM = a.id_infoG AND a.id_infoG = '
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 '1'>
et voici le code
<?php
if(isset($_GET['id'])) $get_id = urldecode($_GET['id']);
// on crée la requête SQL
$sql = "SELECT a.id_infoG,a.jugerV,a.JdateInt,a.MdateInt,a.AdateInt,a.JdateVerif,a.MdateVerif,a.AdateVerif,a.Jdatecod,a.Mdatecod,a.Adatecod,a.Jdatesaisi,a.Mdatesaisi,a.Adatesaisi,a.observationV,b.id_prejMat,b.pejudiceMateriels1,b.pejudiceMateriels2,b.pejudiceMateriels3,b.pejudiceMateriels4,b.pejudiceMateriels5,b.pejudiceMateriels6,b.pejudiceMateriels7,b.pejudiceMateriels8,b.autreprejudices,c.id,pereD,c.mereD,c.epouseD,d.id,d.nom_loc,e.id,e.nom_com,f.id,f.nom_sous_pref,g.id,g.nom_depart,h.matricule,h.nomV,h.prenomV,h.epouseV,h.lienV,h.autreLienV,h.sexeV,h.jourD,h.moisD,h.anneeD,h.ageD,h.nationaliteV,h.pieceV,h.autrepieceV,h.numeroPieceV,h.groupeEthniqueV,h.langue1,h.langue2,h.professionAct,h.professionD,h.religionP,h.autreReligion,h.lireV,h.radios_0,h.causedecedeD,h.observationV,h.ate_ohourd8,i.id_prejM,i.prejudiceMoraux1,i.prejudiceMoraux2,i.prejudiceMoraux3,i.prejudiceMoraux4,i.prejudiceMoraux5,i.prejudiceMoraux6,i.prejudiceMoraux7,i.prejudiceMoraux8,i.prejudiceMoraux9,i.prejudiceMoraux10 FROM infogenerale a , prejudicemateriel b , tb_parent c , tb_localite d, tb_commune e, tb_sous_prefecture f, tb_departement g , victime h ,prejudicemoraux i WHERE a.id_infoG = b.id_prejMat AND c.id = a.id_infoG AND d.id = a.id_infoG AND e.id = a.id_infoG AND f.id = a.id_infoG AND g.id = a.id_infoG AND h.matricule = a.id_infoG AND i.id_prejM = a.id_infoG AND a.id_infoG = '".$_GET['id']."' ";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$res = mysql_num_rows($req); // 4
?>
jordane45
Messages postés38144Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention21 avril 2024344 Modifié par jordane45 le 9/10/2013 à 08:20
Bonjour.
Le message d'erreur se termine
sur le dernier And de ta clause
where par
='.
Autrement dit...to $_GET ['id'] semble être vide.
Ou avoir une valeur qui le dérange.
Que vaut ta variable dans ce cas precis ?
Encore une fois. ..ajoute un echo pour le vérifier.
msi79
Messages postés509Date d'inscriptionlundi 24 août 2009StatutMembreDernière intervention 2 mai 20231 9 oct. 2013 à 09:17
oui merci le problème est réglé . id mal renvoyé
mais dit mois est-ce que la longueur de la requête peut entrainer une lourdeur lors du chargement de la page . si oui quelle alternative pour éviter cela
jordane45
Messages postés38144Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention21 avril 2024344 9 oct. 2013 à 10:22
le problème est réglé
Si le souci est réglé.. pense à mettre la question en RESOLU.
Merci.
est-ce que la longueur de la requête peut entrainer une lourdeur lors du chargement de la page
La longueur de la requête en terme de longueur de la chaine de caractères.. non.
Par contre, une requête mal construite, qui va rechercher plein d'infos dans pleins de tables peut mettre du temps à s'éxectuter...et donc ralentir le chargement de ta page.
Pour éviter cela, pas d'autres choix que de revoir sa requête différemment.
Passer par des jointures par exemples.
PS: Lorsque tu écris tes requêtes, n'héistes pas à faire des retours à la ligne. Cela rend ta requête beaucoup plus lisible et comprehensible (pour toi .. . Ca ne change rien au fonctionnement. )
exemple:
$sql = "SELECT a.id_infoG
,a.jugerV
,a.JdateInt
,a.MdateInt
,a.AdateInt
,a.JdateVerif
,a.MdateVerif
,a.AdateVerif
,a.Jdatecod
,a.Mdatecod
,a.Adatecod
,a.Jdatesaisi
,a.Mdatesaisi
,a.Adatesaisi
,a.observationV
,b.id_prejMat
,b.pejudiceMateriels1
,b.pejudiceMateriels2
,b.pejudiceMateriels3
,b.pejudiceMateriels4
,b.pejudiceMateriels5
,b.pejudiceMateriels6
,b.pejudiceMateriels7
,b.pejudiceMateriels8
,b.autreprejudices
,c.id,pereD
,c.mereD
,c.epouseD
,d.id
,d.nom_loc
,e.id,e.nom_com
,f.id,f.nom_sous_pref
,g.id,g.nom_depart
,h.matricule
,h.nomV
,h.prenomV
,h.epouseV
,h.lienV
,h.autreLienV
,h.sexeV
,h.jourD
,h.moisD
,h.anneeD
,h.ageD
,h.nationaliteV
,h.pieceV
,h.autrepieceV
,h.numeroPieceV
,h.groupeEthniqueV
,h.langue1
,h.langue2
,h.professionAct
,h.professionD
,h.religionP
,h.autreReligion
,h.lireV
,h.radios_0
,h.causedecedeD
,h.observationV
,h.ate_ohourd8
,i.id_prejM
,i.prejudiceMoraux1
,i.prejudiceMoraux2
,i.prejudiceMoraux3
,i.prejudiceMoraux4
,i.prejudiceMoraux5
,i.prejudiceMoraux6
,i.prejudiceMoraux7
,i.prejudiceMoraux8
,i.prejudiceMoraux9
,i.prejudiceMoraux10
FROM infogenerale a
, prejudicemateriel b
, tb_parent c
, tb_localite d
, tb_commune e
, tb_sous_prefecture f
, tb_departement g
, victime h
,prejudicemoraux i
WHERE a.id_infoG = b.id_prejMat
AND c.id = a.id_infoG
AND d.id = a.id_infoG
AND e.id = a.id_infoG
AND f.id = a.id_infoG
AND g.id = a.id_infoG
AND h.matricule = a.id_infoG
AND i.id_prejM = a.id_infoG
AND a.id_infoG = '".$_GET['id']."' ";
msi79
Messages postés509Date d'inscriptionlundi 24 août 2009StatutMembreDernière intervention 2 mai 20231 9 oct. 2013 à 15:09
vraiment ma requête marche mais ça tarde trop a charger . donnez moi une solution svp à ça.
AJAX peut il résoudre ce problème ? si oui comment m'y prendre .
NB : ce que j'ai écris comme requête est aussi une jointure donc je vois pas d'autre jointure encore.
jordane45
Messages postés38144Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention21 avril 2024344 Modifié par jordane45 le 9/10/2013 à 15:44
ma requête marche mais ça tarde trop a charger . donnez moi une solution
Nous ne disposons pas de ta BDD... il ne nous est donc pas possible d'effectuer des tests.
Et puis, autant on peut t'aider lorsqu'il y a un problème technique identifié.. autant là.. pour optimiser une requête qui va chercher un max d'infos dans plein de tables différentes...pffff... ça risque d'être compliqué (hormis de conseiller de regarder les différentes formes de jointures existantes )
En tous cas :
Ceci est une nouvelle question. donc merci de clôturer celle ci et d'en ouvrir une nouvelle.
AJAX peut il résoudre ce problème ?
Voyons voir.... Répond déjà à cette question : "A quoi sert AJAX ?"
-> tu devrais trouver la réponse à ta question assez facilement....
Concernant les jointures.. il en existe "différentes" formes.(je te laisse regarder sur le net)