Erreur substring
Résolu/Fermé
t671
Messages postés
1459
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
19 novembre 2024
-
Modifié par t671 le 6/08/2016 à 19:32
t671 Messages postés 1459 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 19 novembre 2024 - 8 août 2016 à 16:27
t671 Messages postés 1459 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 19 novembre 2024 - 8 août 2016 à 16:27
A voir également:
- Erreur substring
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 1001 outlook - Accueil - Bureautique
- Erreur 3005 france tv - Forum TV & Vidéo
- Erreur 5000 france tv - Forum iPhone
7 réponses
NHenry
Messages postés
15163
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 novembre 2024
345
6 août 2016 à 19:56
6 août 2016 à 19:56
Relis ton code :
.tonarray[$i]['date_mariage'].
.$tonarray[$i]['conjoint'].
Lequel est le bon ?
.tonarray[$i]['date_mariage'].
.$tonarray[$i]['conjoint'].
Lequel est le bon ?
t671
Messages postés
1459
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
19 novembre 2024
11
Modifié par t671 le 7/08/2016 à 11:50
Modifié par t671 le 7/08/2016 à 11:50
Merci ! Effectivement ...............
Par contre, maintenant j'ai une autre erreur, toujours sur
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 'mai 1856, -4)) ASC' at line 1
mai 1856 correspond à '.$tonarray[$i]['date_mariage'].'.
Je ne veux trier que sur le 1856 !??
Par contre, maintenant j'ai une autre erreur, toujours sur
$query4 = 'SELECT id,num_indiv,famille,nom,prenom,date_naissance,date_dc FROM individus WHERE num_indiv LIKE '.$tonarray[$i]['conjoint'].' ORDER BY (SUBSTRING('.$tonarray[$i]['date_mariage'].', -4)) ASC';
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 'mai 1856, -4)) ASC' at line 1
mai 1856 correspond à '.$tonarray[$i]['date_mariage'].'.
Je ne veux trier que sur le 1856 !??
NHenry
Messages postés
15163
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 novembre 2024
345
7 août 2016 à 11:58
7 août 2016 à 11:58
Affiche (avec echo par exemple) ta requête avant son exécution et regardes ce qui ne va pas.
t671
Messages postés
1459
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
19 novembre 2024
11
Modifié par t671 le 7/08/2016 à 14:00
Modifié par t671 le 7/08/2016 à 14:00
Je ne vois pas bien ce que je pourrais afficher !
Voici mon tableau :
ma requête :
Et quand j'ai l'erreur 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 'mai 1856, -4)) ASC' at line 1
la date est en fait "15 mai 1856", et je cherche à trier sur les 4 derniers caractères, là 1856 !
Voici mon tableau :
$tonarray[0]=array("mariage" => $marg_1 ,"date_mariage" => $row['date_mariage_1'] , "conjoint" => $row['num_cj_1'] , "lieu_mariage" => $row['lieu_mariage_1'] , "acte_mariage" => $row['acte_mariage_1'] , "divorce" => $row['divorce_1'], "photo_lieu" => $row['photo_lieu_lien_1']); $tonarray[1]=array("mariage" => $marg_2 ,"date_mariage" => $row['date_mariage_2'] , "conjoint" => $row['num_cj_2'] , "lieu_mariage" => $row['lieu_mariage_2'] , "acte_mariage" => $row['acte_mariage_2'] , "divorce" => $row['divorce_2']); $tonarray[2]=array("mariage" => $marg_3 ,"date_mariage" => $row['date_mariage_3'] , "conjoint" => $row['num_cj_3'] , "lieu_mariage" => $row['lieu_mariage_3'] , "acte_mariage" => $row['acte_mariage_3'] , "divorce" => $row['divorce_3']); $tonarray[3]=array("mariage" => $marg_4 ,"date_mariage" => $row['date_mariage_4'] , "conjoint" => $row['num_cj_4'] , "lieu_mariage" => $row['lieu_mariage_4'] , "acte_mariage" => $row['acte_mariage_4'] , "divorce" => $row['divorce_4']); sort($tonarray); for($i=0; $i<=3; $i++) {
ma requête :
if ($tonarray[$i]['conjoint'] != "") { $query4 = 'SELECT id,num_indiv,famille,nom,prenom,date_naissance,date_dc FROM individus WHERE num_indiv LIKE '.$tonarray[$i]['conjoint'].' ORDER BY SUBSTRING('.$tonarray[$i]['date_mariage'].', -4) ASC'; $result4 = mysql_query($query4) or die(mysql_error()); $row4 = mysql_fetch_array($result4);
Et quand j'ai l'erreur 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 'mai 1856, -4)) ASC' at line 1
la date est en fait "15 mai 1856", et je cherche à trier sur les 4 derniers caractères, là 1856 !
NHenry
Messages postés
15163
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 novembre 2024
345
7 août 2016 à 14:34
7 août 2016 à 14:34
Affiche le contenu de la variable $query4 et essayes-la dans PhpMyAdmin.
t671
Messages postés
1459
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
19 novembre 2024
11
7 août 2016 à 15:35
7 août 2016 à 15:35
L'erreur est dans la syntaxe :
(SUBSTRING('.$tonarray[$i]['date_mariage'].', -4))
Mais je ne trouve pas comment !!??
(SUBSTRING('.$tonarray[$i]['date_mariage'].', -4))
Mais je ne trouve pas comment !!??
NHenry
Messages postés
15163
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 novembre 2024
345
7 août 2016 à 16:53
7 août 2016 à 16:53
2 choses :
Il ne manque pas des quotes ?
Et ne serait-il pas préférable de faire le Substring directement dans PHP plutôt que de le faire dans la requête ?
Il ne manque pas des quotes ?
Et ne serait-il pas préférable de faire le Substring directement dans PHP plutôt que de le faire dans la requête ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
t671
Messages postés
1459
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
19 novembre 2024
11
8 août 2016 à 10:18
8 août 2016 à 10:18
Effectivement, c'est ce qui me semble. Mais je ne vois pas où en rajouter ............. !?
Et j'avais penser faire un substring directement dans php, mais comme le résultat sort d'un tableau, je ne sais pas trop comment ça marche !
Et j'avais penser faire un substring directement dans php, mais comme le résultat sort d'un tableau, je ne sais pas trop comment ça marche !
NHenry
Messages postés
15163
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 novembre 2024
345
8 août 2016 à 11:26
8 août 2016 à 11:26
Ca fonctionne comme toute variable ...
Pour les quotes, il faut les ajoutées dans la requête.
Pour les quotes, il faut les ajoutées dans la requête.
t671
Messages postés
1459
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
19 novembre 2024
11
8 août 2016 à 11:37
8 août 2016 à 11:37
J'ai essayé plusieurs solutions, et si j'écris
Le tri ne se fait pas ???
ORDER BY 'SUBSTRING('.$tonarray[$i]['date_mariage'].', -4)' ASC'
Le tri ne se fait pas ???
t671
Messages postés
1459
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
19 novembre 2024
11
8 août 2016 à 11:46
8 août 2016 à 11:46
Je n'y arrive vraiment pas ! Tu as la solution ?
NHenry
Messages postés
15163
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 novembre 2024
345
8 août 2016 à 11:56
8 août 2016 à 11:56
Fais ton SubString par PHP, pour commencer, sinon, en SQL, tu fais un ORDER BY sur une donnée fixe, donc pas de sens.
Et pour échapper une quote ', il faut mettre un \ devant.
Et pour échapper une quote ', il faut mettre un \ devant.
t671
Messages postés
1459
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
19 novembre 2024
11
8 août 2016 à 15:25
8 août 2016 à 15:25
Je pense que j'approche .............
Si je fais "usort($tonarray);" à la place de "sort($tonarray);" j'affiche dans l'ordre voulu.
Par contre, j'ai le message d'erreur "Warning: Wrong parameter count for usort() ......"
Si je fais "usort($tonarray);" à la place de "sort($tonarray);" j'affiche dans l'ordre voulu.
Par contre, j'ai le message d'erreur "Warning: Wrong parameter count for usort() ......"
t671
Messages postés
1459
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
19 novembre 2024
11
8 août 2016 à 16:27
8 août 2016 à 16:27
Ca fonctionne avec asort !
Merci !
Merci !