Requette mysql insert

Résolu
Bonjour,
j'ai un problème avec une requette sql; voici mon code:
include("connexionalabasemysql/connexionmysql.php");//page pour me connecter à mysql
$note = intval($_GET['note']);
mysql_query ("INSERT INTO table(moyenne) VALUES (". $note .")");
mysql_close(); 
header("location:index.php");


donc lorsque ce code est éxécuté, il n'y a aucune erreur qui s'affiche, mais pourtant, dans php my admin, aucune entrée n'ast ajoutée.
(le champs moyenne est de type INT)
merci d'avance

12 réponses

  1. merci, je viens de tester
    sans résultat, toujours.
    voici mon nouveau code:
    $note = intval($_GET['note']);
    include("connexionalabasemysql/connexionmysql.php");
    $query = sprintf("INSERT INTO table (moyenne) VALUES ('%s')", mysql_real_escape_string($note));
    mysql_query ($query);
    mysql_close(); 
    header("location: index.php");
    
    1. Salut,

      Testez ça :
      <?php
      //teste si la variable existe et non vide
      if(isset($_GET['note']) && $_GET['note']!= NULL){
      	$note = intval($_GET['note']);//retourne un entier
      	//on teste si la variable est bien de type numérique
      	if(!is_numeric($note)){
      		echo 'La variable $note n\'est pas de type numérique!';
      	}
      	else{
      		include("connexionalabasemysql/connexionmysql.php");
      		$insert = mysql_query("INSERT INTO table (moyenne) VALUES ('".$note."')" or die ('Erreur :'.mysql_error());
      		//Si il y a une erreur
      		if (!$insert) {
      			die('Requête invalide : ' . mysql_error());
      		}
      		mysql_close(); 
      		header("location:index.php");
      	}	
      }
      else{
      	echo 'La variable $_GET[\'note\'] n\'existe pas ou est vide!';
      }
      ?>
      1. merci pour ta réponse
        petite correction je crois sur la ligne 11 si je la fais pas, il me met une erreur:
        $insert = mysql_query("INSERT INTO table (moyenne) VALUES ('".$note."')") or die ('Erreur :'.mysql_error());


        n'empèche qu'il me dis qu'il y a une erreur dans la syntaxe sql:
        Erreur :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 'table (moyenne) VALUES ('1')' at line 1
        1. Effectivement j'ai zappé une parenthèse :).
          Sinon, je ne vois pas trop ou ça plante...
          Testez :
           $insert = mysql_query("INSERT INTO table (moyenne) VALUES ('".$note."')");

          ou
          $insert = mysql_query("INSERT INTO table (moyenne) VALUES ($note)");

          ou encore
          $insert = mysql_query("INSERT INTO table (moyenne) VALUES ('".mysql_real_escape_string($note)."')");

          Une question stupide engendre une réponse stupide!
          Une question mal formulé engendre une réponse aléatoire!
          1. non ca ne marche toujours pas, toujours le m'eme message d'erreur...
            ou alors il y a une syntaxe spéciale pour mon serveur, je vais regarder
            1. toujours pas :(
              1. Bha merdouille alors... si vous mettez directement un chiffre dans l'insert, ça donne quoi ?
                $insert = mysql_query("INSERT INTO table (moyenne) VALUES (1)");
              2. quand je met par example 14, ca met ca:
                Requête invalide : 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 'table (moyenne) VALUES ('14')' at line 1
              3. Selon la doc mysql, il semblerait que le mot TABLE soit un mot interdit...peut être que l'erreur vient de la...?
              4. table interdit
                je rierais si c'était cela...
                je vais voir cela tout de suite
            2. Salut,

              Dans le lien, il y a deux choses dont l'une au moins est importante, c'est le test d'erreur derrière ta query
              Ajoute ce test et peut être aura tu l'erreur qui remonte
              D'autre part, si il n'y a aucune erreur, est tu en auto commit ?
              SI oui, la je ne vois plus sinon, il faut commiter la query
              Pour essayer, test d'abord un select pour vérifier que tu attaques le bon serveur et la bonne table
              (select moyenne from table) [Au fait table c'est le nom de ta table ?, si oui, c craignos et il est tout a fait possible que le parseur ne comprenne pas la requête), sinon la syntaxe de l'isrt est insert into nomtable (cols,..) values (...)]

              A+
              1. c'est bon ca marche
                alors en effet, j'ai changé de table, et maintenant, ca marche
                il m'a juste mit un message "No database selected"
                alors j'ai ajouté la ligne:
                mysql_select_db ($base, $bdd) or die('Error ' . $base . ' : ' . mysql_error());


                et ca marche
                merci beaucoup

                ... quand je pense que j'ai autant galéré juste pour une histoire de nom de table...