[SQL] condition IF si la requête revient vide

Résolu/Fermé
chantaussel Messages postés 137 Date d'inscription lundi 17 mars 2008 Statut Membre Dernière intervention 9 juillet 2014 - 31 mars 2008 à 14:43
 shansa - 4 juin 2011 à 13:33
Bonjour,

Je fais une requête SQL sur une bdd et je voudrais exécuter une instruction si la requête revient vide (IF) et une autre instruction si elle contient des données (ELSE). Il m'exécute bien ce qu'il y a dans le ELSE, mais le IF ne fonctionne pas. C'est surement tout bête mais je n'y arrive pas...

J'ai essayé:

$reponse = mysql_query("SELECT * FROM table WHERE numero='2'");
if ($reponse == NULL) {
	--fais ci--
}
else {
	--fais ça--
}



J'ai aussi essayé

if ($reponse == "")


et ça marche pas non plus...

Merci d'avance

6 réponses

Utilisateur anonyme
31 mars 2008 à 14:47
Bonjour,

if (!$reponse) {
// retour vide
}
else {
// ya quelquechose
}
11
Utilisateur anonyme
31 mars 2008 à 15:19
On va tracer


$sosa = $_GET['i'];
$counter = 1;
echo "sosa => ".$sosa;

mysql_connect("localhost", "mon_site", "pass");
mysql_select_db("ma_bdd");
$query = "SELECT * FROM table WHERE sosa='".$sosa."'";
$reponse=mysql_query($query);
// Vérification du résultat
// Ceci montre la requête envoyée à MySQL ainsi que l'erreur. Utile pour déboguer.
if (!$reponse) {
$message = "Requête invalide : " . mysql_error() . "\n";
$message .= "Requête complète : " . $query;
die($message);
}
$nblignes=mysql_num_rows($reponse);

for ($i=0;$i<$nblignes;$i++){

$ligne = mysql_fetch_row($reponse);
echo "<pre>";print_r($ligne); echo "</pre>;
}

--
JL,  m'enfin c'est juste mon avis @+
se faire aider, n'est pas faire faire son travail
3
chantaussel Messages postés 137 Date d'inscription lundi 17 mars 2008 Statut Membre Dernière intervention 9 juillet 2014 30
31 mars 2008 à 15:06
Merci giheller, mais ça marche toujours pas, je mets mon script ci dessous pour plus de détails:

$sosa = $_GET['i'];
$counter = 1;

mysql_connect("localhost", "mon_site", "pass");
mysql_select_db("ma_bdd");
$reponse = mysql_query("SELECT * FROM table WHERE sosa='$sosa'");

if (!$reponse) {
	$leaf[$counter][0] = $sosa;
}
else {
	$donnees = mysql_fetch_array($reponse);
	$leaf[$counter][0] = $donnees['sosa'];
}

echo $leaf[1][0];



Ca parait surement bizarre comme code, mais je voudrais ensuite le répéter avec une boucle (c'est pour ça qu'il y a un $counter au début..)

Lorsque la variable que je récupère au début avec GET apparait dans le champ "sosa" il m'affiche bien ce que je veux avec le echo.
Mais lorsque je teste avec une valeur qui n'existe pas dans le champ "sosa" il ne m'affiche rien. Alors que dans ce cas je voudrais qu'il affecte une valeur "par défaut" ($leaf[$counter][0] = $sosa;)
1
sly-bzh Messages postés 415 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 5 décembre 2009 118
31 mars 2008 à 15:19
Si je comprend bien, si tu n'as pas d'entrée dans ta base correspondant à $sosa, tu veux faire
$leaf[$counter][0] = $sosa;
et si $sosa est déja dans ta base tu veux faire
$donnees = mysql_fetch_array($reponse);
$leaf[$counter][0] = $donnees['sosa'];

Si j'ai bien compris, je te propose ça :

$sosa = $_GET['i'];
$counter = 1;

mysql_connect("localhost", "mon_site", "pass");
mysql_select_db("ma_bdd");
$reponse = mysql_query("SELECT * FROM table WHERE sosa='$sosa'");
$test = mysql_fetch_array($reponse);
if ($test) {
    $donnees = mysql_fetch_array($reponse);
    $leaf[$counter][0] = $donnees['sosa'];

}
else {
    $leaf[$counter][0] = $sosa;
}

echo $leaf[1][0];
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
chantaussel Messages postés 137 Date d'inscription lundi 17 mars 2008 Statut Membre Dernière intervention 9 juillet 2014 30
31 mars 2008 à 15:44
Merci sly-bzh ça marche nickel!
Giheller, j'ai pas le niveau pour comprendre tout ce que tu as mis, alors je vais m'orienter vers le plus simple! Merci quand même!

Bon en fait, si je comprend bien ce que nous renvoie MySQL ($reponse) n'est pas NULL, même si la requête est vide, ce qui est nul c'est le tableau ($test ou $donnees) créé à partir de $reponse.
Ok, c'est pas évident mais ça me parait clair maintenant!

Merci beaucoup :)
0
Utilisateur anonyme
31 mars 2008 à 15:47
gardes ceci , cela te permettra de voir ce qui est dans un tableau
echo "<pre>";print_r($ligne); echo "</pre>"; // ici le tableau $ligne
0
chantaussel Messages postés 137 Date d'inscription lundi 17 mars 2008 Statut Membre Dernière intervention 9 juillet 2014 30
31 mars 2008 à 15:52
Et peut même faire un chouia plus court, car c'est finalement pas la peine de passer par $test ;)

$sosa = $_GET['i'];
$counter = 1;

mysql_connect("localhost", "mon_site", "pass");
mysql_select_db("ma_bdd");
$reponse = mysql_query("SELECT * FROM table WHERE sosa='$sosa'");
$donnees = mysql_fetch_array($reponse);

if ($donnees) {
    $leaf[$counter][0] = $donnees['sosa'];
}

else {
    $leaf[$counter][0] = $sosa;
}

echo $leaf[1][0];

0
sly-bzh Messages postés 415 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 5 décembre 2009 118
31 mars 2008 à 16:06
content d'avoir pu aider
Et effectivement, pas besoin de passer par $test (en fait j'avoue ne pas avoir lu ce que tu mettais dans ton if{} et else{} j'ai juste fait un copier/coller...)
0
salut,ce code toujours me donne la même réponse "l'article est ajouter avec sucée " et ne l'ajoute pas dans la bd.mm s'il est déjà existe il m'affiche la mm réponse.SVP je veux un réponse et merci:

<?php
$ref=$_POST['ref'];
$article=$_POST['article'];
$marque=$_POST['marque'];
$prix=$_POST['prix'];
if ($ref=="" OR $article==""){
echo"<h1><center>remplir les champs est obligatoire</center></h1>";
echo"<form name='form3' method='post' action='ajouter.php'>";
echo"<input type='submit' name='Submit' value='Retour' />";
echo" </form>" ;
}
else{
$connexion = mysql_connect("localhost","root","");
$db = mysql_select_db("globalmedia ");
if($article=='BATTERIE'){
$requeteSQL="select * from batteries where ref='$ref' ";
if($reponseSQL = mysql_query($requeteSQL)){
while ($donnees = mysql_fetch_array($reponseSQL)) {
echo"l'article existe déja dans la table correspondante ";
}
}
else{
$requeteSQL=" insert into batteries (ref,article,marque,prix)values ('$ref','$article','$marque','$prix') ";
$reponseSQL = mysql_query($requeteSQL);
echo "l'article est ajouter avec succée";
}
}
elseif($article=='BLEUTOOTH'){
$requeteSQL="select * from bluetooth where ref='$ref' ";
if($reponseSQL = mysql_query($requeteSQL)){
while ($donnees = mysql_fetch_array($reponseSQL)) {
echo"l'article existe déja dans la table correspondante ";
}
}
else{
$requeteSQL=" insert into bluetooth (ref,article,marque,prix)values ('$ref','$article','$marque','$prix') ";
$reponseSQL = mysql_query($requeteSQL);
echo "l'article est ajouter avec succée";
}
}
elseif($article=='CHARGEUR'){
$requeteSQL="select * from chargeur where ref='$ref' ";
if($reponseSQL = mysql_query($requeteSQL)){
while($donnees = mysql_fetch_array($reponseSQL)) {
echo"l'article existe déja dans la table correspondante ";
}
}
else{
$requeteSQL=" insert into chargeur (ref,article,marque,prix)values ('$ref','$article','$marque','$prix') ";
$reponseSQL = mysql_query($requeteSQL);
echo "l'article est ajouter avec succée";
}
}
elseif($article=='CASQUE'){
$requeteSQL="select * from casque where ref='$ref' ";
if($reponseSQL = mysql_query($requeteSQL)){
while ($donnees = mysql_fetch_array($reponseSQL)) {
echo"l'article existe déja dans la table correspondante ";
}
}
else{
$requeteSQL=" insert into casque (ref,article,marque,prix)values ('$ref','$article','$marque','$prix') ";
$reponseSQL1 = mysql_query($requeteSQL);
echo "l'article est ajouter avec succée";
}
}
elseif($article=='ETUI'){
$requeteSQL="select * from etui where ref='$ref' ";
if($reponseSQL = mysql_query($requeteSQL)){
while ($donnees = mysql_fetch_array($reponseSQL)) {
echo"l'article existe déja dans la table correspondante ";
}
}
else{
$requeteSQL=" insert into etui (ref,article,marque,prix)values ('$ref','$article','$marque,'$prix') ";
$reponseSQL = mysql_query($requeteSQL);
echo "l'article est ajouter avec succée";
}
}
elseif($article=='FLASH'){
$requeteSQL="select * from flash where ref='$ref' ";
if($reponseSQL = mysql_query($requeteSQL)){
while ($donnees = mysql_fetch_array($reponseSQL)) {
echo"l'article existe déja dans la table correspondante ";
}
}
else{
$requeteSQL=" insert into flash (ref,article,marque,prix)values ('$ref','$article','$marque','$prix') ";
$reponseSQL = mysql_query($requeteSQL);
echo "l'article est ajouter avec succée";
}
}
elseif($article=='GSM'){
$requeteSQL="select * from gsm where ref='$ref' ";
if($reponseSQL = mysql_query($requeteSQL)){
while ($donnees = mysql_fetch_array($reponseSQL)) {
echo"l'article existe déja dans la table correspondante ";
}
}
else{
$requeteSQL=" insert into gsm (ref,article,marque,prix)values ('$ref','$article','$marque','$prix') ";
$reponseSQL1 = mysql_query($requeteSQL);
echo "l'article est ajouter avec succée";

}
}
elseif($article=='HAUT PARLEUR'){
$requeteSQL="select * from haut parleur where ref='$ref' ";
if($reponseSQL = mysql_query($requeteSQL)){
while ($donnees = mysql_fetch_array($reponseSQL)) {
echo"l'article existe déja dans la table correspondante ";
}
}
else{
$requeteSQL=" insert into haut parleur (ref,article,marque,prix)values ('$ref','$article','$marque','$prix') ";
$reponseSQL = mysql_query($requeteSQL);
echo "l'article est ajouter avec succée";
}
}
elseif($article=='IPHONE'){
$requeteSQL="select * from iphone where ref='$ref' ";
if($reponseSQL = mysql_query($requeteSQL)){
while ($donnees = mysql_fetch_array($reponseSQL)) {
echo"l'article existe déja dans la table correspondante ";
}
}
else{
$requeteSQL=" insert into iphone (ref,article,marque,prix)values ('$ref','$article','$marque','$prix') ";
$reponseSQL = mysql_query($requeteSQL);
echo "l'article est ajouter avec succée";
}
}
elseif($article=='MP4'){
$requeteSQL="select * from mp4 where ref='$ref' ";
if($reponseSQL = mysql_query($requeteSQL)){
while ($donnees = mysql_fetch_array($reponseSQL)) {
echo"l'article existe déja dans la table correspondante ";
}
}
else{
$requeteSQL=" insert into mp4 (ref,article,marque,prix)values ('$ref','$article','$marque','$prix') ";
$reponseSQL= mysql_query($requeteSQL);
echo "l'article est ajouter avec succée";

}
}
elseif($article=='SOURI'){
$requeteSQL="select * from souri where ref='$ref' ";
if($reponseSQL = mysql_query($requeteSQL)){
while ($donnees = mysql_fetch_array($reponseSQL)) {
echo"l'article existe déja dans la table correspondante ";
}
}
else{
$requeteSQL=" insert into souri (ref,article,marque,prix)values ('$ref','$article','$marque','$prix') ";
$reponseSQL = mysql_query($requeteSQL);
echo "l'article est ajouter avec succée";

}
}
elseif($article=='WEBCAM'){
$requeteSQL="select * from webcam where ref='$ref' ";
if($reponseSQL = mysql_query($requeteSQL)){
while ($donnees = mysql_fetch_array($reponseSQL)) {
echo"l'article existe déja dans la table correspondante ";
}
}
else{
$requeteSQL=" insert into webcam (ref,article,marque,prix)values ('$ref','$article','$marque','$prix') ";
$reponseSQL1 = mysql_query($requeteSQL);
echo "l'article est ajouter avec succée";
}
}
}

?>
</body>
</html>
0