Erreur

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

Re: Erreur

par moogli » 18 oct. 2012, 20:24

@moogli: Ah ouai tiens? Bah me coucherai moins bête! lol :mrgreen:
Merci!
Par contre, je savais pas qu'on pouvait mettre deux SELECT dans une requête... Vais relire la doc, ca m'apprendra!

tu peux mettre en mettre plus que ça, cela s'appel sous requete.

Sauf que cela ne dispense pas de respecter la syntaxe SQL ce qui n'est pas le cas ici :)


@+

Re: Erreur

par asf21 » 18 oct. 2012, 20:20

@moogli: Ah ouai tiens? Bah me coucherai moins bête! lol :mrgreen:
Merci!
Par contre, je savais pas qu'on pouvait mettre deux SELECT dans une requête... Vais relire la doc, ca m'apprendra!

Re: Erreur

par moogli » 18 oct. 2012, 19:55

salut


ta requete SQL est foireuse, mysql_query retourne false, mysql_fetch_assoc crit.

il fait que tu code un poil plus proprement pour gérer correctement les erreurs. Y'a plus de lignes mais au moins tu sais d’où ça vient :)

vu que tu semble "aimer" la POO tu devrait t'orienter vers PDO plutot que d'utiliser l'extension mysql qui est dépréciée et vouée à disparaitre (ou utiliser mysqli au minimum ;) )

ton code peux être corrigé ainsi
<?php
public function getMostDropWheat() {
	$sql = 'SELECT  uuid  name, SELECT  description  name2, COUNT( num_pickedup ) as nombre
				FROM pickdropview
				WHERE  num_pickedup  IS NOT NULL
					AND  num_dropped  IS NULL
					AND  description  == \'Wheat\'
				GROUP BY  uuid 
				ORDER BY count DESC';
	$ret = mysql_query($sql);
	if($ret === false) {
		throw new Exception('Erreur SQL : '.mysql_error()."\n".'Avec la requete : '.$sql;
	}
	$row = mysql_fetch_assoc($ret);
	return $row;
}
Si tu l’exécute et récupère l'exception qui va être levée tu verra que ta requete SQL n'est pas syntaxiquement correct !
d'ailleurs count étant un mot clef SQL il est préférable de ne pas l'utiliser même en tant qu'alias

@asf21 : as n'est pas obligatoire, mais tu as raison la requête est foireuse ;)

@+

Re: Erreur

par asf21 » 18 oct. 2012, 19:47

SELECT `uuid` name, SELECT `description` name2, COUNT(`num_pickedup`) count
C'est mieux si tu mets
SELECT name.uuid, name2.description, COUNT(num_pickedup) as count
si je me trompe pas...

Erreur

par jycs » 18 oct. 2012, 16:33

Salut,

J'ai une erreur sur ce code :
    public function getMostDropWheat() {
        $row = mysql_fetch_assoc(mysql_query('SELECT `uuid` name, SELECT `description` name2, COUNT(`num_pickedup`) count
                                                FROM pickdropview
                                                WHERE `num_pickedup` IS NOT NULL
                                                    AND `num_dropped` IS NULL
                                                    AND `description` == "Wheat"
                                                GROUP BY `uuid`
                                                ORDER BY count DESC'));
        return $row;
    }
<?php
            $ar = $serverObj->getMostDropWheat();
            $player = $serverObj->getPlayer($ar['name']);
            if ($player) { 
            	        echo(STRING_ALL_DISTANCER); 
            	?>: 
                        <a class="fort" href="?view=player&uuid=<?php echo($player->getUUID()); ?>"><?php echo($player->getName()); ?></a>
            <?php 
            	        echo $ar['count'];
            	    ?>
            <?php } else echo(STRING_ALL_NONE); ?>
Qui me retourne :
WARNING: MYSQL_FETCH_ASSOC() EXPECTS PARAMETER 1 TO BE RESOURCE, BOOLEAN GIVEN IN C:\EASYPHP\WWW\STATISTICIAN\STATISTICIAN\_SERVEROBJ.PHP ON LINE 435


J'ai essayé de tourner le 1er code dans tous les sens, mais je trouve pas...