[Php / Mysql] Requête sql ne marche pas

kilian Messages postés 8732 Date d'inscription   Statut Modérateur Dernière intervention   -  
 Philippe je sais ou tu te cache !!! -
Bonjour, j'ai une petit problème avec un script. En fait, la dernière requête sql ne fonctionne pas. Je vous mets la source:

<?php

$topic_name=$_GET["topic"];
$table_sent=$_GET["fiche"];


mysql_connect("****", "*****", "*****");
mysql_select_db("*****");

/* recherche de l'id du topic choisi */


$topic_id_sql=mysql_query("SELECT post_id
FROM phpbb_posts_text
WHERE post_subject=\"" . $topic_name ."\"");

$topic_id=mysql_result($topic_id_sql,0);

/*Cherche le nom de la table choisie*/

if ($table_sent=="lieu"){
	$table="fiches_lieux";
	}
else if ($table_sent=="perso")
{
	$table="fiches_perso";
}
	
else 
{
die("Vous n'avez pas signifié si c'était un personnage ou un lieu");
}

/*Incrémentation du compteur*/

$sql_count=mysql_query("SELECT MAX(compteur) FROM ".$table);
$compteur=mysql_result($sql_count,0);

$compteur=$compteur+1;

/*insertion des nouvelles données*/


mysql_query("INSERT INTO" .$table. "(compteur, id_topic )
VALUES(".$compteur. "," .$topic_id.")"); 


?>


En fait tout marche jusqu'au dernier "mysql_query", là ça cafouille. J'ai pourtant fait un echo de ce qui s'y trouve entre parenthèses, et testé la requête sur la base. Ca marche très bien....

Si quelqu'un a une idée.... :-)

Kilian, débutant en tâche de fond.....
A voir également:

8 réponses

ric
 
Bonsoir
mysql_query("INSERT INTO " .$table. " (compteur, id_topic )
VALUES (".$compteur. ", " .$topic_id.")");
Je n'ai rajouté que des espaces en particulier après INTO.
1
dedale82 Messages postés 403 Date d'inscription   Statut Membre Dernière intervention   283
 
Salut,
est ce que tu es sur d'avoir bien defini tes variables, sinon essaye ca :
$requete = mysql_query("INSERT INTO $table(compteur, id_topic )
VALUES("$compteur ", " $topic_id.)")
tiens moi au courant
1
kilian Messages postés 8732 Date d'inscription   Statut Modérateur Dernière intervention   1 526
 
Eh ben merci!
Ca marche à présent, c'étaient en effet des histoires d'espaces. :-)

Pour info Arsene, les variables sont entourées de points pour les concatener aux chaînes de caractères. Or en php (pour ailleurs je ne sais pas), un espace avant ou après un point de concatenation ne change rien du tout...
Par contre je ne sais pas ce que tu entend par guillemets flottantes...

Merci à vous trois et bonne soirée :-)

PS pour Dédale : J'avais pas lu ton message à temps, mais ça fonctionne sans affecter mysql_query à une variable ;-)

Kilian, débutant en tâche de fond.....
1
dedale82 Messages postés 403 Date d'inscription   Statut Membre Dernière intervention   283
 
je sais, c'etait plus par habitude, le but etait de ne pas concatener.
0
kilian Messages postés 8732 Date d'inscription   Statut Modérateur Dernière intervention   1 526 > dedale82 Messages postés 403 Date d'inscription   Statut Membre Dernière intervention  
 
C'est vrai. D'ailleurs je sais pas si c'est mieux de concatener plutôt que d'insérer la variable au sein même d'une expression entre guillemet...
Ca doit revenir au même je pense...

Merci tout de même :-)

Kilian, débutant en tâche de fond.....
0
Utilisateur anonyme
 
merci kilian,

j'espère ne pas t'avoir induit en erreur dans mon texte, disons
que la structure de la requête me semblait bonne, il ne pouvait
s'agir que de la syntaxe or je n'arrivait pas a associer les paires
de guillemets ne connaissant pas la syntaxe du PHP, l'info que
tu m'as fournit pour le point .$var. en dit long.

Amicalement
Lupin
0
kilian Messages postés 8732 Date d'inscription   Statut Modérateur Dernière intervention   1 526 > Utilisateur anonyme
 
Pas de soucis, et tout le plaisir est pour moi..

Merci encore :-)

Kilian, débutant en tâche de fond.....
0
ric
 
Bonjour à tous
Sur d'autres forums, j'ai lu plusieurs fois que les concaténations
mysql_query("INSERT INTO " .$table. " (compteur, id_topic ) 
VALUES (".$compteur. ", " .$topic_id.")"); 
demandaient plus de travail à l'interpréteur que la syntaxe suivante
$requete = mysql_query("INSERT INTO $table(compteur, id_topic ) 
VALUES("$compteur ", " $topic_id.)") 
je n'ai jamais fait de test pour le vérifier.
1

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

Posez votre question
ric
 
Bonjour
Pour la 2e requête, il fallait lire
$requete = mysql_query("INSERT INTO $table(compteur, id_topic ) VALUES('$compteur', '$topic_id')")

kilian --> d'accord avec toi pour la différence
1
houdyerpierre Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   1
 
bonsoir,

J'ai un petit souci avec ma requette, j'ai pourtant suivie les informations du net mais rien à faire cela ne marche pas, mon serveur "localhost" me dis qu'il est ready mais bon.
Si quelqu'un sait si ma requette contient une erreure merci de me le dire^^

<?
//connexion à la base
$db = mysql_connect('localhost','houdyerpierre','vii2s8di') or die ('erreur de connexion');
//sélection de la base
mysql_select_db('test',$db);
//J'envoie la requête
$db=mysql_query("select * from caract_avions where (type) = 'CHASSE EMBARQUEE'");
//on ferme la connexion
mysql_close('localhost','houdyerpierre','vii2s8di');
?>

Pour préciser, mon mp: vii2s8di, Username: houdyerpierre, hostname: localhost, port :3306
Dans sql j'ai plusieurs fichiers dans "shemata" mon dossier s'appel test.
Voilà merci d'avance
1
Philippe je sais ou tu te cache !!!
 
j'espère juste que cette personne était en local pour avoir lâché son mp comme ça :O
0
Utilisateur anonyme
 
Bonjour,

Tout d'abord, je dois vous dire que je ne connais pas PHP,
toutefois les string SQL ne me sont pas inconnu.

Dans votre ligne, je détecte deux erreurs possible :

1.) Les derniers guillemets sont flotant, ceux entre les 2 parnthèses qui ferme !

2.) Il y a un espace entre le guillemet et la variable .$topic_id.
alors qu'il n'y en as pas entre le guillemet et la variable .$compteur. -> Est-ce normal, je ne sais pas ?

("INSERT INTO" .$table. "(compteur, id_topic )
VALUES(".$compteur. "," .$topic_id.")");

Lupin
0
kilian Messages postés 8732 Date d'inscription   Statut Modérateur Dernière intervention   1 526
 
Merci pour l'info :-)
C'est bon à savoir, même si je ne pense pas écrire un jour un script assez long pour que la différence se remarque :-)

Kilian, débutant en tâche de fond.....
0