Pb requete mysql = false mais vrai en php !!!

Résolu/Fermé
MoKaLux - 30 oct. 2010 à 13:03
 MoKaLux - 31 oct. 2010 à 11:30
Bonjour,

Après beaucoup de recherches je ne trouve pas et ne vois pas d'où vient le pb.
Je vais essayer de faire court.

J'ai une table mysql Questions :
id(INT) username(VARCHAR64) text(TEXT)

Ensuite avec PHP je regarde si text="" et dans ce cas j'efface la ligne et je stocke le resultat dans une variable $GLOBAL.

Le code php :
$sqltabletest = 'SELECT id FROM Questions WHERE text = ""';

if (mysqli_query($link, $sqltabletest))
{
$sqlcleaning = 'DELETE FROM Questions WHERE text = ""';
if (!mysqli_query($link, $sqlcleaning))
{
$output = 'Error cleaning table Questions : ' . mysqli_error($link);
include 'xx_output.html.php';
exit();
}
$GLOBALS['myMessageDb'] = 'table Questions successfully cleaned';
}

MON PROBLEME VIENT DU FAIT QUE $GLOBALS EST TOUJOURS ACTIVE ET QUE LE IF EST TOUJOURS VRAI MEME SI MA REQUETE EST FAUSSE !!!
LORSQUE JE TESTE MA REQUETE DANS MYSQL IL ME RETOURNE BIEN 0.

Pouvez-vous m'éclairer svp.

A voir également:

3 réponses

Pourquoi tu ne fait pas que cette requete ?
mysqli_query($link, "DELETE FROM Questions WHERE text = ''");
0
Salut,
merci de la réponse utlra rapide. OK. Je teste à l'instant et je reviens.
Encore merci.
0
ça marche pas. J'ai toujours le flag levé, la condition est tjs vraie dans php même si elle est fausse dans mysql. Le flag $GLOBALS est toujours levé. Je comprends pas. J'ai essayé de mettre if (...) =0 >0 !="" ...

Merci Siluni.
0
merci j'ai trouvé une soluce :

$sqlcleaningtest = "SELECT COUNT(*) FROM Questions WHERE text='' AND imagepath=''";
$result = mysqli_query($link, $sqlcleaningtest);
if (!$result)
{
$GLOBALS['myMessageDb'] = 'Error searching for questions.';
}
$row = mysqli_fetch_array($result);
if ($row[0] > 0)
{
// return TRUE;
// la table needs some cleaning
$sqlcleaning = "DELETE FROM Questions WHERE text = '' AND imagepath = ''";
if (!mysqli_query($link, $sqlcleaning))
{
$output = 'Error cleaning table Questions. ' . mysqli_error($link);
include 'xx_output.html.php';
exit();
}
$GLOBALS['myMessageDb'] = 'table Questions successfully cleaned';
header('Location: .');
}
0