PHP erreur requete SQL
Résolu
fosswire
-
fosswire -
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
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
A voir également:
- PHP erreur requete SQL
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
- Expert php pinterest - Télécharger - Langages
- J'aime par erreur facebook notification - Forum Facebook
4 réponses
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());}
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());}
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 :)
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 :)