Php erreur de syntax
sirdiablo11
Messages postés
41
Date d'inscription
Statut
Membre
Dernière intervention
-
sirdiablo11 Messages postés 41 Date d'inscription Statut Membre Dernière intervention -
sirdiablo11 Messages postés 41 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
voici mon 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 ') AND (f.y BETWEEN 0 AND ) AND f.atteris=0)' at line 7
le problème devrais être là:
$pose1 = mysql_query ("SELECT j.id_joueur,j.pseudonyme,j.avatar,f.x,f.y,nom,f.sonde,f.defense,f.defbase,f.type,f.evitement,s.xp_classement
FROM flotte AS f
LEFT JOIN joueur AS j
ON f.id_joueur=j.id_joueur
LEFT JOIN stat AS s
ON s.id_joueur=j.id_joueur
WHERE f.id_joueur=".$_SESSION['id_joueur']." OR ((f.x BETWEEN " . $xmin . " AND " . $xmax . ")
AND (f.y BETWEEN " . $ymin . " AND " . $ymax . ") AND f.atteris=0) ") or die(mysql_error());
while ( $pose = mysql_fetch_assoc($pose1) ){
ou
$j = mysql_query ("SELECT point_action FROM joueur WHERE id_joueur=".$_SESSION["id_joueur"]."") or die (mysql_error());
$j = mysql_fetch_assoc ($j);
$f = mysql_query ("SELECT f.id_joueur,f.x,f.y,f.evitement,f.evitbase,f.radar,f.atteris,f.propulseur,j.point_action FROM flotte as f LEFT JOIN joueur as j ON j.id_joueur=f.id_joueur WHERE f.id_joueur=".$_SESSION["id_joueur"]." || ( f.x='".$_GET["x"]."' AND f.y='".$_GET["y"]."') AND f.atteris=0 ")or die (mysql_error());
$f = mysql_fetch_assoc ($f);
J'aimerais bien vôtre aide.
Sirdiablo11
voici mon 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 ') AND (f.y BETWEEN 0 AND ) AND f.atteris=0)' at line 7
le problème devrais être là:
$pose1 = mysql_query ("SELECT j.id_joueur,j.pseudonyme,j.avatar,f.x,f.y,nom,f.sonde,f.defense,f.defbase,f.type,f.evitement,s.xp_classement
FROM flotte AS f
LEFT JOIN joueur AS j
ON f.id_joueur=j.id_joueur
LEFT JOIN stat AS s
ON s.id_joueur=j.id_joueur
WHERE f.id_joueur=".$_SESSION['id_joueur']." OR ((f.x BETWEEN " . $xmin . " AND " . $xmax . ")
AND (f.y BETWEEN " . $ymin . " AND " . $ymax . ") AND f.atteris=0) ") or die(mysql_error());
while ( $pose = mysql_fetch_assoc($pose1) ){
ou
$j = mysql_query ("SELECT point_action FROM joueur WHERE id_joueur=".$_SESSION["id_joueur"]."") or die (mysql_error());
$j = mysql_fetch_assoc ($j);
$f = mysql_query ("SELECT f.id_joueur,f.x,f.y,f.evitement,f.evitbase,f.radar,f.atteris,f.propulseur,j.point_action FROM flotte as f LEFT JOIN joueur as j ON j.id_joueur=f.id_joueur WHERE f.id_joueur=".$_SESSION["id_joueur"]." || ( f.x='".$_GET["x"]."' AND f.y='".$_GET["y"]."') AND f.atteris=0 ")or die (mysql_error());
$f = mysql_fetch_assoc ($f);
J'aimerais bien vôtre aide.
Sirdiablo11
A voir également:
- Php erreur de syntax
- Expert php pinterest - Télécharger - Langages
- Erreur 0x80070643 - Accueil - Windows
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
22 réponses
fais un var_dump( $xmax ) ; juste avant et dis nous ce que ca te dis :)
sirdiablo11
Messages postés
41
Date d'inscription
Statut
Membre
Dernière intervention
9
Je le place de quel manière juste avant le $xmax celui du premier ou je sais pas sinon avant tout le commande ça donne NULL.
Place le juste avant $pose1 = ....
voir dans phpmyadmin c'est bien ça?
donc là:
-- --------------------------------------------------------
--
-- Structure de la table `flotte`
--
CREATE TABLE `flotte` (
`id_joueur` smallint(5) unsigned NOT NULL default '0',
`nom` varchar(150) NOT NULL default '',
`x` tinyint(3) unsigned NOT NULL default '0',
`y` tinyint(3) unsigned NOT NULL default '0',
`atteris` tinyint(1) unsigned NOT NULL default '0',
`attaque` smallint(4) unsigned NOT NULL default '0',
`bombardement` smallint(4) unsigned NOT NULL default '0',
`defense` smallint(4) unsigned NOT NULL default '0',
`evitement` smallint(4) unsigned NOT NULL default '0',
`radar` smallint(4) unsigned NOT NULL default '0',
`attbase` smallint(4) unsigned NOT NULL default '0',
`bombardebase` smallint(5) unsigned NOT NULL default '0',
`defbase` smallint(4) unsigned NOT NULL default '0',
`evitbase` smallint(4) unsigned NOT NULL default '0',
`radarbase` smallint(4) unsigned NOT NULL default '0',
`sonde` smallint(4) unsigned NOT NULL default '0',
`outsider` tinyint(2) unsigned NOT NULL default '0',
`doublelaser` tinyint(1) unsigned NOT NULL default '0',
`reflectron` tinyint(2) unsigned NOT NULL default '0',
`snipeur` tinyint(3) unsigned NOT NULL default '0',
`genesis` tinyint(1) unsigned NOT NULL default '0',
`destructor` tinyint(3) unsigned NOT NULL default '0',
`type` tinyint(3) unsigned NOT NULL default '0',
`propulseur` tinyint(3) unsigned NOT NULL default '1',
KEY `x` (`x`,`y`),
KEY `y` (`y`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 PACK_KEYS=0;
-- --------------------------------------------------------
donc là:
-- --------------------------------------------------------
--
-- Structure de la table `flotte`
--
CREATE TABLE `flotte` (
`id_joueur` smallint(5) unsigned NOT NULL default '0',
`nom` varchar(150) NOT NULL default '',
`x` tinyint(3) unsigned NOT NULL default '0',
`y` tinyint(3) unsigned NOT NULL default '0',
`atteris` tinyint(1) unsigned NOT NULL default '0',
`attaque` smallint(4) unsigned NOT NULL default '0',
`bombardement` smallint(4) unsigned NOT NULL default '0',
`defense` smallint(4) unsigned NOT NULL default '0',
`evitement` smallint(4) unsigned NOT NULL default '0',
`radar` smallint(4) unsigned NOT NULL default '0',
`attbase` smallint(4) unsigned NOT NULL default '0',
`bombardebase` smallint(5) unsigned NOT NULL default '0',
`defbase` smallint(4) unsigned NOT NULL default '0',
`evitbase` smallint(4) unsigned NOT NULL default '0',
`radarbase` smallint(4) unsigned NOT NULL default '0',
`sonde` smallint(4) unsigned NOT NULL default '0',
`outsider` tinyint(2) unsigned NOT NULL default '0',
`doublelaser` tinyint(1) unsigned NOT NULL default '0',
`reflectron` tinyint(2) unsigned NOT NULL default '0',
`snipeur` tinyint(3) unsigned NOT NULL default '0',
`genesis` tinyint(1) unsigned NOT NULL default '0',
`destructor` tinyint(3) unsigned NOT NULL default '0',
`type` tinyint(3) unsigned NOT NULL default '0',
`propulseur` tinyint(3) unsigned NOT NULL default '1',
KEY `x` (`x`,`y`),
KEY `y` (`y`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 PACK_KEYS=0;
-- --------------------------------------------------------
c'est bien ça:
$a = mysql_query ("SELECT x,y,ecartplanete FROM admin") or die (mysql_error());
$a = mysql_fetch_assoc($a);
//Calcul des valeurs max et min de x et y (selon la portée radar)
$xmax = min($fj["x"] + $fj["radar"],$a["x"]);
$xmin = max($fj["x"] - $fj["radar"],0);
$ymax = min($fj["y"] + $fj["radar"],$a["y"]);
$ymin = max($fj["y"] - $fj["radar"],0);
$a = mysql_query ("SELECT x,y,ecartplanete FROM admin") or die (mysql_error());
$a = mysql_fetch_assoc($a);
//Calcul des valeurs max et min de x et y (selon la portée radar)
$xmax = min($fj["x"] + $fj["radar"],$a["x"]);
$xmin = max($fj["x"] - $fj["radar"],0);
$ymax = min($fj["y"] + $fj["radar"],$a["y"]);
$ymin = max($fj["y"] - $fj["radar"],0);
AND (f.y BETWEEN 0 AND ) AND f.atteris=0)
tu as un AND et une parenthèse qui se ferme juste après. BETWEEN 0 AND ? )
En gros, vérifie que ymax et xmax sont bien des entiers.
Bonjour,
Je vois deux erreurs potentielles :
1. $fj n'est pas initialisée : j'intuite que c'est le résultat de ta requête
2. radar ne fait pas partie du select et ne se retrouvera donc pas dans $fj['radar'] : ajoutons)le
On arrive au code suivant :
Je vois deux erreurs potentielles :
1. $fj n'est pas initialisée : j'intuite que c'est le résultat de ta requête
2. radar ne fait pas partie du select et ne se retrouvera donc pas dans $fj['radar'] : ajoutons)le
On arrive au code suivant :
$a = mysql_query ("SELECT x,y,ecartplanete,radar FROM admin") or die (mysql_error()); // ajout de radar $fj = mysql_fetch_assoc($a); // $fj = au lieu de $a = //Calcul des valeurs max et min de x et y (selon la portée radar) $xmax = min($fj["x"] + $fj["radar"],$a["x"]); $xmin = max($fj["x"] - $fj["radar"],0); $ymax = min($fj["y"] + $fj["radar"],$a["y"]); $ymin = max($fj["y"] - $fj["radar"],0);
Champ 'radar' inconnu dans field list
Je vais devoir chercher un peu.
---> la peux être? un indice?
<?php
if ( round($fj["radar"]/$fj["radarbase"]*100) < 100 ){
echo "<div align=\"center\"><font color=\"red\">Warning ==> Radar fontionnel à ".(round($fj["radar"]/$fj["radarbase"]*100))." % <== Warning</font></div>";
Je vais devoir chercher un peu.
---> la peux être? un indice?
<?php
if ( round($fj["radar"]/$fj["radarbase"]*100) < 100 ){
echo "<div align=\"center\"><font color=\"red\">Warning ==> Radar fontionnel à ".(round($fj["radar"]/$fj["radarbase"]*100))." % <== Warning</font></div>";
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
on touche plus à rien j'ai juste changé le a à fj...
$a = mysql_query ("SELECT x,y,ecartplanete FROM admin") or die (mysql_error());
$fj = mysql_fetch_assoc($a);
//Calcul des valeurs max et min de x et y (selon la portée radar)
$xmax = min($fj["x"] + $fj["radar"],$a["x"]);
$xmin = max($fj["x"] - $fj["radar"],0);
$ymax = min($fj["y"] + $fj["radar"],$a["y"]);
$ymin = max($fj["y"] - $fj["radar"],0);
Je vais quand même ajouté le commentaire.
Merci.
$a = mysql_query ("SELECT x,y,ecartplanete FROM admin") or die (mysql_error());
$fj = mysql_fetch_assoc($a);
//Calcul des valeurs max et min de x et y (selon la portée radar)
$xmax = min($fj["x"] + $fj["radar"],$a["x"]);
$xmin = max($fj["x"] - $fj["radar"],0);
$ymax = min($fj["y"] + $fj["radar"],$a["y"]);
$ymin = max($fj["y"] - $fj["radar"],0);
Je vais quand même ajouté le commentaire.
Merci.
Il te manque toujours $fj[ "radar" ] : si tu ne l'ajoutes pas dans le SELECT il n'y a aucune chance qu'il existe dans le tableau $fj.
Encore un petit effort.
Encore un petit effort.
J'ai ça:
Champ Type Interclassement Attributs Null Défaut Extra Action
maintenance tinyint(3) UNSIGNED Non 0 Affiche les valeurs distinctes Modifier Supprimer Primaire Unique Index Texte entier
x tinyint(3) UNSIGNED Non 0 Affiche les valeurs distinctes Modifier Supprimer Primaire Unique Index Texte entier
y tinyint(3) UNSIGNED Non 0 Affiche les valeurs distinctes Modifier Supprimer Primaire Unique Index Texte entier
ecartplanete tinyint(3) UNSIGNED Non 0 Affiche les valeurs distinctes Modifier Supprimer Primaire Unique Index Texte entier
Il manque le radar.
--
-- Structure de la table `admin`
--
CREATE TABLE `admin` (
`maintenance` tinyint(3) unsigned NOT NULL default '0',
`x` tinyint(3) unsigned NOT NULL default '0',
`y` tinyint(3) unsigned NOT NULL default '0',
`ecartplanete` tinyint(3) unsigned NOT NULL default '0'
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Champ Type Interclassement Attributs Null Défaut Extra Action
maintenance tinyint(3) UNSIGNED Non 0 Affiche les valeurs distinctes Modifier Supprimer Primaire Unique Index Texte entier
x tinyint(3) UNSIGNED Non 0 Affiche les valeurs distinctes Modifier Supprimer Primaire Unique Index Texte entier
y tinyint(3) UNSIGNED Non 0 Affiche les valeurs distinctes Modifier Supprimer Primaire Unique Index Texte entier
ecartplanete tinyint(3) UNSIGNED Non 0 Affiche les valeurs distinctes Modifier Supprimer Primaire Unique Index Texte entier
Il manque le radar.
--
-- Structure de la table `admin`
--
CREATE TABLE `admin` (
`maintenance` tinyint(3) unsigned NOT NULL default '0',
`x` tinyint(3) unsigned NOT NULL default '0',
`y` tinyint(3) unsigned NOT NULL default '0',
`ecartplanete` tinyint(3) unsigned NOT NULL default '0'
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Tu dois donc trouver où est "radar" et comprendre que je ne peux pas le faire car je ne connais pas ton application.
Maintenant il fait plus le message d'erreur mais je peux pas grandir la carte pas encore ça reste à 0.
Tu ne nous as pas dit ce que tu faisais des $xmin, $xmax, ... ni comment tu as programmé l'agrandissement de la carte
J'avais oublié c'est là:
<?php
$a = mysql_query ("SELECT x,y FROM admin") or die(mysql_error());
$a = mysql_fetch_assoc($a);
?>
<form name="form1" method="post" action="index.php?page=carte&prog=carte"><table align="center" width="300" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="image/espace.gif" width="150" height="1"></td>
<td><img src="image/espace.gif" width="150" height="1"></td>
</tr>
<tr>
<td colspan="2" class="marron_noir">La taille de la carte</td>
</tr>
<tr>
<td colspan="2" class="cadre">
<span style="position:relative;left:-40px;">X </span>
<span style="position:relative;left:40px;">Y</span>
<br>
<span style="position:relative;left:-25px;"><input type="text" name="x" size="3" value="<?=$a["x"]?>"></span>
<span style="position:relative;left:25px;"><input type="text" name="y" size="3" value="<?=$a["y"]?>"></span>
<br><br>
<input type="submit" name="Submit" value="Envoyer"> </td>
</tr>
</table>
</form>
<?php
$a = mysql_query ("SELECT x,y FROM admin") or die(mysql_error());
$a = mysql_fetch_assoc($a);
?>
<form name="form1" method="post" action="index.php?page=carte&prog=carte"><table align="center" width="300" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="image/espace.gif" width="150" height="1"></td>
<td><img src="image/espace.gif" width="150" height="1"></td>
</tr>
<tr>
<td colspan="2" class="marron_noir">La taille de la carte</td>
</tr>
<tr>
<td colspan="2" class="cadre">
<span style="position:relative;left:-40px;">X </span>
<span style="position:relative;left:40px;">Y</span>
<br>
<span style="position:relative;left:-25px;"><input type="text" name="x" size="3" value="<?=$a["x"]?>"></span>
<span style="position:relative;left:25px;"><input type="text" name="y" size="3" value="<?=$a["y"]?>"></span>
<br><br>
<input type="submit" name="Submit" value="Envoyer"> </td>
</tr>
</table>
</form>
le message apparait bien mais pas pour agrandir la carte:
<?php
if ( isset($_POST["x"]) && isset($_POST["y"]) && is_numeric($_POST["x"]) && is_numeric($_POST["y"]) ){
mysql_query("UPDATE admin SET x=".$_POST["x"].",y=".$_POST["y"]."") or die(mysql_error());
$message = "Bonjour,<br><br>Suite à l'agrandissement du nombre de joueur, je décide d'agrandir votre univers.<br>Vous pouvez désormais voyager jusqu'en X : ".$_POST["x"]." et Y : ".$_POST["y"];
mysql_query("INSERT INTO instantane SET id_joueur=0,message='$message',heure=".(time())."") or die(mysql_error());
echo "<div class=\"mess\">Modification effectuée</div>";
}
?>
<?php
if ( isset($_POST["x"]) && isset($_POST["y"]) && is_numeric($_POST["x"]) && is_numeric($_POST["y"]) ){
mysql_query("UPDATE admin SET x=".$_POST["x"].",y=".$_POST["y"]."") or die(mysql_error());
$message = "Bonjour,<br><br>Suite à l'agrandissement du nombre de joueur, je décide d'agrandir votre univers.<br>Vous pouvez désormais voyager jusqu'en X : ".$_POST["x"]." et Y : ".$_POST["y"];
mysql_query("INSERT INTO instantane SET id_joueur=0,message='$message',heure=".(time())."") or die(mysql_error());
echo "<div class=\"mess\">Modification effectuée</div>";
}
?>
Tu dis "le message apparait bien" mais tu ne précises pas quel message.
Par ailleurs, l'extrait de code que tu nous donnes contient :
- une erreur de syntaxe PHP (examine bien le second mysql_query
- une erreur de syntaxe PHP (la requête du second mysql_query)
Analyse et trouve ces deux erreurs et donne-nous le message
Par ailleurs, l'extrait de code que tu nous donnes contient :
- une erreur de syntaxe PHP (examine bien le second mysql_query
- une erreur de syntaxe PHP (la requête du second mysql_query)
Analyse et trouve ces deux erreurs et donne-nous le message
pas un message d'erreur mais un message normal pour dire qu'il a été agrandit...
Je vais regarder.
Si je met le echo la :
$message = "Bonjour,<br><br>Suite à l'agrandissement du nombre de joueur, je décide d'agrandir votre univers.<br>Vous pouvez désormais voyager jusqu'en X : ".$_POST["x"]." et Y : ".$_POST["y"];
Il donne le message normal correct.
un autre echo pas de message d'erreur non plus :
mysql_query("UPDATE admin SET x=".$_POST["x"].",y=".$_POST["y"]."") or die(mysql_error());
Je vais regarder.
Si je met le echo la :
$message = "Bonjour,<br><br>Suite à l'agrandissement du nombre de joueur, je décide d'agrandir votre univers.<br>Vous pouvez désormais voyager jusqu'en X : ".$_POST["x"]." et Y : ".$_POST["y"];
Il donne le message normal correct.
un autre echo pas de message d'erreur non plus :
mysql_query("UPDATE admin SET x=".$_POST["x"].",y=".$_POST["y"]."") or die(mysql_error());
comment mettre la valeur qui manque:
// Tableau Tflotte pour afficher la carte
$pose1 = mysql_query ("SELECT j.id_joueur,j.pseudonyme,j.avatar,f.x,f.y,nom,f.sonde,f.defense,f.defbase,f.type,f.evitement,s.xp_classement
FROM flotte AS f
LEFT JOIN joueur AS j
ON f.id_joueur=j.id_joueur
LEFT JOIN stat AS s
ON s.id_joueur=j.id_joueur
WHERE f.id_joueur=".$_SESSION['id_joueur']." OR ((f.x BETWEEN " . $xmin . " AND " . $xmax . ")
AND (f.y BETWEEN " . $ymin . " AND " . $ymax . ") AND f.atteris=0) ") or die(mysql_error());
Le message d'erreur qu'il fait pour afficher la carte manuellement:
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 ') AND (f.y BETWEEN 15 AND ) AND f.atteris=0)' at line 7
ici
// Tableau Tflotte pour afficher la carte
$pose1 = mysql_query ("SELECT j.id_joueur,j.pseudonyme,j.avatar,f.x,f.y,nom,f.sonde,f.defense,f.defbase,f.type,f.evitement,s.xp_classement
FROM flotte AS f
LEFT JOIN joueur AS j
ON f.id_joueur=j.id_joueur
LEFT JOIN stat AS s
ON s.id_joueur=j.id_joueur
WHERE f.id_joueur=".$_SESSION['id_joueur']." OR ((f.x BETWEEN " . $xmin . " AND " . $xmax . ")
AND (f.y BETWEEN " . $ymin . " AND " . $ymax . ") AND f.atteris=0) ") or die(mysql_error());
Le message d'erreur qu'il fait pour afficher la carte manuellement:
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 ') AND (f.y BETWEEN 15 AND ) AND f.atteris=0)' at line 7
ici
je vois une erreur par là:
WHERE f.id_joueur=".$_SESSION['id_joueur']." OR ((f.x BETWEEN " . $xmin . " AND " . $xmax . ")
AND (f.y BETWEEN " . $ymin . " AND " . $ymax . ") AND f.atteris=0) ") or die(mysql_error());
il faut mettre ='.........' pour les conditions
WHERE f.id_joueur=".$_SESSION['id_joueur']." OR ((f.x BETWEEN " . $xmin . " AND " . $xmax . ")
AND (f.y BETWEEN " . $ymin . " AND " . $ymax . ") AND f.atteris=0) ") or die(mysql_error());
il faut mettre ='.........' pour les conditions
WHERE f.id_joueur='".$_SESSION['id_joueur']."' OR ((f.x BETWEEN '" . $xmin . "' AND '" . $xmax . "') AND (f.y BETWEEN '" . $ymin . "' AND '" . $ymax . "') AND f.atteris='0') ") or die(mysql_error());