A voir également:
- You have an error in your sql syntax near ' '' at line 1
- A javascript error occurred in the main process - Forum Matériel & Système
- In da place - Forum Mail
- Navigation in private - Guide
- Dc in - Forum Audio
- Deco in paris avis ✓ - Forum Consommation & Internet
4 réponses
Salut,
Le message d erreur est assez explicite, un echo de ta requête t aurai mis sur la voie si tu ne le vois pas directement.
Donc dans ta requete:
Il y a deux erreurs:
- Le
soit
soit
Le premier problème sera corrigé.
- le
Test et confirme si c est ok.
naga
Le message d erreur est assez explicite, un echo de ta requête t aurai mis sur la voie si tu ne le vois pas directement.
Donc dans ta requete:
$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)';
Il y a deux erreurs:
- Le
LIKE '.$tonarray[$i]['conjoint'].': d'une part il manque les quotes (c'est un string), et d'autre part l utilisation du like inclu un joker .. ce n est pas une obligation mais faire un like sur une chaine fixe est une hérésie ! mécréant! ^^. Plus sérieusement, en mettant
soit
WHERE num_indiv LIKE "'.$tonarray[$i]['conjoint'].'%" ORDER BY
soit
WHERE num_indiv = "'.$tonarray[$i]['conjoint'].'" ORDER BY
Le premier problème sera corrigé.
- le
ORDER BY (SUBSTRING('.$tonarray[$i]['date_mariage'].', -4) ASC)': même remarque pour le string: manque les quotes. Donc:
ORDER BY (SUBSTRING("'.$tonarray[$i]['date_mariage'].'", -4) ASC)'
Test et confirme si c est ok.
naga
Merci naga, mais le tri sur date_mariage (du plus loin au plus prêt) ne se fait toujours pas :o(
Si je fais un "echo $query4", il m'affiche
SELECT id,num_indiv,famille,nom,prenom,date_naissance,date_dc FROM individus WHERE num_indiv = "4792" ORDER BY (SUBSTRING("28 mai 1787", -4)) ASCSELECT id,num_indiv,famille,nom,prenom,date_naissance,date_dc FROM individus WHERE num_indiv = "4795" ORDER BY (SUBSTRING("1782", -4)) ASC
Le premier mariage enregistré dans la base est bien le num_indiv 4792 en 1787.
Le second mariage ajouté dans la base est bien le num_indiv 4795 en 1782.
En résultat je veux afficher celui en 1782 puis en 1787, ce qui n'est pas le cas actuellement !
Si je le test directement via ma BDD il ne reconnait pas $tonarray = array();
SELECT id,num_indiv,famille,nom,prenom,date_naissance,date_dc FROM individus WHERE num_indiv = "4792" ORDER BY (SUBSTRING("28 mai 1787", -4)) ASCSELECT id,num_indiv,famille,nom,prenom,date_naissance,date_dc FROM individus WHERE num_indiv = "4795" ORDER BY (SUBSTRING("1782", -4)) ASC
Le premier mariage enregistré dans la base est bien le num_indiv 4792 en 1787.
Le second mariage ajouté dans la base est bien le num_indiv 4795 en 1782.
En résultat je veux afficher celui en 1782 puis en 1787, ce qui n'est pas le cas actuellement !
Si je le test directement via ma BDD il ne reconnait pas $tonarray = array();
je reviens du coup, mais tu veux faire le tri depuis un varchar donc?
Je remets pas en question de ton choix même si je ne suis pas d'accord avec toi mais bref.
en fait j avais pas regardé ton order, tu tries avec une valeur fixe puisque issue de php, et non d une colonne de ta base de donnée.
du coup essaie plutot :
en supposant que date_dc correspond a la date de mariage.
naga
Je remets pas en question de ton choix même si je ne suis pas d'accord avec toi mais bref.
en fait j avais pas regardé ton order, tu tries avec une valeur fixe puisque issue de php, et non d une colonne de ta base de donnée.
du coup essaie plutot :
ORDER BY (SUBSTRING(date_dc, -4) ASC)
en supposant que date_dc correspond a la date de mariage.
naga