IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Opération dans requête sql


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Femme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Décembre 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2011
    Messages : 56
    Points : 52
    Points
    52
    Par défaut Opération dans requête sql
    Bonjour à tous !

    Quelques petits soucis pour faire des opérations dans mes requêtes sql. Il me demande de checker le manuel. Quelqu'un aurait une idée de ce que je ne fais pas bien?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql="INSERT INTO tarifs (prefixe, forfait, connection, prix_minute) VALUES ('$prefix', 'Illimite france fixe et mobile', ((('$miseenrelation'*30)/100)+'$miseenrelation'),((('$tarifminute'*30)/100)+'$tarifminute')";
    $req = mysql_query($sql) or die ('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    echo 'requete ok'. "\n";
    Merci à tous de votre aide

    Solène

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 088
    Points : 38 393
    Points
    38 393
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    La moindre des choses est de préciser le SGBD et sa version, la description de vos tables et de communiquer le message d'erreur complet

  3. #3
    Membre du Club
    Femme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Décembre 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2011
    Messages : 56
    Points : 52
    Points
    52
    Par défaut
    Oups en effet désolée du dérangement pour rien du coup.

    Alors:

    je bosse sur mysql et j'ai la table tarifs dans la BDD facturation avec les champs: prefixe varchar/ forfait varchar / connection int / prix_minute int.

    Ma requête php pour récupérer les variables est trop longue pour vous la donner, par contre les variables sont ok puisque j'ai réussi à insérer ces variable dans une autre table juste avant la requête que je vous ai filé.

    Et voilà l'erreur:
    "INSERT INTO tarifs (prefixe, forfait, connection, prix_minute) VALUES ('', 'Illimite france fixe et mobile', (((''*30)/100)+''),(((''*30)/100)+'')<br>You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1"

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 778
    Points
    30 778
    Par défaut
    Penses-tu que l'opération (((''*30)/100)+'') puisse donner un résultat exploitable ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Membre du Club
    Femme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Décembre 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2011
    Messages : 56
    Points : 52
    Points
    52
    Par défaut
    Bonjour,

    non forcément c'est bien là mon problème..
    Une requête faite une ligne avant me renvoie les bons résultats des variables et dans cette requête il récupère rien.. D'où ma question..

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 778
    Points
    30 778
    Par défaut
    Donc le problème se trouve sans aucun doute dans les lignes qui précèdent l'appel de la requête, plus que dans la requête elle-même.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  7. #7
    Membre du Club
    Femme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Décembre 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2011
    Messages : 56
    Points : 52
    Points
    52
    Par défaut
    C'est ce que j'ai regardé mais ma requête précédente fonctionne avec les même variables.
    Du coup petite question, est-il possible de faire deux requêtes l'une à la suite de l'autre?
    Mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $nomdestination = mysql_real_escape_string(htmlspecialchars($nomdestination));
    $sql = "INSERT INTO facture (facture.prefixe, facture.destination_name, facture.prix_minute, facture.connection) VALUES ('$prefix','$nomdestination','$tarifminute','$miseenrelation')";
    $req = mysql_query($sql) or die ('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    echo 'requete ok'. "\n";
     
     
    $sql="INSERT INTO tarifs (tarifs.prefixe, tarifs.forfait, tarifs.connection, tarifs.prix_minute) VALUES ('$prefix', 'Illimite france fixe et mobile', (".$miseenrelation*30/100."+'$miseenrelation'),((('$tarifminute'*30)/100)+'$tarifminute'))";
    $req = mysql_query($sql) or die ('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    echo 'requete ok'. "\n";

    Ma première requête fonctionne, est-ce erroné de mettre la deuxième direct après?

  8. #8
    Membre du Club
    Femme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Décembre 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2011
    Messages : 56
    Points : 52
    Points
    52
    Par défaut
    J'ai essayé ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $sql = "INSERT INTO LEONIX_MAJ (LEONIX_MAJ.prefixe, LEONIX_MAJ.destination_name, LEONIX_MAJ.prix_minute, LEONIX_MAJ.connection)".
    " VALUES ('$prefix','$nomdestination','$tarifminute','$miseenrelation')".
    " UNION INSERT INTO tarifs (tarifs.prefixe, tarifs.forfait, tarifs.connection, tarifs.prix_minute)". 
    " VALUES ('$prefix', 'Illimite france fixe et mobile', ((($miseenrelation*30)/100)+'$miseenrelation'),((('$tarifminute'*30)/100)+'$tarifminute'))"; 
     
     
    $req = mysql_query($sql) or die ('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    echo 'requete ok'. "\n";
    Dès que je mets à partir du UNION INSERT INTO en commentaire, ma requête fonctionne et me donne les bonnes valeurs.. J'ai tout essayé pour mon calcul, avec des double quotes, des simplets, des ". rien ne fonctionne...

  9. #9
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 088
    Points : 38 393
    Points
    38 393
    Billets dans le blog
    9
    Par défaut
    La commande UNION ne s'utilise qu'entre 2 requetes SELECT, elle n'est pas applicable entre 2 requetes INSERT

  10. #10
    Membre du Club
    Femme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Décembre 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2011
    Messages : 56
    Points : 52
    Points
    52
    Par défaut
    Bon ben je sais toujours pas mon erreur dans la requête sql..

  11. #11
    Membre du Club
    Femme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Décembre 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2011
    Messages : 56
    Points : 52
    Points
    52
    Par défaut
    Bon maintenant j'ai ça, plus d'erreur, mais dans ma table tarif les données connection et prix_minute sont toutes à zéro...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $sql =  "INSERT INTO facturation (facturation.prefixe, facturation.destination_name, facturation.prix_minute, facturation.connection)".
            " VALUES ('$prefix','$nomdestination','$tarifminute','$miseenrelation')";
     
    $req = mysql_query($sql) or die ('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    echo 'requete ok'. "\n";
     
    $sql=   "INSERT INTO tarifs (tarifs.prefixe, tarifs.nom_destination, tarifs.forfait, tarifs.connection, tarifs.prix_minute)".
            " VALUES ('$prefix', '$nomdestination', 'prix_de_vente',('$miseenrelation'*1.3),('$tarifminute'*1.3))";
     
     
    $req = mysql_query($sql) or die ('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    echo 'requete ok'. "\n";

  12. #12
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 088
    Points : 38 393
    Points
    38 393
    Billets dans le blog
    9
    Par défaut
    C'est donc que vos host variables $tarifminute et $miseenrelation sont mal alimentées

  13. #13
    Membre du Club
    Femme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Décembre 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2011
    Messages : 56
    Points : 52
    Points
    52
    Par défaut
    C'est en effet votre réponse depuis le début, ce que je ne comprends pas c'est pourquoi, la même variable fonctionnerait pour la requête précédente, et pas pour celle là? elle s'autodétruit entre les deux requêtes?

  14. #14
    Membre du Club
    Femme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Décembre 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2011
    Messages : 56
    Points : 52
    Points
    52
    Par défaut
    Bon merci de votre aide mais du coup c'était pas les variables (je me disais!) mais juste le type des données dans ma BDD, je l'avais mis en int et pas en float ou décimal...
    Merci quand même de votre aide

  15. #15
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 088
    Points : 38 393
    Points
    38 393
    Billets dans le blog
    9
    Par défaut
    Ceci mériterait des explications détaillées : type de chaque colonne cible, de chaque host variable et contenu initial des host var.
    Car même avec une colonne déclarée en integer le calcul reste valide vous perdez seulement la partie décimale du calcul (troncature)

  16. #16
    Membre du Club
    Femme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Décembre 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2011
    Messages : 56
    Points : 52
    Points
    52
    Par défaut
    Malheureusement pas d'autres explications à fournir.
    Lorsque j'ai changé $tarif et $miseenrelation en float, tout a fonctionné du premier coup avec le code que je vous ai donné dans le forum.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Introduire une variable dans requête SQL, insérer des données à la volée
    Par Ronan.f dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 29/04/2006, 23h10
  2. [VB6]Fonction dans requête SQL Access
    Par jean-pierre96 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 21/04/2006, 20h44
  3. TEdit.Text dans Requête SQL?!?
    Par zarbydigital dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/10/2005, 10h37
  4. [Visual Web] [SJSC] Concaténation dans requête SQL
    Par Original Prankster dans le forum NetBeans
    Réponses: 22
    Dernier message: 15/08/2005, 15h50
  5. ASP et valeur NULL dans requêtes SQL
    Par chuck_m dans le forum ASP
    Réponses: 7
    Dernier message: 13/08/2004, 12h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo