pb requète avec like

Eléphant du PHP | 250 Messages

26 févr. 2007, 23:03

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)

Mammouth du PHP | 991 Messages

26 févr. 2007, 23:07

quel est l'erreur afficher ?
DevOps, Symfony4, Hoa

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

26 févr. 2007, 23:31

Un LIKE sur une table ?

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 68 Messages

26 févr. 2007, 23:52

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 ....................................

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

26 févr. 2007, 23:57

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... :-*

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

27 févr. 2007, 00:06

Aller, je vais vous donner LE indice qu'il faut :

regarder l'ordre de cette partie :
FROM map LIKE '%outi%' WHERE 
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 991 Messages

27 févr. 2007, 00:31

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());
DevOps, Symfony4, Hoa

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

27 févr. 2007, 00:35

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 ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 991 Messages

27 févr. 2007, 00:42

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 ...
DevOps, Symfony4, Hoa

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

27 févr. 2007, 11:50

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.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 991 Messages

27 févr. 2007, 12:46

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 ...
DevOps, Symfony4, Hoa

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

27 févr. 2007, 13:00

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 :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 250 Messages

27 févr. 2007, 22:31

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.

Eléphant du PHP | 250 Messages

27 févr. 2007, 22:39

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();
?>


ViPHP
ViPHP | 3607 Messages

27 févr. 2007, 23:05

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 :-*