Erreur substring
Résolu
Bonjour,
J'ai une erreur
Parse error: syntax error, unexpected '[' in /mnt/168/sda/5/0/th1/gen_famille/gestion/fiche_indiv.php on line 492
sur la ligne du query4 !
Je n'arrive pas à la déceler ! Merci.
$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);
J'ai une erreur
Parse error: syntax error, unexpected '[' in /mnt/168/sda/5/0/th1/gen_famille/gestion/fiche_indiv.php on line 492
sur la ligne du query4 !
Je n'arrive pas à la déceler ! Merci.
7 réponses
-
Ca fonctionne avec asort !
Merci ! -
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() ......" -
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 ! -
L'erreur est dans la syntaxe :
(SUBSTRING('.$tonarray[$i]['date_mariage'].', -4))
Mais je ne trouve pas comment !!?? -
Je ne vois pas bien ce que je pourrais afficher !
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 ! -
Merci ! Effectivement ...............
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 !?? -
ModérateurRelis ton code :
.tonarray[$i]['date_mariage'].
.$tonarray[$i]['conjoint'].
Lequel est le bon ?