Erreur dans un requête sql avec concatenation
Posté : 12 déc. 2021, 21:14
Depuis toute la journée je suis bloqué sur ça, si quelqu'un peut m'aider, merci 
L'erreur qui s'affiche: Erreur dans la requête SELECT C.id, C.nom_fr as C.nom FROM categories C ORDER BY C.nom_fr ASC
Ma table categories contient les colonnes suivantes: id, id_cateogriesp, nom_fr, nom_en, nom_es.
Est-ce à cause du fait que l'id n'est pas auto-incrémenté et qu'il soit lié à une autre table? Si non, où est l'erreur?
Ou est-ce à cause de l'interclassement?
Page du formulaire:
Et la page fb.php qui se trouve dans le fichier langues:
L'erreur qui s'affiche: Erreur dans la requête SELECT C.id, C.nom_fr as C.nom FROM categories C ORDER BY C.nom_fr ASC
Ma table categories contient les colonnes suivantes: id, id_cateogriesp, nom_fr, nom_en, nom_es.
Est-ce à cause du fait que l'id n'est pas auto-incrémenté et qu'il soit lié à une autre table? Si non, où est l'erreur?
Ou est-ce à cause de l'interclassement?
Code : Tout sélectionner
function getSouscategories(){
global $bdd;
$sql_lang = (!empty(($_SESSION['lang']) && in_array($_SESSION['lang'], ['fr','en','es']) ))? $_SESSION['lang'] : 'fr';
$sql="SELECT
C.id,
C.nom_".$sql_lang." as C.nom
FROM categories C
ORDER BY C.nom_".$sql_lang." ASC
";
try{
$req = $bdd->prepare($sql);
$req->execute();
$res = $req->fetchAll(PDO::FETCH_ASSOC);
}catch(Exception $e){
echo "Erreur dans la requête " . $sql;
$res = false;
}
}Code : Tout sélectionner
$categories=getSouscategories();
<select name="categorie">
<?php
foreach($categories as $C){
echo "<option value='".$C['id']."'>".$C['nom']."</option>";
}
?>
</select>
Code : Tout sélectionner
<?php
if(!isset($_SESSION))
{
session_start();
}
if(!isset($_SESSION['lang']))
$_SESSION['lang']="fr";
elseif (isset($_GET['lang'])&& $_SESSION['lang'] != $_GET['lang'] && !empty($_GET['lang'])){
if($_GET['lang']=="fr")
$_SESSION['lang']="fr";
elseif($_GET['lang']=="en")
$_SESSION['lang']="en";
elseif ($_GET['lang']=="es")
$_SESSION['lang']= 'es';
}
require_once ($_SESSION['lang'] . ".php");
?>