Problème pour afficher mes champs
Résolu/Fermé
A voir également:
- Problème pour afficher mes champs
- Afficher appdata - Guide
- Afficher mot de passe wifi android - Guide
- Afficher taille dossier windows - Guide
- Windows 11 afficher d'autres options - Guide
- Afficher champs de tableau croisé dynamique - Guide
2 réponses
jordane45
Messages postés
38396
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 janvier 2025
4 732
27 mai 2015 à 00:09
27 mai 2015 à 00:09
Bonjour,
LIKE s'utilise avec des jokers...
Par exemple :
Correspond à :nationalite contient :$nationalite
Si j'utilise un seul % .. cela veut dire (selon sa position) : "commence par" ou " se termine par"
Par exemple :
Correspond à :nationalite commence par :$nationalite
Correspond à :nationalite se termine par :$nationalite
LIKE s'utilise avec des jokers...
Par exemple :
SELECT * FROM categorisation WHERE id_nationalite LIKE '%$nationalite%'
Correspond à :nationalite contient :$nationalite
Si j'utilise un seul % .. cela veut dire (selon sa position) : "commence par" ou " se termine par"
Par exemple :
SELECT * FROM categorisation WHERE id_nationalite LIKE '%$nationalite'
Correspond à :nationalite commence par :$nationalite
SELECT * FROM categorisation WHERE id_nationalite LIKE '$nationalite%'
Correspond à :nationalite se termine par :$nationalite
jordane45
Messages postés
38396
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 janvier 2025
4 732
28 mai 2015 à 13:12
28 mai 2015 à 13:12
En relisant .. je viens de voir une erreur de copier/coller de ma part ...
j'ai mis un accent dans le nom de la variable...
Par contre .. l'affichage que tu obtiens m'étonne quelque peu...
Pourrais tu poster le code COMPLET ?
j'ai mis un accent dans le nom de la variable...
$strWhere = isset($criteres) && count($criteres>0) ? " WHERE " . implode(' AND ', $criteres) : ''; $sql="SELECT * FROM categorisation " . $strWhere ; echo " <br> REQUETE : <br>".$sql;
Par contre .. l'affichage que tu obtiens m'étonne quelque peu...
Pourrais tu poster le code COMPLET ?
/* Recherche selon +sieurs critères */ $criteres=array(); if( !empty($_POST['nationalite']) ) $criteres[]="id_nationalite LIKE '{$_POST['nationalite']}'"; if( !empty($_POST['statut_conflit']) ) $criteres[]="id_statut_conflit LIKE '{$_POST['statut_conflit']}'"; if( !empty($_POST['etat']) ) $criteres[]="id_etat LIKE '".$_POST['etat']."'"; if( !empty($_POST['sepulture']) ) $criteres[]="id_sepulture LIKE '{$_POST['sepulture']}'"; if( !empty($_POST['sexe']) ) $criteres[]="id_sexe LIKE '{$_POST['sexe']}'"; if( !empty($_POST['age']) ) $criteres[]="id_age LIKE '{$_POST['age']}'"; if( !empty($_POST['particularite']) ) $criteres[]="id_nationalite LIKE '{$_POST['particularite']}'"; if( !empty($_POST['confession']) ) $criteres[]="id_confession LIKE '{$_POST['confession']}'"; if( !empty($_POST['institution']) ) $criteres[]="id_institution LIKE '{$_POST['institution']}'"; if( !empty($_POST['administrative']) ) $criteres[]="id_administrative LIKE '{$_POST['administrative']}'"; if( !empty($_POST['aide_sociale']) ) $criteres[]="id_aide_sociale LIKE '{$_POST['aide_sociale']}'"; //etc $strWhere = isset($criteres) && count($criteres>0) ? " WHERE " . implode(' AND ', $criteres) : ''; $sql="SELECT * FROM categorisation " . $strWhere ; echo " <br> REQUETE : <br>".$sql; /* Afficher les résultats */ $reponse =$bdd->query($sql); while ($donnees = $reponse->fetch(PDO::FETCH_ASSOC)) { echo "Les structures sont : "; echo $donnees['id_nationalite'].'<br />'; }
jordane45
Messages postés
38396
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 janvier 2025
4 732
>
LIKE
28 mai 2015 à 13:26
28 mai 2015 à 13:26
Oups .. encore une erreur de ma part ..
a remplacer par
count($criteres>0)
a remplacer par
count($criteres)>0
jordane45
Messages postés
38396
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 janvier 2025
4 732
>
LIKE
28 mai 2015 à 13:41
28 mai 2015 à 13:41
Perso .. je n'aime pas passer une boucle WHILE ... FETCH ...
Je préfère faire directement un FETCHALL ....(ce qui retourne TOUS les résultat dans un ARRAY)
Ainsi, via un COUNT je peux connaitre le nombre de résultats...
https://www.php.net/manual/fr/pdostatement.fetchall.php
.. et pour afficher les résultats .. je remplace le WHILE .. par un FOREACH
Je préfère faire directement un FETCHALL ....(ce qui retourne TOUS les résultat dans un ARRAY)
Ainsi, via un COUNT je peux connaitre le nombre de résultats...
https://www.php.net/manual/fr/pdostatement.fetchall.php
.. et pour afficher les résultats .. je remplace le WHILE .. par un FOREACH
if(count($result)){ echo "<br>Les structures sont : "; foreach( $result as $donnees ){ echo $donnees['id_nationalite'].'<br>'; } }else { echo "<br> Aucun résultat trouvé !"; }
27 mai 2015 à 00:18
Et si un champ est une valeur d'une liste, il n'est pas utile d'utiliser un jocker ?
27 mai 2015 à 00:18
27 mai 2015 à 00:22
27 mai 2015 à 00:35
Merci.
28 mai 2015 à 09:09