mobman02

  • Signature
    http://damienalexandre.fr/
  • Site web
  • Nombre de sujets
    32
  • Nombre de messages
    160
  • Nombre de commentaires
    8
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses derniers messages sur les forums

mobman02
le 27/01/2007 à 11:29
[MySQL] Requête avec jointure qui passe pas
Bonjour,
j'ai un chtit problème,
j'essaye d'optimiser mon site depuis que j'ai découvert les jointure (heu, depuis avant hier quoi :D),

dans ce cas la, il s'agit de l'affichage des news.

Avant j'avais une requête qui chargeait toutes les news,
puis une requête par news pour compter le nombre de commentaires.

Je cherche à faire tout ça en une seule requête :

SELECT 
a.id_news,
a.titre,
a.date_news,
a.texte,
a.texte2,
a.auteur,
a.validation,
a.id_news,
count(b.id_comment)
FROM news a
LEFT JOIN commentaires b
ON a.id_news = b.id_news
GROUP BY a.id_news
WHERE a.validation = 1
ORDER BY a.date_news DESC
LIMIT 0 , 5


Mais MySQL me renvoi cette erreur :
Erreur de syntaxe près de 'WHERE a.validation = 1
ORDER BY a.date_news DESC
LIMIT 0 , 5' à la ligne 15

Je pense que le problème vient du GROUP BY (dont je ne saisie pas bien l'utilité),
si je le retire MySQL me dit ça :
Mélanger les colonnes GROUP (MIN(),MAX(),COUNT()...) avec des colonnes normales est interdit s'il n'y a pas de clause GROUP BY


Voilà vous savez tout ^^
J'espère que vous pourrez m'aider :)

Bye et merci d'avance.
http://damienalexandre.fr/
mobman02
le 16/07/2006 à 18:17
Dapper est de sortie
Ouep c'est ce que je fait en ce moment,
seulement moi et Apache =)
J'essaye de changer le DocumentRoot mais j'ai du 403 partout après, même en chmoodant :/

Dur dur d'administrer un serveur pour la première fois smiley
http://damienalexandre.fr/
mobman02
le 15/07/2006 à 19:41
Dapper est de sortie
Hey des Linuxiens :D

Heu vous utilisez quoi et comment pour developper et tester vos applications sous Linux ?

Je viens d'essayer XAMPP mais j'aimerais déplacer la racine de mon serveur vers un autre disque dur :/ Je ne sais pas comment faire (installer XAMPP dans le repertoire que je veut ?)

Et comme éditeur vous utilisez quoi ?

(Je suis sous dapper Kubuntu).
http://damienalexandre.fr/
mobman02
le 12/04/2006 à 20:18
[fonction] Paramètres par référence
Ok ok -_-
C'est résolu,
on peut bien modifier une variable "global" en fait (c'est pas très clair dans le cour).

Et je comprenais pas pourquoi j'avait une erreur de parssage avec ça :
global $pattern = array(":o", ":D");
global $repl = array("s/bigeek.gif", "s/biggrin.gif");

En faite, apparemment on ne dois pas assigner de valeur quand on déclare une variable globale,
parce que ça
global $pattern;
global $repl;
$pattern = array(":o", ":D");
$repl = array("s/bigeek.gif", "s/biggrin.gif");

ça fonctionne nickel sans erreur de parsage.

Voila bon bah merci bien, j'aurais au moins appris a me servir des globales :)
http://damienalexandre.fr/
mobman02
le 12/04/2006 à 18:04
[fonction] Paramètres par référence
Ouais je me suis renseigné,
mais donc si j'ai tous compris "global" ne permet pas de modifier une variable extérieur à une fonction... il permet juste d'utilisé cette variable.

Moi ce que je voudrais faire, c'est une fonction get_smileys() dans laquelle je créer (ou modifi) deux tableau, qui eux servirons à l'extérieur de la fonction, voir même dans d'autres fonctions !

C'est compliqué hein ^^
http://damienalexandre.fr/
mobman02
le 11/04/2006 à 22:07
[fonction] Paramètres par référence
Bonjour à tous,
j'ai un soucis en Local (easyPHP 1.8.0.1) avec une fonction perso,
pour laquel je suis semble t'il obligé d'utilisé des variables passé en référence.

En faite j'ai une fonction qui me donne deux variables :
function get_smileys($pattern,$repl) {
$pattern = array(":o", ":D");
$repl = array("s/bigeek.gif", "s/biggrin.gif");
}

Comme je n'arrivais pas a rendre ses variable accessible (avec global) dans une autre fonction,
j'ai changé de tactique et j'appel celle ci avec des références pour modifier donc les deux variables (que je défini avant).
get_smileys(&$pattern,&$repl);


Seulement voilà, apparemment sa passe pas bien, ou alors ça va bientôt plus passer du tous, voici le message d'erreur :
Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of [runtime function name](). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in c:\monfichier


Voilà alors si vous connaissez la solution a ce probléme :/
Ou si vous pouviez me donner un moyen de rendre mes variables $pattern et $repl accessible partout...

Voilà merci bien ;)
http://damienalexandre.fr/
mobman02
le 22/10/2005 à 17:34
erreur mysql_real_escape_string
Cette fonction sert a proteger des chaine mysql, la tu l'utilise sur des session... :/

L'erreur vien pour moi de la connexion a la base de donnée.
Si tu ne passe pas le link en second parametre de la fonction, php prend la dernier connexion.
Et la apparement la connexion n'est pas bonne, ou il n'en trouve pas.

Li la doc tu comprendra surement mieu qu'en m'ecoutant :) lol

extrait :

Liste de paramètres

unescaped_string

La chaîne à échapper.
link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

http://fr.php.net/mysql_real_escape_string
http://damienalexandre.fr/
mobman02
le 22/10/2005 à 17:25
Incrementer un champs en 1 seule requete ?
Heu nan merci c'est bon, probléme résolu :)

En faite, je fait

UPDATE table SET nb_truc=nb_truc+1 WHERE id=$id

Et ça marche ! :)
je savais pas, autant pour moi quoi ^^
http://damienalexandre.fr/
mobman02
le 22/10/2005 à 17:06
Incrementer un champs en 1 seule requete ?
Bonjour,
j'ai une table avec un champs "nb_truc".

A chaque fois j'effectue une certaine action,
j'aimerais incrementer positivement ce champs.

Si j'etais brouillon je ferais
SELECT nb_truc FROM table WHERE id=$id
$nb_truc = $nb_truc ++;
UPDATE table SET nb_truc=$nb_truc WHERE id=$id

(Le code n'est pas fonctionnel hein, n'aller pas me dire que ya des erreurs :D )

Ouais mais voila, ça fait DEUX requete SQL juste pour une opération aussi simple...

J'ai chercher un peu, j'ai regarder d'autres script, mais, mince de mince, on est tout le temps obliger de faire comme ça ?

Il existe pas une astuce ? Un machin ?
Du genre :
UPDATE table SET nb_truc=nb_truc++ WHERE id=$id

??

Ca serais bien mieu...

Voila je vous remercie d'avance, j'espere trouvé le moyen de le faire en une fois.
http://damienalexandre.fr/
mobman02
le 12/10/2005 à 20:31
UPDATER plusieurs ligne d'une table en une fois
Oui il peu modifier chaque ligne a sa guise...

Rolalala ca va faire une sacrée requete, c'est pas un peu beaucoup faire une dizaine d'update en une fois ?
Surtout que c'est pour un script qui se veut "leger" lol ;)
http://damienalexandre.fr/
LoadingChargement en cours