Page 1 sur 2
Aide pour parcourir un résultat d'une requete SQL
Posté : 13 déc. 2012, 15:07
par nico_loin
Bonjour,
J'ai une requete SQL qui me retourne des valeurs numériques, que je mets dans un fetch array.
Ensuite j'ai une boucle (for) qui vérifie si ma valeur est égale à une des valeurs contenu dans mon fetch array. Si ma valeur est déjà dans la base je dois exécuter mon code, et s'il n'est pas dans la base, exécuter un autre code. Cela représente 2 cas de figure, et ne dois rentrer que dans 1 seul des cas.
Je sais pas si je suis bien clair, demandez moi si vous avez pas compris.
J'ai essayé différents algo mais j'y arrive pas, quelqu'un aurait une idée ?
Merci.
Re: Aide pour parcourir un résultat d'une requete SQL
Posté : 13 déc. 2012, 15:34
par piotrowski-s
montre nous ton code.
Mais je comprend pas trop tu as une requête sql qui te retourne des données que tu mets dans un array... Ok mais tu les compare a quoi ?
Car par défaut vu qu'ils viennent de ta base sql ils sont forcément dedans...
Re: Aide pour parcourir un résultat d'une requete SQL
Posté : 13 déc. 2012, 16:10
par nico_loin
La requete récupère les ID des membres qui ont déjà posté quelque chose. Si c'est son tout premier poste et donc que dans la base son ID n'apparait pas, les champs doivent apparaitre vides, et s'il a déjà posté quelque chose, les champs sont pré remplis avec ce qu'il a saisi.
Donc enfait je compare le résultat de ma requete avec l'ID du login de la personne connectée, et s'il existe dans la base, ses données sont pré remplis, mais son ID n'est pas dans la base, les champs doivent apparaitre vides.
Re: Aide pour parcourir un résultat d'une requete SQL
Posté : 13 déc. 2012, 16:12
par nico_loin
Je précise que y'a une table qui contient l'ID de la personne, son nom etc, et une autre table avec son ID et les valeurs qu'il a rentré, j'ai bien 2 tables différentes.
Re: Aide pour parcourir un résultat d'une requete SQL
Posté : 13 déc. 2012, 16:17
par piotrowski-s
ok si je comprends bien tu veux récupérer des données d'un membre dans deux tables c'est bien cela ?
Re: Aide pour parcourir un résultat d'une requete SQL
Posté : 13 déc. 2012, 16:26
par nico_loin
Non, je récupère l'ID des personne qui ont déjà posté quelque chose.
Si l'ID de la personne est dans la base c'est qu'elle a déjà posté quelque chose.
Dans ce cas j'affiche ce qu'elle a posté.
Si l'ID n'est pas dans la base, c'est qu'elle n'a jamais rien posté et dans ce cas j'affiche le formulaire vide.
Moi j'ai fait ca pour l'instant mais ca marche pas quand la personne a jamais rien posté, ça n'affiche pas le formulaire.
while ($valeur = mysql_fetch_array($maRequete)) {
for ($i=0 ...) { // pour parcourir $valeur
if ($valeur[$i] != $_SESSION['id']) {
break; // comme ca si la personne n'a jamais posté, on fait rien pour l'instant
} elseif ($valeur[$i] == $_SESSION['id']) {
// ici j'affiche le formulaire pré rempli vu qu'on a trouvé son ID dans la base
} elseif ($valeur[$i] != $_SESSION['id']) {
// afficher le formulaire non rempli
}
}
}
Avec ce code lorsque la personne n'a jamais rempli le formulaire, le formulaire vide devrait s'afficher mais rien ne s'affiche. Par contre si elle a déjà rempli, le formulaire s'affiche bien pré rempli.
Re: Aide pour parcourir un résultat d'une requete SQL
Posté : 13 déc. 2012, 16:43
par piotrowski-s
dans ce cas tu fais un
$sql="SELECT COUNT(*) FROM `table_name` WHERE id = '".mysql_real_escape_string($_GET['id'])."'"
en SQL et si le résultat est à zéro alors tu affiche le formulaire, sinon tu display les messages déjà postés.
La fonction COUT va compter le nombre d'enregistrements (recordset) de la base de donnée selon les critères que tu lui mets dans la clause WHERE.
Si c'est égal à 0 tu mets le formulaire else tu met les commentaires.
Re: Aide pour parcourir un résultat d'une requete SQL
Posté : 13 déc. 2012, 16:52
par nico_loin
Ok je vois ce que tu veux dire,
je fais donc ma requete, ensuite je fais un mysql_query pour l'executer, puis je fais un mysql_fetch_array ?
Re: Aide pour parcourir un résultat d'une requete SQL
Posté : 13 déc. 2012, 16:59
par piotrowski-s
non tu t'en fous tu n'a plus besoin de cela... c'est une usine à gaz ton truc...
Pour faire simple:
tu as ton array de base.
que tu récupère...
A parti de ce tableau
tu fais un
<?php
foreach ($value as $cle) {
$sql = "SELECT COUNT(*) FROM `table_name` WHERE id = '" . mysql_real_escape_string($cle['id']) . "'";
$result = mysql_query($sql);
$data = mysql_fetch_assoc($result);
if ($data == 0) {
// Tu affiches ton formulaire
} else {
// Tu affiche les commentaires des gens qui ont déjà posté.
}
}
?>
Re: Aide pour parcourir un résultat d'une requete SQL
Posté : 13 déc. 2012, 17:12
par nico_loin
J'arrive pas à comprendre,
déjà j'enlève le while et for que j'avais ?
donc là j'ai plus que la requete dans mon foreach, puis je fais le if / else ?
Re: Aide pour parcourir un résultat d'une requete SQL
Posté : 13 déc. 2012, 17:16
par piotrowski-s
non j'ai bien dis à partir de ton array...
Donc cela signifie que tu as déjà récupéré les infos de ton array.
Ensuite avec ce tableau tu l'exploite selon la structure que je t'ai mis en exemple.
une fois que tu as récupéré ton $array tu as plus qu'à le parcourir ...
Avec le foreach que je t'ai donné.
ainsi il va tester pour chaque Id si elle existe.
Donc si tu as des résultats tu affiche les commentaires, sinon si comme tu le vois
$data==0
tu affiche le formulaire (cela signifie qu'on a pas d'enregistrements)
Re: Aide pour parcourir un résultat d'une requete SQL
Posté : 13 déc. 2012, 17:31
par nico_loin
Enfait c'est le foreach qui me pose probleme j'arrive pas à voir à quoi correspond $valeur et $cle ?
Re: Aide pour parcourir un résultat d'une requete SQL
Posté : 13 déc. 2012, 17:36
par piotrowski-s
$valeur c'est ton array de base $cle est un alias que tu utilise...
Tu n'en n'a en fait pas vraiment besoin mais ça t'évite d'écrire un truc du gere $array[0][nom]
car tu utilise un alias.
Du coup tu as ton $array et tu peux utiliser l'alias que tu veux par exemple moir j'ai un $array qui correspond à des voitures
je peux faire
foreach($array as $voiture)
en suite dans la boucle j'aurais par exemple
foreach($array as $voiture)
{
echo $voiture['marque'] ;
}
Re: Aide pour parcourir un résultat d'une requete SQL
Posté : 13 déc. 2012, 18:03
par nico_loin
J'ai enfin réussi, je me cassait trop la tête pour rien ! Merci pour ton aide !
Re: Aide pour parcourir un résultat d'une requete SQL
Posté : 13 déc. 2012, 18:05
par piotrowski-s
tu as mal compris la structure de départ je pense que tu t'es embrouillé les pinceaux avec tonb array de base (la requête avec mysql_fetch_array($result))
et la façon dont tu parcours cet array.