Problème simple et bète

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème simple et bète

par Cyrano » 18 sept. 2005, 11:29

La solution proposée par Reiji est syntaxiquement invalide. La forme d'une requête d'insertion en SQL est :

Code : Tout sélectionner

INSERT INTO nom_table [(champ_1[, champ_2,.. champ_n])] VALUES ('valeur_1'[, valeur_2.. valeur_n]);
Si on ne précise pas le nom des champs après le nom de la table, la requête d'insertion concernera TOUS les champs, il faudra donc qu'il y ait autant de valeur de que colonne dansla table. On peut cependant préciser seuoement les champs où on veut insérer une valeur. Pour la clé primaire, s'il s'agit d'un champ de type INT auto_increment, on a pas l'obligation de le préciser dans le second cas, le SGBD se chargeant de le remplir lui-même.

Donc Visiteur, la requête que tu as incrite est syntaxiquement valide. Coté programmation PHP, il manque un détail ou deux, mais ils sont facultatifs. Voici une proposition à tester:
<?php
/* On se connecte au serveu de base de données */
$connexion = mysql_connect("localhost", "root", "");
/* On sélectionne la base de données */
mysql_select_db("rep",$connexion);
/* On crée la requête SQL */
$sql = "INSERT INTO repo VALUES('', '". $topic ."', '". $pse ."', '". $mes ."', '". $em ."')";
/* On exécute la requête SQL */
mysql_query($sql, $connexion) or die("<h3>Une erreur s'est produite : ". mysql_error($connexion) ."</h3>\n");
/* On ferme la connexion */
mysql_close($connexion);
?>

par pjl » 18 sept. 2005, 11:18

normal que tu ne vois pas les messages d'erreur. Tu ne demandes pas à les afficher.
regarde ce tutau : http://www.phpdebutant.org/article67.php
et pour ta requete, commence par l'aficher et la tester dans phpmyadmin par exemple.

par Visiteur » 18 sept. 2005, 10:43

C'est moi (je me suis enregistré)

J'ai essayé ton truc Reiji mais rien n'y fait ! Il y a mème pas de message d'erreur...

Quelqu'un a une idée ?

par Reiji » 17 sept. 2005, 19:44

salut,

essaye ca :
mysql_connect("localhost", "root", ""); 
mysql_select_db("rep"); 
mysql_query("INSERT INTO repo ( 'nom_col1' , 'nom_col2' , 'nom_col3' , 'nom_col4' , 'nom_col5' ) VALUES('', '$topic', '$pse', '$mes', '$em')"); 
mysql_close(); 
où tu remplace evidement nom_colx par le nom de tes colonnes :)

Problème simple et bète

par Visiteur » 17 sept. 2005, 19:11

Bonjour a tous :D

J'ai commencé a programmer un forum, je bute sur un truc tout bète:
je veux insérer un message dans une base mysql. Je mets alors
mysql_connect("localhost", "root", "");
mysql_select_db("rep");
mysql_query("INSERT INTO repo VALUES('', '$topic', '$pse', '$mes', '$em')");
mysql_close();
Vous voyez ou est le problème ?

Merci d'avance :)

P.S:$em ne contient rien[/php]