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

Fermé
kilian Messages postés 8732 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 5 février 2025 - 4 août 2004 à 21:59
 Philippe je sais ou tu te cache !!! - 26 juin 2012 à 15:43
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

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 jeudi 15 avril 2004 Statut Membre Dernière intervention 28 octobre 2008 282
4 août 2004 à 22:13
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 vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 5 février 2025 1 526
4 août 2004 à 22:28
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 jeudi 15 avril 2004 Statut Membre Dernière intervention 28 octobre 2008 282
4 août 2004 à 22:52
je sais, c'etait plus par habitude, le but etait de ne pas concatener.
0
kilian Messages postés 8732 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 5 février 2025 1 526 > dedale82 Messages postés 403 Date d'inscription jeudi 15 avril 2004 Statut Membre Dernière intervention 28 octobre 2008
5 août 2004 à 00:00
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
4 août 2004 à 23:49
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 vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 5 février 2025 1 526 > Utilisateur anonyme
5 août 2004 à 00:02
Pas de soucis, et tout le plaisir est pour moi..

Merci encore :-)

Kilian, débutant en tâche de fond.....
0
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
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 samedi 1 mars 2008 Statut Membre Dernière intervention 2 mars 2008 1
1 mars 2008 à 17:43
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
j'espère juste que cette personne était en local pour avoir lâché son mp comme ça :O
0
Utilisateur anonyme
4 août 2004 à 22:12
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 vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 5 février 2025 1 526
7 août 2004 à 02:27
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

Discussions similaires