Une erreur php sur une requete sql
Résolu/Fermé
DiabloAndSab
Messages postés
80
Date d'inscription
mardi 9 octobre 2007
Statut
Membre
Dernière intervention
19 février 2009
-
19 mars 2008 à 17:39
DiabloAndSab Messages postés 80 Date d'inscription mardi 9 octobre 2007 Statut Membre Dernière intervention 19 février 2009 - 21 mars 2008 à 14:08
DiabloAndSab Messages postés 80 Date d'inscription mardi 9 octobre 2007 Statut Membre Dernière intervention 19 février 2009 - 21 mars 2008 à 14:08
A voir également:
- Une erreur php sur une requete sql
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur vidéo freebox ✓ - Forum TV & Vidéo
- Erreur 1001 outlook - Accueil - Bureautique
- Erreur 38 free ✓ - Forum Mobile
7 réponses
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
921
19 mars 2008 à 17:42
19 mars 2008 à 17:42
salut,
c'est quelle ligne la 90 ?
c'est quelle ligne la 90 ?
DiabloAndSab
Messages postés
80
Date d'inscription
mardi 9 octobre 2007
Statut
Membre
Dernière intervention
19 février 2009
2
20 mars 2008 à 09:05
20 mars 2008 à 09:05
C'est bon j'ai trouvé:
Apparemment c'est le while qui plante donc si à la place on met un for ca fonctionne très bien
Merci quand même pour l'aide Dalida.
Apparemment c'est le while qui plante donc si à la place on met un for ca fonctionne très bien
$num= mysql_num_rows($bool2); if ($ligne) { $i=1; $numPartTrans=0; for($i;$i<$num;$i++) {
Merci quand même pour l'aide Dalida.
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
921
20 mars 2008 à 10:20
20 mars 2008 à 10:20
salut,
oula, je n'avais pas lu le source en attendant l'info, j'aurais pu.
ton script est très bizarrement construit !
veux-tu des conseils pour y mettre un peu d'ordre ?
par exemple, si ton 'while()' ne fonctionne pas, c'est qu'il est mal utilisé.
oula, je n'avais pas lu le source en attendant l'info, j'aurais pu.
ton script est très bizarrement construit !
veux-tu des conseils pour y mettre un peu d'ordre ?
par exemple, si ton 'while()' ne fonctionne pas, c'est qu'il est mal utilisé.
DiabloAndSab
Messages postés
80
Date d'inscription
mardi 9 octobre 2007
Statut
Membre
Dernière intervention
19 février 2009
2
20 mars 2008 à 10:59
20 mars 2008 à 10:59
Oué je veux bien que tu m'expluqe pour le while.
Merci
Merci
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
921
20 mars 2008 à 12:19
20 mars 2008 à 12:19
en premier, regarde ton script. je n'ai conservé que ce qui sert à la requête 2.
'mysql_fetch_assoc()' retourne "vrai" quand il réussit à lire la ligne courante dans la réponse de la bdd.
le 'while()' effectue la boucle "tant que" la valeur qu'il teste est vraie.
donc tant que le résultat de ta bdd retourne une ligne, la boucle s'exécute.
pour que ton code soit plus lisible mieux vaut utiliser des variables avec des noms explicites. en général on prend des noms en anglais qui sont les mêmes que ceux utilisés dans le manuel PHP, comme ça tu repères plus vite ce qu'il faut utiliser avec d'autres fonctions.
en plus de cela, je formate ta requête SQL (instructions en majuscules, champs entre accents aigus) et j'utilise 'mysql_fetch_object()' au lieu de 'mysql_fetch_array()' qui renvoie un objet au lieu d'un tableau. cela permet d'appeler la valeur de la ligne par '$row->Champ' plutôt que '$row["Champ"]' ce qui est beaucoup plus simple à taper.
cela donne :
plus claire non ?
il y a peut être des fautes de syntaxes, j'ai tout tapé à la volé et je ne peux pas tester !
-;o)
maintenant, il n'y a plus qu'à remettre ce que tu voulais faire avec '$requete5' en suivant la même méthode.
'mysql_fetch_assoc()' retourne "vrai" quand il réussit à lire la ligne courante dans la réponse de la bdd.
le 'while()' effectue la boucle "tant que" la valeur qu'il teste est vraie.
donc tant que le résultat de ta bdd retourne une ligne, la boucle s'exécute.
<?php $requete2="select distinct( Nom), Prenom, Naissance, Adresse, CP, Ville, Pays, Sexe, AnneeNaiss, Categorie, Club from insc_mdc_nouv order by Nom"; $bool2=mysql_query($requete2,$connexion); while( $ligne=mysql_fetch_array($bool2) ) { $nom=$ligne["Nom"]; $prenom=$ligne["Prenom"]; $naissance=$ligne["Naissance"]; $adresse=$ligne["Adresse"]; $CP=$ligne["CP"]; $ville=$ligne["Ville"]; $pays=$ligne["Pays"]; $sexe=$ligne["Sexe"]; $anneeNaiss=$ligne["AnneeNaiss"]; $categorie=$ligne["Categorie"]; $club=$ligne["Club"]; echo $ligne["Nom"]." ".$ligne["Prenom"]." ".$ligne["Naissance"]." ".$ligne["Adresse"]." ".$ligne["CP"]." ".$ligne["Ville"]." ".$ligne["Pays"]." ".$ligne["Sexe"]." ".$ligne["AnneeNaiss"]." ".$ligne["Categorie"]." ".$ligne["Club"]; //$ligne=mysql_fetch_array($bool2); /* là tu ne devrais pas toucher à la ligne en cours */ /* à priori, $requete3 ne sert pas */ /*$requete3="INSERT INTO insc_mdc_connu VALUES (NULL, '0', '".$nom."', '".$prenom."', '".$naissance."', '".$adresse."', '".$CP."', '".$ville."', '".$pays."', '".$sexe."', '".$anneeNaiss."', '".$categorie."', '".$club."', NULL , NULL , '0', '0', '0', '0', '0', '0', '', NULL , '', '0', '0', '0', '0', '0', '0', '0', '0', NULL , '0');"; echo $requete3; */ /* là tu travailles avec la ligne suivante, est-ce bien ce que tu veux ??? */ /*$requete5="Select * from insc_mdc_connu where Nom='".$ligne["Nom"]."' and Prenom='".$ligne["Prenom"]."' and Naissance='".$ligne["Naissance"]."';"; $result = mysql_query($requete5, $connexion); //echo $requete5; $Num= mysql_num_rows($result); if($Num==0) { //$bool2=mysql_query($requete3,$connexion); echo 'c bon'; }*/ } ?>
pour que ton code soit plus lisible mieux vaut utiliser des variables avec des noms explicites. en général on prend des noms en anglais qui sont les mêmes que ceux utilisés dans le manuel PHP, comme ça tu repères plus vite ce qu'il faut utiliser avec d'autres fonctions.
en plus de cela, je formate ta requête SQL (instructions en majuscules, champs entre accents aigus) et j'utilise 'mysql_fetch_object()' au lieu de 'mysql_fetch_array()' qui renvoie un objet au lieu d'un tableau. cela permet d'appeler la valeur de la ligne par '$row->Champ' plutôt que '$row["Champ"]' ce qui est beaucoup plus simple à taper.
cela donne :
<?php $sql = 'SELECT DISTINCT( `Nom` ), `Prenom`, `Naissance`, `Adresse`, `CP`, `Ville`, `Pays`, `Sexe`, `AnneeNaiss`, `Categorie`, `Club` FROM `insc_mdc_nouv` ORDER BY `Nom`;'; $result = mysql_query( $sql , $connexion ); while( $row = mysql_fetch_object( $result ) ) { echo $row->Nom." ".$row->Prenom." ".$row->Naissance." ".$row->Adresse." ".$row->CP." ".$row->Ville." ".$row->Pays." ".$row->Sexe." ".$row->AnneeNaiss." ".$row->Categorie." ".$row->Club; } ?>
plus claire non ?
il y a peut être des fautes de syntaxes, j'ai tout tapé à la volé et je ne peux pas tester !
-;o)
maintenant, il n'y a plus qu'à remettre ce que tu voulais faire avec '$requete5' en suivant la même méthode.
DiabloAndSab
Messages postés
80
Date d'inscription
mardi 9 octobre 2007
Statut
Membre
Dernière intervention
19 février 2009
2
20 mars 2008 à 15:42
20 mars 2008 à 15:42
Merci Dalida pour l'explication c'est sympa par contre ca bug un peu et j'ai dejà une solution qui fonctionne
et il me reste encore plusieurs chose à faire. Je te remercie pour ton aide.
Par contre si tu sais comment transformer une page qui recoit un résultat de requete sql sous forme de tableau
en pdf; je suis tout ouïe. J'ai dejà post ce sujet mais ya pas grand monde qui m'a repondu.
http://www.commentcamarche.net/forum/affich 5508161 mettre une page internet en pdf
Voilà et encore merci!
et il me reste encore plusieurs chose à faire. Je te remercie pour ton aide.
Par contre si tu sais comment transformer une page qui recoit un résultat de requete sql sous forme de tableau
en pdf; je suis tout ouïe. J'ai dejà post ce sujet mais ya pas grand monde qui m'a repondu.
http://www.commentcamarche.net/forum/affich 5508161 mettre une page internet en pdf
Voilà et encore merci!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
921
20 mars 2008 à 15:43
20 mars 2008 à 15:43
salut,
pour le PDF, mieux vaut utiliser une bibliothèque.
regarde là, je te conseille FPDF.
pour le PDF, mieux vaut utiliser une bibliothèque.
regarde là, je te conseille FPDF.
DiabloAndSab
Messages postés
80
Date d'inscription
mardi 9 octobre 2007
Statut
Membre
Dernière intervention
19 février 2009
2
20 mars 2008 à 16:15
20 mars 2008 à 16:15
Ok merci je te tiens au courant
chico200987
Messages postés
791
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
30 juillet 2018
143
20 mars 2008 à 16:27
20 mars 2008 à 16:27
Salut DiabloAndSeb,
J'ai relu en diagonale ta requête 3 même si c'est résolu, si tu as copié collé il y a une erreur à la fin :
$requete3="INSERT INTO insc_mdc_connu VALUES (NULL, '0', '".$nom."', '".$prenom."', '".$naissance."',
'".$adresse."', '".$CP."', '".$ville."', '".$pays."', '".$sexe."', '".$anneeNaiss."', '".$categorie."',
'".$club."', NULL , NULL , '0', '0', '0', '0', '0', '0', '', NULL , '', '0', '0', '0', '0', '0', '0', '0', '0'NULL , '0');";
Il semble qu'une petite virgule manque mais comme le dit Dalida, c'est bien le bordel ^^
J'ai relu en diagonale ta requête 3 même si c'est résolu, si tu as copié collé il y a une erreur à la fin :
$requete3="INSERT INTO insc_mdc_connu VALUES (NULL, '0', '".$nom."', '".$prenom."', '".$naissance."',
'".$adresse."', '".$CP."', '".$ville."', '".$pays."', '".$sexe."', '".$anneeNaiss."', '".$categorie."',
'".$club."', NULL , NULL , '0', '0', '0', '0', '0', '0', '', NULL , '', '0', '0', '0', '0', '0', '0', '0', '0'NULL , '0');";
Il semble qu'une petite virgule manque mais comme le dit Dalida, c'est bien le bordel ^^
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
921
20 mars 2008 à 16:34
20 mars 2008 à 16:34
salut,
comme le dit Dalida, c'est bien le bordel
tu dépasses mes propos !!!
mais peut être pas ma pensée…
-;o)
comme le dit Dalida, c'est bien le bordel
tu dépasses mes propos !!!
mais peut être pas ma pensée…
-;o)
DiabloAndSab
Messages postés
80
Date d'inscription
mardi 9 octobre 2007
Statut
Membre
Dernière intervention
19 février 2009
2
21 mars 2008 à 14:06
21 mars 2008 à 14:06
Dsl pour la virgule petit bug j'ai verifié.
Et c'est Diablo and Sab mon pseudo, mais bon vous pouvez dire Diablo
Merci pour ta réponse.
Et c'est Diablo and Sab mon pseudo, mais bon vous pouvez dire Diablo
Merci pour ta réponse.
croy
Messages postés
453
Date d'inscription
samedi 19 janvier 2008
Statut
Membre
Dernière intervention
23 octobre 2012
114
20 mars 2008 à 16:41
20 mars 2008 à 16:41
C'est effectivement plus que le foutoir.
J'ai réécrit ton INSERT en ordonnant le code, en passant à la ligne régulièrement et en séparant chaque élément syntaxique par un espace.
Ceci permet très rapidement d'arriver à ce qui suit et devrait fonctionner sans pb :
Une recommandation : écris toujours ton code de manière ordonnée, crois-moi tu y gagneras énormément de temps.
J'ai réécrit ton INSERT en ordonnant le code, en passant à la ligne régulièrement et en séparant chaque élément syntaxique par un espace.
Ceci permet très rapidement d'arriver à ce qui suit et devrait fonctionner sans pb :
$requete3 = "INSERT INTO insc_mdc_connu" . " VALUES (NULL, '0', '" . $nom . "', '" . $prenom . "', '" . $naissance . "','" . $adresse . "', '" . $CP . "', '" . $ville . "', '" . $pays . "', '" . $sexe . "', '" . $anneeNaiss . "', '" . $categorie . "','" . $club . "', NULL , NULL , '0', '0', '0', '0', '0', '0'," . "'', NULL , '', '0', '0', '0', '0', '0', '0', '0'," . "'0', NULL , '0')";
Une recommandation : écris toujours ton code de manière ordonnée, crois-moi tu y gagneras énormément de temps.
DiabloAndSab
Messages postés
80
Date d'inscription
mardi 9 octobre 2007
Statut
Membre
Dernière intervention
19 février 2009
2
21 mars 2008 à 14:08
21 mars 2008 à 14:08
Ok merci croy pour ton aide.
Mais en fete ce que j'ai envoyé et ma mise en forme
final c'est à dire que je mets tous sur une ou deux lignes
pour faciliter la lecture du script. Par contre je suis désolé
d'avoir mis cette mise en forme.
Merci pour ton aide
Mais en fete ce que j'ai envoyé et ma mise en forme
final c'est à dire que je mets tous sur une ou deux lignes
pour faciliter la lecture du script. Par contre je suis désolé
d'avoir mis cette mise en forme.
Merci pour ton aide
20 mars 2008 à 08:36
c'est à dire celle là:
Merci d'avance pour vos reponses.