Problèmpe d'écriture dans un bdd MySql

raskas
Invité n'ayant pas de compte PHPfrance

01 mars 2011, 11:15

Donc j'ai trois pages :

sql.php :
<?
$serveur = "***.**.***.**"
$connexion = mysql_connect($serveur,$login,$mdp); 
$db = mysql_select_db($bdd, $connexion);
?>
ajout_1.php :
<form action="11.php" method="post">
<p>
<input type="text" name="login" />
<textarea name="commentaire"></textarea>
<input type="submit" value="Valider" />
</p>
</form>
11.php :
<?
include("sql.php");
?>
<?
$commentaire = $_POST['commentaire'];
$login = $_POST['login'];
$date = date("Y/m/d");
mysql_query ("INSERT INTO commentaires (id, date, login, commentaires) VALUES ('', '$date', '$login', '$commentaire')");
mysql_close();
?> 
Et une table MySql :
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
CREATE TABLE IF NOT EXISTS `commentaires` (
	`id` int(11) NOT NULL auto_increment,
	`date_1` text NOT NULL,
	`login_1` text NOT NULL,
	`commentaire_1` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
Je ne pense pas avoir fait d'erreur mais rien ne s'écrit dans la table MySql, Donc je demande un peu d'aide :D à la communoté...

ViPHP
ViPHP | 5462 Messages

01 mars 2011, 11:21

hello, pense a bien faire tes balise pour php, c'est <?php pas <?, ensuite tu dois activé la gestion des erreurs pour mysql :
ini_set('mysql.trace_mode', true);

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

01 mars 2011, 13:28

salut,

au passage,

$login et $mdp n'existe pas dans sql.php ce qui doit te donner quelques messages d'erreur (variable inexistante au minimum voir connexion impossible)
vérifie queton niveau d'erreur soit bien à E_ALL | E_STRCIT afin d'être certain de bien les avoir d'afficher ;) (voir les fonctions ini_set et / error_reporting).

lorsque tu utilise mysql_query il est bon de vérifier le retour de cette fonction (dans ce cas ci true / false) afin d'éventuellement afficher un message d'erreur (if + mysql_error) ce bien sur couplé avec l'info de stealth35 ;)


@+
Il en faut peu pour être heureux ......

raskas
Invité n'ayant pas de compte PHPfrance

01 mars 2011, 13:51

Je dois rajouter quoi dans sql.php pour integrer les fonctions alors ? Je ne sais pas quel code mettre :?

ViPHP
xTG
ViPHP | 7331 Messages

01 mars 2011, 13:53

Il faut que tu renseignes les variables :
$login : identifiant de connexion à la base de donnée
$mdp : mot de passe du compte
$bdd : nom de la base de donnée

raskas
Invité n'ayant pas de compte PHPfrance

01 mars 2011, 13:57

Oui j'ai bien remplacé les **** par mon identifiant, mon mot de passe et le nom de base de donnée :x

raskas
Invité n'ayant pas de compte PHPfrance

01 mars 2011, 14:02

Oui j'ai bien remplacé les **** par mon identifiant, mon mot de passe et le nom de base de donnée :x
J'ai :
<?
$serveur = "serveur";
$login = "login";
$mdp = "mdp";
$bdd = "bdd";
$connexion = mysql_connect($serveur,$login,$mdp); 
$db = mysql_select_db($bdd, $connexion);
?>
serveur, login, mdp et bdd son valide, je me connecte à la bdd Mysql, mais toujours impossible d'écrire à l'intérieur :|

ViPHP
ViPHP | 5462 Messages

01 mars 2011, 14:34

fais bien comme j'ai dis

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

01 mars 2011, 14:36

quel est le niveau d'erreur ?
erreur mysql activée ?

quel est le retour de mysql_query ?

@+
Il en faut peu pour être heureux ......

raskas
Invité n'ayant pas de compte PHPfrance

01 mars 2011, 15:25

Rien ne s'affiche, tout se déroule bien mais rien ne se passe :roll:

ViPHP
ViPHP | 5462 Messages

01 mars 2011, 15:29

Rien ne s'affiche, tout se déroule bien mais rien ne se passe :roll:
t'as bien fais comme j'ai dis ...

raskas
Invité n'ayant pas de compte PHPfrance

01 mars 2011, 16:45

Et oui :roll: :roll:

raskas
Invité n'ayant pas de compte PHPfrance

01 mars 2011, 17:40

<?php
include ("sql.php")
$commentaire = $_POST['commentaire'];
$login = $_POST['login'];
$date = date("Y/m/d");
mysql_query ("INSERT INTO commentaires (id, date, login, commentaires) VALUES ('', '$date', '$login', '$commentaire')");
ini_set('mysql.trace_mode', true);
mysql_close();
?> 
<?php
if ($sql === false) {
echo 'Erreur SQL à la ligne '.__LINE__.' avec le message : '.mysql_error();
}
else {
$count = mysql_num_rows($sql);
}
?>
Donc j'ai modifié le code de 11.php mais une erreur indique :
Parse error: syntax error, unexpected T_VARIABLE in /var/www/bob-web.fr/htdocs/commentaires/11.php on line 3

ViPHP
ViPHP | 5462 Messages

01 mars 2011, 18:14

le ini_set doit être avant toutes requêtes, t'as oublier le ; a la première ligne, et verifie ton niveau d'erreur comme à dit moogli

raskas
Invité n'ayant pas de compte PHPfrance

01 mars 2011, 18:16

Et c'est qioi l'erreur de variable à la ligne 3? Y'as pas d'erreur pourtant...