rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut :

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

kilian, le mercredi 4 août 2004 à 21:59:01
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.....
Répondre à kilian  Signaler ce message aux modérateurs Aller au dernier message

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Lupin.Arsene, le mercredi 4 août 2004 à 22:12:08
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
Répondre à Lupin.Arsene

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ric, le mercredi 4 août 2004 à 22:13:12
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.
Répondre à ric

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
dedale82, le mercredi 4 août 2004 à 22:13:51
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
Répondre à dedale82

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
kilian, le mercredi 4 août 2004 à 22:28:33
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.....
Répondre à kilian

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
dedale82, le mercredi 4 août 2004 à 22:52:07
je sais, c'etait plus par habitude, le but etait de ne pas concatener.
Répondre à dedale82

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
kilian, le jeudi 5 août 2004 à 00:00:07
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.....
Répondre à kilian


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Lupin.Arsene, le mercredi 4 août 2004 à 23:49: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
Répondre à Lupin.Arsene

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
kilian, le jeudi 5 août 2004 à 00:02:46
Pas de soucis, et tout le plaisir est pour moi..

Merci encore :-)

Kilian, débutant en tâche de fond.....
Répondre à kilian

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ric, le jeudi 5 août 2004 à 08:55:51
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.
Répondre à ric

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
kilian, le samedi 7 août 2004 à 02:27:55
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.....
Répondre à kilian

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ric, le samedi 7 août 2004 à 09:14:42
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
Répondre à ric

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 houdyerpierre, le samedi 1 mars 2008 à 17:43:55
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
Répondre à houdyerpierre
Logiciels pertinents trouvés dans les téléchargements
Télécharger WAMP Server 2.0cWAMP Server - WAMP5 (WAMP signifiant Windows Apache Mysql PHP) est une plateforme de développement Web sous Windows. Il vous permet de...Catégorie: Serveurs
Licence: Freeware/gratuit
Télécharger MySQL 5.0.67MySQL - MySQL est une des systèmes de gestion de bases de données le plus répandu au monde. Catégorie: Bases de données
Licence: Open Source
Télécharger easyPHP 2.0b1easyPHP - EasyPHP est un environnement de travail packagé comprenant le serveur web Apache, le système de gestion de bases de données...Catégorie: Serveurs
Licence: Open Source
Télécharger PHP Edit 0.6PHP Edit - PHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de...Catégorie: PHP
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « [Php / Mysql] Requête sql ne marche pas »