Problème de syntaxe

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème de syntaxe

par ma_pomme » 28 nov. 2008, 17:56

c'est bon c'est passé je m'acharmais sur cette pauvre requete qui n'y etais pour rien lol juste un espace qui manquait et la variable et le where :? merci encore ^^

par jojolapine » 28 nov. 2008, 17:34

Es-tu sur que celà vient de la première requête, et pas de la dernière?
Change ton code pour toutes tes requêtes en
$sql='...';
mysql_query($sql) or die('Erreur avec la requête:'.$sql.'<br />'.mysql_error());
et reposte le résultat

par ma_pomme » 28 nov. 2008, 17:30

if (isset($_POST['page']))
{ $file=$_POST['page'];

$mission_t=$_POST['type_mission'];
$pays=$_POST['id_pays'];
$result=explode('Mission ', $file);
$i=1;

while($i<count($result))
{
$result[$i]=str_replace('Nombre', '', $result[$i]);
$mission=explode(' ', $result[$i]);
$mission[11]=str_replace(',','', $mission[11]);
$mission[0] = trim($mission[0]);
$query="SELECT numeros FROM mission WHERE numeros=".$mission[0];
echo $query.'<br />';
$mysql_result=mysql_query($query)
                or die(mysql_error());
if(!$mysql_result)
{
mysql_query("INSERT INTO mission VALUES ('','$mission[0]','$mission[4]','$mission[11]','$mission[16]','mission[19]','$mission[53]','$mission[55]','$pays','$mission_t')")
                or die(mysql_error());
}else{
mysql_query('UPDATE mission set pax=' . $mission[4].', contrat='.$mission[11].', pilote='.$mission[53].', hotesse='.$mission[55].'WHERE numeros='.$mission[0])
                or die(mysql_error());
}

$i=$i+2;

}
Le voila en entier. J'ai essayé comme tu as dit mais rien a faire :?

par jojolapine » 28 nov. 2008, 17:20

Là franchment je vois pas...
Fait nous voir le code php en entier... :?
et éventuellement essaye de séparer les variables comme ceci:
$sql="SELECT numeros FROM mission WHERE numeros=".$mission[0];

par ma_pomme » 28 nov. 2008, 17:07

Et trim() c'est pour les poules?
Sinon fait un echo de ta variable contenant la requête sql dans ton code, qu'on voit si y a pas des différences...
je ne connaissais pas trim() j'ai encore beaucoup de lacune. Sinon c'est déjà un echo de ma requête. Voici la requête de mon code

Code : Tout sélectionner

SELECT numeros FROM mission WHERE numeros=$mission[0]"
et son echo

Code : Tout sélectionner

SELECT numeros FROM mission WHERE numeros=548

par jojolapine » 28 nov. 2008, 16:55

les quotes sont là pour marqué l'espace que je ne peu réduire car la valeur est extraite d'une chaine via explode()
C'est pour ça que je parle de trim()!

par dunbar » 28 nov. 2008, 16:52

trim() te permet supprimé les caractères invisibles :wink:

par jojolapine » 28 nov. 2008, 16:48

Et trim() c'est pour les poules?
Sinon fait un echo de ta variable contenant la requête sql dans ton code, qu'on voit si y a pas des différences...

par ma_pomme » 28 nov. 2008, 16:38

les quotes sont là pour marqué l'espace que je ne peu réduire car la valeur est extraite d'une chaine via explode(). Mais avec ou sans cette espace ou quote, phpmyadmin me retourne quand même ma réponse enfin il ne me donne pas d'erreur de syntaxe. c'est pour ça que je ne comprend pas d'ou cela peu venir

par jojolapine » 28 nov. 2008, 16:26

Déjà pourquoi mettre des quotes autour de ta valeur?
Si le champ est de type numérique, tu n'en a pas besoin...
Ensuite je vois un espace de trop après la valeur...

par dunbar » 28 nov. 2008, 16:26

Et sans l'espace ici :
// Actuel
SELECT numeros FROM mission WHERE numeros='548 '
//proposition de correction

SELECT numeros FROM mission WHERE numeros = '548'
:?:

Problème de syntaxe

par ma_pomme » 28 nov. 2008, 15:50

Bonjour, bonsoir,

serveur mysql version 4.0

structure de ma table

Code : Tout sélectionner

CREATE TABLE `mission` ( `id_mission` int(11) NOT NULL auto_increment, `numeros` int(11) NOT NULL default '0', `pax` int(11) NOT NULL default '0', `contrat` bigint(20) NOT NULL default '0', `ville` varchar(20) NOT NULL default '', `km` int(11) NOT NULL default '0', `pilote` int(11) NOT NULL default '0', `hotesse` int(11) NOT NULL default '0', `pays` varchar(40) NOT NULL default '', `type_mission` varchar(40) NOT NULL default '', KEY `id_mission` (`id_mission`) ) TYPE=MyISAM AUTO_INCREMENT=1 ;

Voila j'ai un souci avec la syntaxe de ma requête que voici

Code : Tout sélectionner

SELECT numeros FROM mission WHERE numeros='548 '
sql me retourne cette erreur
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'numeros=548' at line 1
alors que phpmyadmin me retourne un résultat avec la même requête

Pourriez-vous m'aiguiller sur la bonne voie car je tourne en rond depuis plusieur heure la dessus :s