Page 1 sur 2

pb requète avec like

Posté : 26 févr. 2007, 23:03
par YVES
bonsoir,

j'ai un petit soucis avec la requète suivante au niveau du "LIKE"...
//Là, on va chercher la ressource de la case sur la map qui correspond au X/Y de ton perso
//$rsb = mysql_query("SELECT ressource FROM map LIKE '%outi%' WHERE posx=".$rsa['posx']." AND posy=".$rsa['posy']"") or die(mysql_error());
$rsb = "SELECT ressource FROM map LIKE '%outi%' WHERE posx='.$rsa['posx'].' AND posy='.$rsa['posy']'" or die(mysql_error());

$data = mysql_fetch_assoc($rsb);
$ressource= $data['ressource'];
//Là, on va chercher l'emplacement qui peut accueillir ladite ressource
$sql= "SELECT outil  FROM membres WHERE id = ". $id;
        $res=mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
etc ....................................
 
en table, le "outi" (du LIKE) est sous cette forme:
chemin de l'image= ./outil/marteau.gif( par exemple)

Posté : 26 févr. 2007, 23:07
par thehawk
quel est l'erreur afficher ?

Posté : 26 févr. 2007, 23:31
par Truc
Un LIKE sur une table ?

Posté : 26 févr. 2007, 23:52
par guillaume40
Je pense que ça vient de l'ordre essaye ça
//Là, on va chercher la ressource de la case sur la map qui correspond au X/Y de ton perso
//$rsb = mysql_query("SELECT ressource FROM map WHERE posx=".$rsa['posx']." AND posy=".$rsa['posy']" LIKE '%outi%'") or die(mysql_error());
$rsb = "SELECT ressource FROM map LIKE '%outi%' WHERE posx='.$rsa['posx'].' AND posy='.$rsa['posy']'" or die(mysql_error());

$data = mysql_fetch_assoc($rsb);
$ressource= $data['ressource'];
//Là, on va chercher l'emplacement qui peut accueillir ladite ressource
$sql= "SELECT outil  FROM membres WHERE id = ". $id;
        $res=mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
etc ....................................

Posté : 26 févr. 2007, 23:57
par albat
Quelqu'un a lu la remarque de Truc ? :roll:

Non, parce que... on sait jamais... des fois qu'il indiquerait où se trouve l'erreur... :-*

Posté : 27 févr. 2007, 00:06
par zeus
Aller, je vais vous donner LE indice qu'il faut :

regarder l'ordre de cette partie :
FROM map LIKE '%outi%' WHERE 

Posté : 27 févr. 2007, 00:31
par thehawk
j'ai tellement la tete dans mes upload que j'ai meme pas vu ...
i'm sorry

Il faut simplement mettre le LIKE apres le WHERE
SELECT ressource FROM map WHERE posx='.$rsa['posx'].' AND posy='.$rsa['posy']'  LIKE '%outi%'" or die(mysql_error());

Posté : 27 févr. 2007, 00:35
par zeus
j'ai tellement la tete dans mes upload que j'ai meme pas vu ...
i'm sorry

Il faut simplement mettre le LIKE apres le WHERE
SELECT ressource FROM map WHERE posx='.$rsa['posx'].' AND posy='.$rsa['posy']'  LIKE '%outi%'" or die(mysql_error());
Je suis désolé thehawk, mais un

Code : Tout sélectionner

like '%outi%"
tout seul dans un where, ça n'a aucun sens :?

Il faut un nom de colonne avant ;)

Posté : 27 févr. 2007, 00:42
par thehawk
je dsl j'ai du mal a garder les yeux ouvert ...
SELECT * FROM article WHERE posx LIKE '%".$rsa['posx']."%' AND posy LIKE '%".$rsa['posy']."%');
il faute juste revoir les guillemet de mon code car j'ai un doute ...

Posté : 27 févr. 2007, 11:50
par Truc
je dsl j'ai du mal a garder les yeux ouvert ...
:lol:
Stresse pas... c'est pas un examen :wink:

Dans cete dernière version tu as changé la requête de départ et supprimé cette fameuse condition avec le LIKE.

Posté : 27 févr. 2007, 12:46
par thehawk
Oups j'ai repris un code que j'avais deja programé .... je suis dsl et ouf je sais bien que je ne suis pas en exam mais j aime pas faire des erreur d'inatention mais apparamant il ne faut pas trop en demander passer une certaine erreur ....
SELECT ressource FROM map WHERE posx LIKE '%".$rsa['posx']."%' AND posy LIKE '%".$rsa['posy']."%');
La c'est mieux ? et YVES on te voit pas beaucoup ...

Posté : 27 févr. 2007, 13:00
par Ryle
C'est mieux sur la syntaxe, mais pas grand chose à voir avec la requête de départ ;) on peut supposer que les posx et posy sont des coordonnées donc ont des valeurs fixes et ne nécessitent pas des chaines approximatives...
"SELECT ressource FROM map 
WHERE posx=".$rsa['posx']."
AND posy=".$rsa['posy']."
AND champCheminImage LIKE '%outi%' "
Le mieux étant effectivement d'attendre un retour de Yves :)

Posté : 27 févr. 2007, 22:31
par YVES
Me revoilà :shock:
sacré débat, en fait, je pense que la soluce de Ryle semble la plus appropriée
à mon sujet
heu, "champCheminImage" dans la table c'est "ressource"......, donc j'ai zappé ce paramètre ainsi:
"SELECT ressource FROM map 
WHERE posx=".$rsa['posx']."
AND posy=".$rsa['posy']."
LIKE '%outi%' "
resultat= page blanche.

Posté : 27 févr. 2007, 22:39
par YVES
voici le code complet :?
<?php
  session_start();
$id = $_SESSION['id'];
include 'connexion.php';
//on va chercher la position du joueur
$requete = mysql_query("SELECT posx, posy FROM membres WHERE id = ". $id .";") or die(mysql_error());
$rsa= mysql_fetch_assoc($requete);
$posx = $rsa['posx'];
$posy = $rsa['posy'];
//Là, on va chercher la ressource de la case sur la map qui correspond au X/Y de ton perso
$rsb = "SELECT ressource FROM map WHERE posx=".$rsa['posx']."AND posy=".$rsa['posy']." LIKE '%outi%' "
$data = mysql_fetch_assoc($rsb);
$ressource= $data['ressource'];
//Là, on va chercher l'emplacement qui peut accueillir ladite ressource
$sql= "SELECT outil  FROM membres WHERE id = ". $id;
        $res=mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
        $data = mysql_fetch_object($res);
//        $data = $row->outil;
        if (($data== './objet/rien.gif')){
$sql ="UPDATE membres SET outil= '$ressource', action='images/jetonrouge.gif',
exp=exp+0.1, hab=hab+0.1, uoutil=uoutil+0.1 WHERE id = ". $id;
mysql_query($sql) or die('Erreur SQL '.$sql.'<br>'.mysql_error());
if($res)
{
           $_SESSION['outil']=$ressource;
           $_SESSION['action']='images/jetonrouge.gif';
           $_SESSION['exp']=$_SESSION['exp']+0.1;
           $_SESSION['hab']=$_SESSION['hab']+0.1;
           $_SESSION['uoutil']= $_SESSION['uoutil']+0.1;
}
else
{
echo'PAS LE BON TRUC MAIS A POURSUIVRE'; 
}
}
mysql_close();
?>


Posté : 27 févr. 2007, 23:05
par jojolapine
Je suis désolé thehawk, mais un
Code:
like '%outi%"
tout seul dans un where, ça n'a aucun sens Confused
décidément zeus parle dans le vent ce soir :-*