Php-SQL - mysql_query(INSERT TO..); -HELP ???

Résolu
BartWadela Messages postés 562 Date d'inscription   Statut Membre Dernière intervention   -  
BartWadela Messages postés 562 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

j'ai besoin d'un petit coup de main, je sais pas si vous pourrez m'aider.

j'essaye de créer un mini-chat temporaire, c'est a dire que le visiteur arrive sur la page index :

- soit il indique le nom d'un "forum," qui existe et la il se connecte sur le "forum," en cours de discussion

soit il indique le nom d'un "forum," qui n'existe pas et la ça créer une table dans la bdd (table qui sera suppr. a la deconx avec drop_table)

- j'ai 2 pages : test.php et test02.php :

- sur la 1ere (test.php = index), je demande au visiteur de se connecter sur table existante ou de la créer - ça ça fonctionne impeccable

- sur la 2nde (test02.php = chat), le visiteur mets son pseudo et son msg et ca envoi sur la table dans la bdd, puis en affiche le contenu (comme sur le site du zero), par contre ce qui ne fonctionne pas c'est ma commande = mysql_query(INSERT TO ...);

qd je mets le contenu entre parenthese en "dur," ca insere bien dans la bdd,
par contre vu que le nom de la table et gérer par les sessions - $_SESSION['forum']
j'arrive pas a entrer la commande mysql_query(INSERT TO ...); avec cette variables en plus

je sais pas si vous m'avez compris

je poste mets deux codes : dites moi ce que vous en pensez !? (je débute en php/sql j'ai que 3mois d'xp)

test.php
<?php
session_start();
?>

<?php

define('PREFIX_SQL2', 'CREATE TABLE IF NOT EXISTS ');
define('SUFFIX_SQL2', ' (
`id` MEDIUMINT NOT NULL AUTO_INCREMENT ,
`pseudo` TEXT NOT NULL ,
`message` TEXT NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM;');
?>
<p>/!\ ATTENTION /!\
	<li>Pas d'espace</li>
	<li>Tout en minuscule</li>
	<li>Pas de chiffre en 1er caract&egrave;re</li>
	<li>pas de caract&egrave;res sp&eacute;ciaux</li>
	<li>16 caract&egrave;res MAXI</li>
</p>
<form method=post action="test.php">
<p>
	<label>Nom du forum : </label>
	<input type=text size="20" maxlength="16" name="nom_chat" />
	<input type="submit" value="OK">
</p>
</form>
<p>Si le forum est d&eacute;j&agrave; cr&eacute;er : <a href="test02.php">cliquez ici</a>
<?php
$table_temp = htmlspecialchars(strtolower($_POST['nom_chat']));
$new_sql = (PREFIX_SQL2.$table_temp.SUFFIX_SQL2);
	include("data_bd.php");

	mysql_connect("$db_server","$db_name","$db_user_pass");
	mysql_select_db("$db_user_login");

	mysql_query($new_sql);

?>
<?php $_SESSION['forum'] = $table_temp; ?>


et test02.php

<?php
session_start();
?>
Actuellement sur le forum : <?php echo $_SESSION['forum']; ?>
<form action="test02.php" method="post">
 
<p>
<label>Pseudo : </label>
		<input type="text" name="pseudo" /><br />
<label>Message : </label>
		<input type="text" name="message" /><br />
 
<input type="submit" value="Envoyer" />
</p>
</form>
<?php
include("data_bd.php");

  $sql_sql = mysql_connect("$db_server","$db_name","$db_user_pass");
	mysql_connect("$db_server","$db_name","$db_user_pass");
	mysql_select_db("$db_user_login");

        $message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
        $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
 
define ('PART01', '"INSERT INTO ');
define ('PART02', ' VALUES (');
define ('PART03', '');
define ('PART05', '$pseudo', '$message');
$part01= "'', '$pseudo', '$message')";
define ('PART06', ';"');



$insert01= (PART01.$_SESSION['forum']);
$insert02= ($insert01.PART02);
$insert03= ($insert02.$part01);
$insert04= ($insert03.PART06);

		mysql_query($insert04);
		// mysql_query("INSERT INTO bartwadela VALUES (NULL , 'pseudo001', 'text-001')");

         //   décnx SQL
        mysql_close();
?>

A voir également:

1 réponse

gryzzly Messages postés 4608 Date d'inscription   Statut Contributeur Dernière intervention   1 335
 
Déjà abandonne tes define & co ... ca en devient illisible, et derrière, c'est nous qui galérons pour débugguer. Il m'a fallu 10 minutes pour arriver au résultat ...

Traduction litérale de ton charabia de défintions:
"INSERT INTO $_SESSION['forum'] VALUES ( '', '$pseudo', '$message');"

forme d'une requete valide :
INSERT INTO `forum` (`id`, `pseudo`, `message`) VALUES ('', 'xxx', 'text');

plusieurs possibilités : problèmes des ' ou ` , $_SESSION existe pas, rajoutes les noms des champs ...
0
BartWadela Messages postés 562 Date d'inscription   Statut Membre Dernière intervention   107
 
Déjà abandonne tes define & co ... ca en devient illisible, et derrière, c'est nous qui galérons pour débugguer. Il m'a fallu 10 minutes pour arriver au résultat ...

jsui bien d'accord avec toi...

$_SESSION['forum'] existe bien j'arrive a l'afficher pourtant.

jvais tester avec la syntaxe que tu me propose, ça se trouve c'est juste ça (je serai dégouté...)

en tout cas merci, d'avoir pris le temps de déchiffrer lire mon code.

Bon jpart en wkend, je vais voir ça lundi.
Merci beaucoup
0
BartWadela Messages postés 562 Date d'inscription   Statut Membre Dernière intervention   107
 
Pffffffff.... jsui dégouté...

j'ai juste mis =
  $message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
  $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
  $table_temp = $_SESSION['forum'];

	mysql_query("INSERT INTO $table_temp VALUES ('', '$pseudo', '$message')");

et ça passe,

JSUI VEEEEEERRRRTTT...

c't trop simple

En tout cas merci beaucoup, et encore désolé d'avoir usé tes yeux sur mon code a 2 balles
0