Calculs sur requête ?

Eléphant du PHP | 79 Messages

23 oct. 2012, 02:41

Bonsoir,

Voici par exemple une table :


public function getMostFruits() {
                        $res = mysql_query('SELECT `noms` AS name, SUM(`fruits`) AS sum_fruits
                                                FROM table1
                                                WHERE `fruits` IN (1,2,3)
                                                AND sum_fruits != -1
                                                GROUP BY `noms`
                                                ORDER BY sum_fruits DESC
                                                LIMIT 10') or die(mysql_error());
                        
                        while($row = mysql_fetch_assoc($res)) { $rows[] = $row; }
                 
                        return $rows;
                }

J'aimerais pouvoir multiplier les valeurs, par exemple sum_fruits = fruits(1)x10, fruits(2)x20, fruits(3)x15.

Je ne sais pas si vous avez compris ! quelqu'un sait comment faire ? J'trouve pô la syntaxe
Mon site dédié à Minecraft : http://www.orminecraft.com
Et celui dédié à ses serveurs multijoueur ;) http://www.serveurs-minecraft.net

Eléphanteau du PHP | 12 Messages

23 oct. 2012, 04:55

Bonjour,
Je crois comprendre mais je ne sais pas quoi faire non plus pour aider.

Eléphant du PHP | 79 Messages

23 oct. 2012, 19:40

SELECT Champ1*10 etc
FROM ...
Le problème c'est que je veux que certaines valeurs de ce champ soient multipliées par 5, et d'autres par 10
Mon site dédié à Minecraft : http://www.orminecraft.com
Et celui dédié à ses serveurs multijoueur ;) http://www.serveurs-minecraft.net

Eléphant du PHP | 79 Messages

23 oct. 2012, 20:42

personne ne sait.
Mon site dédié à Minecraft : http://www.orminecraft.com
Et celui dédié à ses serveurs multijoueur ;) http://www.serveurs-minecraft.net

Mammouth du PHP | 790 Messages

23 oct. 2012, 21:27

donne ta bdd aussi, que je teste...
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Eléphant du PHP | 79 Messages

23 oct. 2012, 23:35

Pas à une femme, je cherche quelqu'un capable de m'aider...
Mon site dédié à Minecraft : http://www.orminecraft.com
Et celui dédié à ses serveurs multijoueur ;) http://www.serveurs-minecraft.net

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

23 oct. 2012, 23:41

Pas à une femme, je cherche quelqu'un capable de m'aider...
Et tu pense que l'on va t'aider avec un réponse comme ça ?

tu as une question approximative, c'est déjà bien que des gens essais de t'aider.

Si tu ne vous indique pas les critères permettant la pondération on ne peux pas t'aider.

De même si tu ne nous indique pas, au moins le create table de la table concernée.


@+
Il en faut peu pour être heureux ......

Mammouth du PHP | 790 Messages

23 oct. 2012, 23:46

aucun soucis jycs, je ne t’importunerais plus, sois en sur...
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Eléphant du PHP | 79 Messages

23 oct. 2012, 23:56

C'est pas ça, mais je ne crois pas que les femmes soient assez intelligentes pour comprendre... Mais bon merci quand même pour l'intention Julietta

J'ai avancé Moogli, mais nouveau problème :

public function getExp() {
			$res = mysql_query('SELECT `killed` AS name, COUNT `killed` * (CASE killed 
                                                    WHEN 12 THEN 10
                                                    WHEN 19 THEN 10 
                                                    WHEN 20 THEN 5) AS count
                                                FROM kills
                                                WHERE killed NOT IN (999,0,17)
                                                GROUP BY `killed`
                                                ORDER BY count DESC
                                                LIMIT 10');
			
			while($row = mysql_fetch_assoc($res)) { $rows[] = $row; }
		 
			return $rows;
		}
Ce code n'affiche rien, c'est bizarre, j'ai essayé plusieurs trucs avec des ", ' (... ça ne change rien

En ajoutant un or die(mysql_error());
il me retourne
ERREUR DE SYNTAXE PR�S DE '* (CASE KILLED WHEN 12 THE' � LA LIGNE 1
Mon site dédié à Minecraft : http://www.orminecraft.com
Et celui dédié à ses serveurs multijoueur ;) http://www.serveurs-minecraft.net

Mammouth du PHP | 790 Messages

24 oct. 2012, 00:02

donne ta bdd aussi, que je teste...
De même si tu ne nous indique pas, au moins le create table de la table concernée.
et toi tu nous donne
public FUNCTION getExp() {
$res = mysql_query('SELECT `killed` AS name, COUNT `killed` * (CASE killed
WHEN 12 THEN 10
WHEN 19 THEN 10
WHEN 20 THEN 5) AS count
FROM kills
WHERE killed NOT IN (999,0,17)
GROUP BY `killed`
ORDER BY count DESC
LIMIT 10');

while($row = mysql_fetch_assoc($res)) { $rows[] = $row; }

RETURN $rows;
je voudrais bien que tu m'explique qui ne comprend pas...
sur ce j'abandonne ce post, bonne chance, a plus
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Eléphant du PHP | 79 Messages

24 oct. 2012, 00:08

Y'a pas besoin de bdd, c'est une erreur de syntaxe |(X

Les femmes j'vous jure, elles nous rendent fous \:D/
Mon site dédié à Minecraft : http://www.orminecraft.com
Et celui dédié à ses serveurs multijoueur ;) http://www.serveurs-minecraft.net

Eléphant du PHP | 79 Messages

24 oct. 2012, 00:39

Faudrait vous dépêcher... J'en ai marre d'attendre.
Mon site dédié à Minecraft : http://www.orminecraft.com
Et celui dédié à ses serveurs multijoueur ;) http://www.serveurs-minecraft.net

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

24 oct. 2012, 00:44

- je connais des femmes bien plus intelligente que moi (toi je sais pas mais je pige rien en mirco biologie et autre truc du genre)

ensuite oui ta syntaxe est foireuse, count est une fonction et tu n'utilise pas de () d'ou l'erreur sur killed * que le parseur mysql ne peux comprendre.

ensuite je ne pense pas que ton case soit bien utilisé non plus.


la pour le coup je pense qu'une UDF (en français fonction utilisateur) serait plus appropriée et simple à utiliser .


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 79 Messages

24 oct. 2012, 01:25

Ouai mais c'est pas mon métier et ça me gonfle, donc file moi la solution...
- je connais des femmes bien plus intelligente que moi (toi je sais pas mais je pige rien en mirco biologie et autre truc du genre)
@+
Y'a pas besoin d'être intelligent pour se servir d'un aspirateur ou se mettre à quatre pattes \:D/

++ Joe

(joke)
Mon site dédié à Minecraft : http://www.orminecraft.com
Et celui dédié à ses serveurs multijoueur ;) http://www.serveurs-minecraft.net

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

24 oct. 2012, 08:28

Ouai mais c'est pas mon métier et ça me gonfle, donc file moi la solution...
Moi justement c'est le mien et si j'ai ici c'est pour que d'autre comprennent ce qu'ils font, parce que c'est plus valorisant pour eux que ceux permettra aussi peux être de ne plus dévaloriser le métier de développeur "php".


ce que tu demande relève du SQL ou du php comme tu veux les deux sont bien sur possible, dans les deux cas créer une fonction (ce qui est relativement tu as déja quasiment tout le code) est le mieux.


pour le sql http://sqlpro.developpez.com

en php http://phpdebutant.org/article59.php


@+
Il en faut peu pour être heureux ......