Une erreur php sur une requete sql
Résolu
DiabloAndSab
Messages postés
80
Date d'inscription
Statut
Membre
Dernière intervention
-
DiabloAndSab Messages postés 80 Date d'inscription Statut Membre Dernière intervention -
DiabloAndSab Messages postés 80 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Une erreur php sur une requete sql
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
- Youtube une erreur s'est produite ✓ - Forum YouTube
- Une erreur inattendue est survenue instagram ✓ - Forum Instagram
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
7 réponses
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.
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é.
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.
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
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 ^^
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.
c'est à dire celle là:
Merci d'avance pour vos reponses.