Requette mysql insert

Résolu/Fermé
45gus - 22 sept. 2012 à 18:30
augustin45 Messages postés 134 Date d'inscription samedi 4 février 2012 Statut Membre Dernière intervention 20 novembre 2012 - 23 sept. 2012 à 15:04
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

tioxine Messages postés 4 Date d'inscription samedi 22 septembre 2012 Statut Membre Dernière intervention 23 septembre 2012
22 sept. 2012 à 18:37
Bonjour,

Lis ce lien, peut être y trouveras tu ton bonheur

https://phpsources.net/

A+
0
augustin45 Messages postés 134 Date d'inscription samedi 4 février 2012 Statut Membre Dernière intervention 20 novembre 2012 31
22 sept. 2012 à 18:46
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");
0
augustin45 Messages postés 134 Date d'inscription samedi 4 février 2012 Statut Membre Dernière intervention 20 novembre 2012 31
22 sept. 2012 à 19:10
personne?
0
augustin45 Messages postés 134 Date d'inscription samedi 4 février 2012 Statut Membre Dernière intervention 20 novembre 2012 31
23 sept. 2012 à 11:55
svp aidez moi
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 219
23 sept. 2012 à 12:34
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!';
}
?>
0
augustin45 Messages postés 134 Date d'inscription samedi 4 février 2012 Statut Membre Dernière intervention 20 novembre 2012 31
23 sept. 2012 à 12:42
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
0
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 219
Modifié par tryan44 le 23/09/2012 à 12:59
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!
0
augustin45 Messages postés 134 Date d'inscription samedi 4 février 2012 Statut Membre Dernière intervention 20 novembre 2012 31
23 sept. 2012 à 12:59
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
0
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 219
23 sept. 2012 à 13:00
J'en ai rajouté une troisième dans le poste au dessus.
0
augustin45 Messages postés 134 Date d'inscription samedi 4 février 2012 Statut Membre Dernière intervention 20 novembre 2012 31
23 sept. 2012 à 13:02
toujours pas :(
0
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 219
23 sept. 2012 à 13:04
Bha merdouille alors... si vous mettez directement un chiffre dans l'insert, ça donne quoi ?
$insert = mysql_query("INSERT INTO table (moyenne) VALUES (1)");
0
augustin45 Messages postés 134 Date d'inscription samedi 4 février 2012 Statut Membre Dernière intervention 20 novembre 2012 31
23 sept. 2012 à 13:05
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
0
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 219
23 sept. 2012 à 13:12
Selon la doc mysql, il semblerait que le mot TABLE soit un mot interdit...peut être que l'erreur vient de la...?
0
augustin45 Messages postés 134 Date d'inscription samedi 4 février 2012 Statut Membre Dernière intervention 20 novembre 2012 31
23 sept. 2012 à 14:45
table interdit
je rierais si c'était cela...
je vais voir cela tout de suite
0
tioxine Messages postés 4 Date d'inscription samedi 22 septembre 2012 Statut Membre Dernière intervention 23 septembre 2012
23 sept. 2012 à 14:04
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+
0
augustin45 Messages postés 134 Date d'inscription samedi 4 février 2012 Statut Membre Dernière intervention 20 novembre 2012 31
23 sept. 2012 à 15:04
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...
0