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
- Expert php pinterest - Télécharger - Langages
- Erreur 0x80070643 - Accueil - Windows
- Iptv erreur de lecture - Forum TV & Vidéo
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
- Erreur lors de l'envoi de la requête facebook - 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 :)
