[résolu] if (isset)

Eléphant du PHP | 81 Messages

29 mars 2011, 14:45

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
Modifié en dernier par 63renaud le 03 mai 2011, 15:39, modifié 3 fois.

Eléphant du PHP | 241 Messages

29 mars 2011, 14:57

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";
}

Eléphant du PHP | 81 Messages

29 mars 2011, 15:13

ok
Merci
vraiment sur ce site il n'y a que des bons professeurs.

Bonne journée

Eléphant du PHP | 81 Messages

29 mars 2011, 15:17

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

ViPHP
xTG
ViPHP | 7331 Messages

29 mars 2011, 15:31

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.

Eléphant du PHP | 81 Messages

29 mars 2011, 16:23

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

Mammouth du PHP | 672 Messages

29 mars 2011, 16:44

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 ???

ViPHP
AB
ViPHP | 5818 Messages

29 mars 2011, 17:00

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 ?

Eléphant du PHP | 81 Messages

29 mars 2011, 17:19

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

ViPHP
xTG
ViPHP | 7331 Messages

29 mars 2011, 17:49

WHERE (champ) opérateur (valeur)
;)

Eléphant du PHP | 81 Messages

29 mars 2011, 19:14

c'est quoi un opérateur?

ViPHP
AB
ViPHP | 5818 Messages

29 mars 2011, 19:35

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"

Eléphant du PHP | 81 Messages

29 mars 2011, 19:50

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

ViPHP
AB
ViPHP | 5818 Messages

29 mars 2011, 22:46

C'est IS NOT NULL uniquement si ton champ à la valeur NULL par défaut s'il n'est pas renseigné.

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

30 mars 2011, 09:26

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
?>
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène