Récuperer valeur d'une table
MalonTails
Messages postés
86
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour à tous, mon problème est le suivant :
Je souhaite récupérer des valeurs dans la bdd en fonction d'un pseudo. Jusqu'à la pas de problème, cependant j'aimerai les "séparer" afin de pouvoir faire des comparaisons.
Par exemple ici j'ai deux lignes sql avec le même pseudo, dedans je récupère l'entreprise. Mais, quand je fais $req['entreprise'] je récupère bien les agences mais sous la forme suivante :
Agence1Agence2 , or les agences ne font pas parties de la même ligne. Et j'aimerai mettre, par exemple, Agence1 dans une variable et Agence 2 dans une autre.
Désolée si ce n'est pas très claire,
Merci à tous ceux qui pourront m'apporter une aide.
Je souhaite récupérer des valeurs dans la bdd en fonction d'un pseudo. Jusqu'à la pas de problème, cependant j'aimerai les "séparer" afin de pouvoir faire des comparaisons.
Par exemple ici j'ai deux lignes sql avec le même pseudo, dedans je récupère l'entreprise. Mais, quand je fais $req['entreprise'] je récupère bien les agences mais sous la forme suivante :
Agence1Agence2 , or les agences ne font pas parties de la même ligne. Et j'aimerai mettre, par exemple, Agence1 dans une variable et Agence 2 dans une autre.
Désolée si ce n'est pas très claire,
Merci à tous ceux qui pourront m'apporter une aide.
A voir également:
- Récuperer valeur d'une table
- Table ascii - Guide
- Table des matières word - Guide
- Recuperer message whatsapp supprimé - Guide
- Comment recuperer une video sur youtube - Guide
- Récupérer mon compte facebook désactivé - Guide
11 réponses
Bonjour Alvin, merci pour ta réponse
voici ma requete et le reste :
Le nom des variables est un peu bidon mais c'est pour les tests, tout ceci n'est que local.
Il y a donc plusieurs avis d'un même utilisateur sur différentes entreprises.

voici ma requete et le reste :
$req=$bdd->query('SELECT * from membres where pseudo = "'.$_SESSION['pseudo'].'"'); $req2=$bdd->query('SELECT * from avis where pseudo= "'.$_SESSION['pseudo'].'"'); foreach ($req as $billet2): while ($billet3 = $req2->fetch()) { if ($billet2['nbavis']==2){ echo $billet3['entreprise']; } } endforeach;
Le nom des variables est un peu bidon mais c'est pour les tests, tout ceci n'est que local.
Il y a donc plusieurs avis d'un même utilisateur sur différentes entreprises.

Quand je met sous forme de tableau je vois qu'ils sont tout deux à la même place
Array ( [0] => Agence1) Array ( [0] => Agence2)
Moi qui pensait récupérer comme ça
Array ( [0] => Agence1) Array ( [0] => Agence2)
Moi qui pensait récupérer comme ça
C'est vrai que c'est problématique...
Disons que je ne comprends pas vraiment pourquoi les deux agences se trouvent sur la même ligne....
Essaye peut-être comme ça : rajoute à la fin de chaque nom d'entreprise un caractère spécial que personne n'utilise (ex: ¤ ou bien ⨀). Ensuite, dans ton script tu peux utiliser preg_split (https://www.php.net/manual/fr/function.preg-split.php) pour séparer. Ce qui donnerait ceci :
Ainsi ça te retournera un tableau contenant les agences...
C'est un peu tordu mais ça peut marcher.
Bien à toi,
Disons que je ne comprends pas vraiment pourquoi les deux agences se trouvent sur la même ligne....
Essaye peut-être comme ça : rajoute à la fin de chaque nom d'entreprise un caractère spécial que personne n'utilise (ex: ¤ ou bien ⨀). Ensuite, dans ton script tu peux utiliser preg_split (https://www.php.net/manual/fr/function.preg-split.php) pour séparer. Ce qui donnerait ceci :
$lesagences = preg_split("¤", $billet3['entreprise']);
Ainsi ça te retournera un tableau contenant les agences...
C'est un peu tordu mais ça peut marcher.
Bien à toi,
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Essaye peut-être comme ça sinon...
$req=$bdd->query('SELECT * from membres where pseudo = "'.$_SESSION['pseudo'].'"'); $req2=$bdd->query('SELECT * from avis where pseudo= "'.$_SESSION['pseudo'].'"'); foreach ($req as $billet2) { while ($billet3 = mysql_fetch_assoc($req2)) { if ($billet2['nbavis']==2){ echo $billet3['entreprise']; }}}
Ah attends, j'ai compris...
C'est normal que ça fasse
C'est parce les deux entreprises correspondent aux même critères (2 avis, même pseudo). Quand ça passe dans ta boucle c'est affiché sur ta page.
Tu veux les mettre dans une variable, tu peux déclarer
Ensuite, tu n'as plus qu'à faire des comparaisons après dans ton code sur la variables
C'est normal que ça fasse
Agence1Agence2!
C'est parce les deux entreprises correspondent aux même critères (2 avis, même pseudo). Quand ça passe dans ta boucle c'est affiché sur ta page.
Tu veux les mettre dans une variable, tu peux déclarer
$lesentreprisesjuste avant ton
foreachpuis tu mets dans ton
whileà la place du
echo:
array_push($lesentreprises, $billet3['entreprise']);
Ensuite, tu n'as plus qu'à faire des comparaisons après dans ton code sur la variables
$lesentreprises
Bonjour
Les données sont sur la même ligne car il n'y a pas de retour à la ligne apres le echo...
Mais ton code n'est pas très clair...
Pourrais tu nous montrer un dump de tes tables et nous expliquer ce que tu veux afficher
Les données sont sur la même ligne car il n'y a pas de retour à la ligne apres le echo...
Mais ton code n'est pas très clair...
Pourrais tu nous montrer un dump de tes tables et nous expliquer ce que tu veux afficher
Bonjour Jordane,
En gros l'user à 3 agences d'enregistrées sur son compte & il peut laisser un seul avis sur chacune.
J'avais donc opté pour ce code :
Mais le code réagit de façon positive au if et au else
exemple :
ce qui affiche :

En gros l'user à 3 agences d'enregistrées sur son compte & il peut laisser un seul avis sur chacune.
J'avais donc opté pour ce code :
if ($billet2['entreprise1'] == $billet3['entreprise']{ // l'user ne peu pas mettre d'avis car il en a déjà mis un } else { // l'user peut laisser un avis car il n'en a jamais mis } if ($billet2['entreprise2'] == $billet3['entreprise']{ // l'user ne peu pas mettre d'avis car il en a déjà mis un } else { // l'user peut laisser un avis car il n'en a jamais mis } if ($billet2['entreprise3'] == $billet3['entreprise']{ // l'user ne peu pas mettre d'avis car il en a déjà mis un } else { // l'user peut laisser un avis car il n'en a jamais mis }
Mais le code réagit de façon positive au if et au else
exemple :
while ($billet3 = $req2->fetch()) { if ($billet2['nbavis']==2){ if ($billet2['entreprise1'] == $billet3['entreprise']){ echo " tu as déjà laissé un avis"; echo "<br>"; } else { echo " tu peux laissé un avis"; } } }
ce qui affiche :

Merci à tous pour votre temps & votre patience.
En gros l'user à 3 entreprises qu'il a "visité" mais qu'il ne peu commenter qu'une fois.
De base je voulais faire :
Mais, comme je récupère les valeurs sans séparation les conditions ne fonctionnent pas.
Mon code réagit comme si les deux conditions étaient respectées : la condition que c'est égale mais également la condition que c'est différent.
En gros l'user à 3 entreprises qu'il a "visité" mais qu'il ne peu commenter qu'une fois.
De base je voulais faire :
if ($billet2['entreprise1'] == $billet3['entreprise']{ // l'user ne peu pas mettre d'avis car il en a déjà mis un } else { // l'user peut laisser un avis car il n'en a jamais mis } if ($billet2['entreprise2'] == $billet3['entreprise']{ // l'user ne peu pas mettre d'avis car il en a déjà mis un } else { // l'user peut laisser un avis car il n'en a jamais mis } if ($billet2['entreprise3'] == $billet3['entreprise']{ // l'user ne peu pas mettre d'avis car il en a déjà mis un } else { // l'user peut laisser un avis car il n'en a jamais mis }
Mais, comme je récupère les valeurs sans séparation les conditions ne fonctionnent pas.
Mon code réagit comme si les deux conditions étaient respectées : la condition que c'est égale mais également la condition que c'est différent.
En gros l'user à 3 agences d'enregistrées sur son compte & il peut laisser un seul avis sur chacune.
J'avais donc opté pour ce code :
Mais le code réagit de façon positive au if et au else
exemple :
ce qui affiche :

J'avais donc opté pour ce code :
if ($billet2['entreprise1'] == $billet3['entreprise']{ // l'user ne peu pas mettre d'avis car il en a déjà mis un } else { // l'user peut laisser un avis car il n'en a jamais mis } if ($billet2['entreprise2'] == $billet3['entreprise']{ // l'user ne peu pas mettre d'avis car il en a déjà mis un } else { // l'user peut laisser un avis car il n'en a jamais mis } if ($billet2['entreprise3'] == $billet3['entreprise']{ // l'user ne peu pas mettre d'avis car il en a déjà mis un } else { // l'user peut laisser un avis car il n'en a jamais mis }
Mais le code réagit de façon positive au if et au else
exemple :
while ($billet3 = $req2->fetch()) { if ($billet2['nbavis']==2){ if ($billet2['entreprise1'] == $billet3['entreprise']){ echo " tu as déjà laissé un avis"; echo "<br>"; } else { echo " tu peux laissé un avis"; } } }
ce qui affiche :

Je t'ai demandé un dump de tes tables...
Car pour l'instant,
Je ne suis pas sûr que :
1- tu ais fait les "bonnes" requêtes sql
2- qu'il y ait besoin de passer par des while
Et au passage, tu utilises quoi pour te connecter à ta bdd ? Mydqli ou pdo ?
Pour rappel :https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
Car pour l'instant,
Je ne suis pas sûr que :
1- tu ais fait les "bonnes" requêtes sql
2- qu'il y ait besoin de passer par des while
Et au passage, tu utilises quoi pour te connecter à ta bdd ? Mydqli ou pdo ?
Pour rappel :https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top