Requete vide alors seconde requete

[Résolu]
Signaler
Messages postés
244
Date d'inscription
jeudi 14 avril 2005
Statut
Membre
Dernière intervention
12 juillet 2006
-
Messages postés
244
Date d'inscription
jeudi 14 avril 2005
Statut
Membre
Dernière intervention
12 juillet 2006
-
Bonjour,

je fais une requête avec un select, ensuite si le résultat de la requete est vide alors je souhaite executer une seconde requete.
J'ai essayé ça mais ça marche pas bien !!!!
si quelqu'un pouvait m'aider !!!

$sSQL="SELECT CODE, TYPE_ELT from ".$LaTableb."
where CODE='".$CODE."' AND TYPE='".$TYPE."'";
$result= mysql($DataBase,$sSQL );
echo $sSQL;

//INSERTION D'UN NOUVEAU PERIMETRE AVEC SES ELEMENTS SI LE PERIMETRE N'EXISTE PAS

if(empty($sSQL))
{ $sSQLb="INSERT INTO ...

9 réponses

Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
cela doit marcher, mais c'est incorrect.
Cela ne marche pas avec l'error reporting au maximum, je pense.
si ton fetch_array ne renvoie rien, $data est false. Si $data est false, $data['CODE'] n'existe pas, donc tu assignes une variables indéfinie à une autre variable...

$sSQL="SELECT CODE, TYPE from ".$LaTableb."
where CODE='".$CODE."' AND TYPE='".$TYPE."'";
$result= mysql_query ($sSQL );
if (mysql_num_rows ($result) === 0) {
// insertion.
}
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Messages postés
5
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
11 janvier 2006

Salut,

déjà essaye de faire fonctionner ta premiere requete

$sSQL="SELECT CODE, TYPE_ELT from ".$LaTableb."
where CODE='".$CODE."' AND TYPE='".$TYPE."'";
$result= mysql_db_query($DataBase,$sSQL );

et après comme te l'as dit a juste titre malamam tu utilises mysql_num_rows

$num_rows = mysql_num_rows($result);

mais attention utilise le sur $result et non pas un test sur $sSQL comme dans ton code.

@+
Messages postés
244
Date d'inscription
jeudi 14 avril 2005
Statut
Membre
Dernière intervention
12 juillet 2006

Est ce que cela revient au même ???? car ça semblait marcher ainsi !!!??

$sSQL="SELECT CODE, TYPE from ".$LaTableb."
where CODE='".$CODE."' AND TYPE='".$TYPE."'";
$result= mysql($DataBase,$sSQL );
$data = mysql_fetch_array($result);
$GROUPE=$data["CODE"];
//INSERTION D'UN NOUVEAU PERIMETRE AVEC SES ELEMENTS SI LE PERIMETRE N'EXISTE PAS

if(empty($GROUPE))

{ $sSQLb="INSERT INTO ".$LaTableb." .....
Messages postés
244
Date d'inscription
jeudi 14 avril 2005
Statut
Membre
Dernière intervention
12 juillet 2006

pourquoi il faut mettre 3 fois = ??? dans

if (mysql_num_rows ($result) = = = 0) {
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
3 = c'est strictement égal
Messages postés
244
Date d'inscription
jeudi 14 avril 2005
Statut
Membre
Dernière intervention
12 juillet 2006

ok merci !!!
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
= compare aussi sur le type.
ne compara pas sur le type.

$var1 = '0';
$var 2 = 0;

if ($var1 == $var2) // renvoie true
if ($var1 === $var2) // renvoie false : $var1 est de type string, $var2 est de type int
Messages postés
244
Date d'inscription
jeudi 14 avril 2005
Statut
Membre
Dernière intervention
12 juillet 2006

je vais péter un cable !!! je ne comprends pas pourquoi ça ne marche pas là !!! il m'insère bien si ça n'existe pas par contre il ne met pas à jours si il existe !!!!

$sSQLd="SELECT CODE_REGROUPT, NOM_REGROUPT from ".$LaTabled."
where CODE_REGROUPT='".$TYPE_ELT."'";
$resultd= mysql($DataBase,$sSQLd);
echo $code;
echo $sSQLd;
$num_rows = mysql_num_rows($resultd);
echo "nombrede ligne";
echo $num_rows;


//SI L'ELEMENT N'EXISTE PAS DANS LA TABLE REGROUPT -> INSERT

if (mysql_num_rows($resultd) === 0)
{
$sSQLu="INSERT INTO ".$LaTabled."( cleUnique,
CODE_REGROUPT,
NOM_REGROUPT)
VALUES ('".$cleUnique."',
'".$TYPE_ELT."',
'".$labeltype."')";
$resultu=mysql($DataBase,$sSQLu );

echo $sSQLu;
}
else
{
$sSQLi="UPDATE ".$LaTabled."
SET NOM_REGROUPT='".$labeltype."'
where CODE_REGROUPT='".$TYPE_ELT."' ";
$resulti= mysql($DataBase,$sSQLi);
}
echo $sSLQi;