PHP Mysql : problème pour avoir un affichage avec un tri décroissant dans un tab
Résolu
Alcantara75
Messages postés
16
Date d'inscription
Statut
Membre
Dernière intervention
-
Alcantara75 Messages postés 16 Date d'inscription Statut Membre Dernière intervention -
Alcantara75 Messages postés 16 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ouvre un nouveau post car l'autre a été résolu, mais en ajoutant une option je recommence a avoir un message d'erreur.
Page qui gère l'affichage des clients dans un tableau avec une fonction de recherche
Pour avoir les derniers clients rentrés qui s'affichent dans le tableau, j'ai ajouté
ça affiche le mesage ci_dessous :
après un var_dump de la requête j'ai l'affichage ci-dessous :
le filtre order by id_clients se met avant le where d'après le var_dump($sql);. j'ai essayé de le mettre après le dernier like pour qu'il s'affiche a la fin.
Il me les affiche bien dans l'ordre du dernier clients rentrés, mais il le fait que lors de la recherche, et non dans le tableau quand je veux juste les afficher.
J'ouvre un nouveau post car l'autre a été résolu, mais en ajoutant une option je recommence a avoir un message d'erreur.
Page qui gère l'affichage des clients dans un tableau avec une fonction de recherche
//on inclus le fichier de connexion à la bdd dont le nom est ???? require_once "../inc/connexion.php"; //connexion à la bdd $bdd = getDB(); // on récupère PROPREMENT les variables AVANT de les utiliser $query = !empty($_POST["query"]) ? $_POST["query"]: NULL; //on prépare la requête SQL $sql = "SELECT * FROM clients "; //début du traitement : if($query){ $search = $query; //si il y a une recherche on ajoute le WHERE à la requete : $sql .= " WHERE prenom LIKE '%".$search."%' OR nom LIKE '%".$search."%' OR adresse LIKE '%".$search."%' OR ville LIKE '%".$search."%' OR cp LIKE '%".$search."%' OR email LIKE '%".$search."%' OR id_clients LIKE '%".$search."%' "; // var_dump($sql); } //Execution de la requete try{ $requete = $bdd -> prepare($sql) ; $requete->execute() ; $result = $requete->fetchAll(); // on stocke le resultat dans un array }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); } ?>
Pour avoir les derniers clients rentrés qui s'affichent dans le tableau, j'ai ajouté
order by id_clients desc à la requete "SELECT * FROM clients"
ça affiche le mesage ci_dessous :
Erreur ! SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de 'WHERE prenom LIKE '%232%' OR nom LIKE '%232%' ' à la ligne 1 Données non trouvées
après un var_dump de la requête j'ai l'affichage ci-dessous :
C:\wamp\www\O2G\fetch\clients.php:38:string ' SELECT * FROM clients order by id_clients DESC WHERE prenom LIKE '%232%' OR nom LIKE '%232%' OR adresse LIKE '%232%' OR ville LIKE '%232%' OR cp LIKE '%232%' OR email LIKE '%232%' OR id_clients LIKE '%232%' ' (length=337)
le filtre order by id_clients se met avant le where d'après le var_dump($sql);. j'ai essayé de le mettre après le dernier like pour qu'il s'affiche a la fin.
Il me les affiche bien dans l'ordre du dernier clients rentrés, mais il le fait que lors de la recherche, et non dans le tableau quand je veux juste les afficher.
A voir également:
- PHP Mysql : problème pour avoir un affichage avec un tri décroissant dans un tab
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
- Expert php pinterest - Télécharger - Langages
- Php alert - Forum PHP
- Mysql a répondu : documentation connexion impossible : paramètres incorrects. - Forum Bases de données
2 réponses
La concaténation de variable en php ... ça te parle ?
//on prépare la requête SQL $sql = "SELECT * FROM clients "; //début du traitement : if($query){ $search = $query; //si il y a une recherche on ajoute le WHERE à la requete : $sql .= " WHERE prenom LIKE '%".$search."%' OR nom LIKE '%".$search."%' OR adresse LIKE '%".$search."%' OR ville LIKE '%".$search."%' OR cp LIKE '%".$search."%' OR email LIKE '%".$search."%' OR id_clients LIKE '%".$search."%' "; // var_dump($sql); } $sql .= " order by..... " ; // c'est ici que tu dois le mettre....
En faisant des recherches, c'est ce que j'ai vu, j'ai essayé de faire une concaténation, mais je savais pas ou la mettre, et je parle même pas de la syntaxe.
J'ai commencé hier soir des cours de php en commençant depuis le début.
Je savais faire des insert et afficher des informations dans un tableau et les modifier mais j'ai appris directement comme ça, il y a quelques années, en prenant des fichiers sur internet sans trop comprendre.
Merci infiniment en tout cas
J'ai commencé hier soir des cours de php en commençant depuis le début.
Je savais faire des insert et afficher des informations dans un tableau et les modifier mais j'ai appris directement comme ça, il y a quelques années, en prenant des fichiers sur internet sans trop comprendre.
Merci infiniment en tout cas