Page 1 sur 2

[résolu] if (isset)

Posté : 29 mars 2011, 14:45
par 63renaud
Bonjour

Je voudrai afficher des données que si mon champ reponse contient des données.
voici mon code.
<?php
require'connect/connect.php';


// On récupère  de la table emploi
echo"<div id='g0'>";
$result = mysql_query("SELECT * FROM recherche WHERE reponse ORDER BY id asc LIMIT 0, 21");

if(isset ($_GET['reponse'])!="")
{
   
// On affiche chaque entrée une à une avec deux boutons .
 while ($ligne = mysql_fetch_array($result) )
            {
            ?>
		<strong>Société: &nbsp; </strong> <?php echo $ligne['id']; ?>&nbsp; <?php echo $ligne['societe']; ?>
                &nbsp;
		<?php $lien="afficher_detail.php?id=".$ligne['id'];?>
			<a href='<?php echo $lien ?>' style="text-decoration:none"><input type='button' value='detail' name='détail' style="text-decoration:none"/></a>
                <?php $lien="modifier.php?id=".$ligne['id'];?>
			<a href='<?php echo $lien ?>' style="text-decoration:none"><input type='button' value='modifier' name='modifier' style="text-decoration: none"/></a>
                        <br/>
		<?php

            }
echo'</div>';


?>
<?php

echo"<div id='g20'>";
$result = mysql_query("SELECT * FROM recherche ORDER BY id asc LIMIT 21,  21 ");

// On affiche chaque entrée une à une avec deux boutons .
 while ($ligne = mysql_fetch_array($result) )
            {
            ?>
                        <strong>Société: &nbsp;</strong>

                <strong>Société: &nbsp; </strong> <?php echo $ligne['id']; ?>&nbsp; <?php echo $ligne['societe']; ?>
                &nbsp;
		<?php $lien="afficher_detail.php?id=".$ligne['id'];?>
			<a href='<?php echo $lien ?>' style="text-decoration:none"><input type='button' value='detail' name='détail' style="text-decoration:none"/></a>
                <?php $lien="modifier.php?id=".$ligne['id'];?>
			<a href='<?php echo $lien ?>' style="text-decoration:none"><input type='button' value='modifier' name='modifier' style="text-decoration: none"/></a>
                        <br/>
<?php
            }
}
else{
    echo "Pas de Réponses";
}
		
echo'</div>';
mysql_close();         // Termine le traitement de la requête
?>

mais cela ne m'affiche que
pas de réponse
merci

Re: if (isset)

Posté : 29 mars 2011, 14:57
par misterflo
Salut,
ton utilisation du isset n'est pas bonne.
isset() sert à savoir si une variable est définie et qu'elle n'est pas égale à NULL.
Si tu veux vérifier qu'une variable n'est pas vide tu peux utiliser empty()
if (isset($_GET['reponse']) && !empty($_GET['reponse'])) {
...
} else {
echo "pas de réponse";
}

Re: if (isset)

Posté : 29 mars 2011, 15:13
par 63renaud
ok
Merci
vraiment sur ce site il n'y a que des bons professeurs.

Bonne journée

Re: if (isset)

Posté : 29 mars 2011, 15:17
par 63renaud
j'ai rentré ton code mais j'ai toujours la même erreur.

il n'affiche pas les noms des sociétés qui m'ont répondu.

Mais au moins tu viens de m'apprendre une chose, merci
Merci

Re: if (isset)

Posté : 29 mars 2011, 15:31
par xTG
Actives les erreurs PHP et tu recevras une jolie baffe de sa part. :)
Ta requête SQL est incorrecte, la condition WHERE ne peut contenir un champs sans aucun test dessus, il faut le comparer à une valeur.

Re: if (isset)

Posté : 29 mars 2011, 16:23
par 63renaud
j'aime pas les baffes !!!!!! :non: et je ne sais pas activer les erreurs de PHP. :(

mais j'ai pas compris ta réponse.
la condition WHERE ne peut contenir un champs sans aucun test dessus, il faut le comparer à une valeur.
car j'ai fait le même script avec les sociétés à contacter et cela fonctionne sans li IF, mais j'ai mis mes boutons radio à 1 si oui et 0 si non.

Merci

Re: if (isset)

Posté : 29 mars 2011, 16:44
par macgawel
j'aime pas les baffes !!!!!! :non: et je ne sais pas activer les erreurs de PHP. :(
RTFM.
mais j'ai pas compris ta réponse.
Traduis un peu ta requête en français :
SELECT * FROM recherche WHERE reponse
Sélectionner tous les champs de la table recherche qui vérifient reponse.

Tu trouves que ça a du sens ???

Re: if (isset)

Posté : 29 mars 2011, 17:00
par AB
Pour continuer sur la réponse de macgawel

... les requêtes doivent pouvoir être traduites en une phrase compréhensible et complète, sinon elle sont incompréhensibles par tout le monde y compris par mysql (qui ne comprend pas le langage sms :mrgreen: ).

ainsi :
"SELECT * FROM recherche WHERE reponse ORDER BY id asc LIMIT 0, 21"

se traduit par :

"Sélectionner tous les champs de la table "recherche" où "reponse", ordonnés par le champ "id" dans l'ordre ascendant, en prenant 21 résultats à partir du premier trouvé".

Je trouve pas la première partie de la phrase réellement compréhensible et toi ?

Re: if (isset)

Posté : 29 mars 2011, 17:19
par 63renaud
oui tu as raison.
en fait je voudrai afficher les sociétés qui m'ont répondu.
Le champ réponse est dans la table recherche.

donc pour moi c'est Select (base de donnée) From ( table) where (champ).
et afficher les 21 premières réponses.

C'est vrai que l'id ici ne sert à rien.

Merci

Re: if (isset)

Posté : 29 mars 2011, 17:49
par xTG
WHERE (champ) opérateur (valeur)
;)

Re: if (isset)

Posté : 29 mars 2011, 19:14
par 63renaud
c'est quoi un opérateur?

Re: if (isset)

Posté : 29 mars 2011, 19:35
par AB
oui tu as raison.
en fait je voudrai afficher les sociétés qui m'ont répondu.
Le champ réponse est dans la table recherche.

donc pour moi c'est Select (base de donnée) From ( table) where (champ).
et afficher les 21 premières réponses.

C'est vrai que l'id ici ne sert à rien.

Merci
Et comment tu différencie les sociétés qui on répondu de celles qui n'ont pas répondu ?

Ta requête ne correspond pas à ce que tu as dit. Où est dans ta requête la condition "les sociétés qui m'ont répondu" ?

Qu'y a t-il dans ton champ "reponse" si les sociétés n'ont pas répondu ? La réponse à cette question va te permettre de compléter ta clause WHERE, soit avec un différent de rien (!=''), soit avec un "IS NOT NULL"

Re: if (isset)

Posté : 29 mars 2011, 19:50
par 63renaud
mon champ reponse est un longtext dans lequel je copie la réponse de la société,
donc si j'ai bien compris je dois mettre IS NOT NUL
$result = mysql_query("SELECT * FROM recherche WHERE reponse IS NOT NUL LIMIT 0, 21");
merci

Re: if (isset)

Posté : 29 mars 2011, 22:46
par AB
C'est IS NOT NULL uniquement si ton champ à la valeur NULL par défaut s'il n'est pas renseigné.

Re: if (isset)

Posté : 30 mars 2011, 09:26
par sadeq
Bonjour,

Compte tenu de toutes les réponses pertinentes que t'as eu sur ta question voici le correctif de ton programme:
<?php
require'connect/connect.php';


// On récupère  de la table emploi
echo"<div id='g0'>";


if(isset ($_GET['reponse'])) // vérifie si le champ "reponse" a été envoyé par le formulaire
{
$result = mysql_query("SELECT * FROM recherche WHERE reponse IS NOT NULL ORDER BY id asc LIMIT 0, 21");
   
// On affiche chaque entrée une à une avec deux boutons .
 while ($result && $ligne = mysql_fetch_array($result) )
            {
            ?>
                <strong>Société: &nbsp; </strong> <?php echo $ligne['id']; ?>&nbsp; <?php echo $ligne['societe']; ?>
                &nbsp;
                <?php $lien="afficher_detail.php?id=".$ligne['id'];?>
                        <a href='<?php echo $lien ?>' style="text-decoration:none"><input type='button' value='detail' name='détail' style="text-decoration:none"/></a>
                <?php $lien="modifier.php?id=".$ligne['id'];?>
                        <a href='<?php echo $lien ?>' style="text-decoration:none"><input type='button' value='modifier' name='modifier' style="text-decoration: none"/></a>
                        <br/>
                <?php

            }
echo'</div>';


?>
<?php

echo"<div id='g20'>";
$result = mysql_query("SELECT * FROM recherche ORDER BY id asc LIMIT 21,  21 ");

// On affiche chaque entrée une à une avec deux boutons .
 while ($result && $ligne = mysql_fetch_array($result) )
            {
            ?>
                        <strong>Société: &nbsp;</strong>

                <strong>Société: &nbsp; </strong> <?php echo $ligne['id']; ?>&nbsp; <?php echo $ligne['societe']; ?>
                &nbsp;
                <?php $lien="afficher_detail.php?id=".$ligne['id'];?>
                        <a href='<?php echo $lien ?>' style="text-decoration:none"><input type='button' value='detail' name='détail' style="text-decoration:none"/></a>
                <?php $lien="modifier.php?id=".$ligne['id'];?>
                        <a href='<?php echo $lien ?>' style="text-decoration:none"><input type='button' value='modifier' name='modifier' style="text-decoration: none"/></a>
                        <br/>
<?php
            }
}
else{
    echo "Pas de Réponses";
}
               
echo'</div>';
mysql_close();         // Termine le traitement de la requête
?>