PHP erreur requete SQL [Résolu/Fermé]

Signaler
-
 fosswire -
Bonjour à tous,
Je fais appel à votre aide afin d'essayer de résoudre ce qui cloche dans mon code:

$req_quota = mysql_query("SELECT * FROM user where login='$login'") or die;
$quota = mysql_result($req_quota,0,4); // on regarde son quota

if($quota>0) // si il a du crédit
{
$doublon = mysql_query("SELECT * from sms where id_user='$user' and dst='$dst' and message='$sms' and date LIKE '$dateheure%'");
$is_doublon = mysql_num_rows($doublon);
if($is_doublon==0)
{
$maj_quota = $quota-1;
$annee=date("Y");$mois=date("m");
$tot__sms=mysql_query("SELECT * FROM usage where id_user='$user' and annee='$annee' and mois='$mois'");
$rows__sms=mysql_num_rows($tot__sms);
$ressms=mysql_result($tot__sms,0,4);
$nbsms=$ressms+1;
if(empty($rows__sms)){mysql_query("INSERT INTO usage VALUES (default, '$user', '$annee', '$mois', '1')");}
else{mysql_query("UPDATE usage SET total='$nbsms' where id_user='$user' and annee='$annee' and mois='$mois'");}
mysql_query("UPDATE user SET quota='$maj_quota' where login='$login'") or die;
mysql_query("INSERT INTO sms VALUES (default, '$user', '$login', '$dst', '$sms', '$bddate', '$ip')") or die;
mysql_query("UPDATE usage SET total='$nbsms' where id_user='$user' and annee='$annee' and mois='$mois'");
} else { } // doublon
}
else { } // si il n'a plus de crédit

Tout se déroule à merveille exepté la partie où je veux inserer dans une table le nombre de messages envoyés.

Ceux sont ces 2 requêtes qui ne passent pas :
if(empty($rows__sms)){mysql_query("INSERT INTO usage VALUES (default, '$user', '$annee', '$mois', '1')");}
else{mysql_query("UPDATE usage SET total='$nbsms' where id_user='$user' and annee='$annee' and mois='$mois'");}

J'ai essayer aussi comme ca :
if(!$rows__sms){} ou if($tot__sms==0){ comme je le fais plus haut pour détécter les doublons }

ou encore comme ca : if(empty($rows__sms)) {}

La requête est exactement la même que celle pour détecter les doublons mais apparement elle n'est pas valide.


Je me suis pris la tête toute la journée mais sans succès...


Merci pour les éventuels retours

4 réponses

Messages postés
816
Date d'inscription
samedi 21 juin 2008
Statut
Membre
Dernière intervention
17 juillet 2012
180
Ca vient peut être aussi d'une erreur de syntaxe dans les requêtes SQL ...

essayes de remplacer par ceci :

if(empty($rows__sms)){mysql_query("INSERT INTO usage VALUES (default, '$user', '$annee', '$mois', '1')") or die (mysql_error());}
else{mysql_query("UPDATE usage SET total='$nbsms' where id_user='$user' and annee='$annee' and mois='$mois'") or die (mysql_error());}
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 76687 internautes nous ont dit merci ce mois-ci

Messages postés
1054
Date d'inscription
samedi 14 mars 2009
Statut
Membre
Dernière intervention
23 octobre 2013
144
Salut, n'oublie pas la concaténation de tes variables lors de tes requêtes.
Petite précision, la structure des tables 'usage' et 'sms' sont pratiquement identiques :
A savoir un id (id_usage et id_sms)

Mon problème peut-il être dû au fait que j'utilise trop de boucles ?
C'est après un cinquième if que je demande d'inserer des données dans la table usage.
Soit créer une nouvelle ligne avec 1 en valeur 'total'
Soit mettre à jour avec la nouvelle valeur.

Merci :)
Problème résolu !

Pour je ne sais quelle raison, la table usage n'était pas reconnue.

Il fallait 'bizarement' préciser le nom de la base de donneés.

La solution était donc de rajouter 'lenomdemabase.usage' where etc ...