probleme multi requete

Eléphant du PHP | 299 Messages

27 oct. 2009, 23:28

Hello a tous,

voila, je sais que j' ai pas l' habitude de dire ca, mais c' est assez urgent sur ce coup.

Je voudria juste que lorsque le visiteur a un message ca lui affiche "vous avez x messages".

si le message est lu alors mp_lu = 0 sinon il est egal a 1.


J' ai tenté ceci:

$sql = 'SELECT COUNT(*)as '.$_SESSION['pseudo'].' FROM mp WHERE mp_lu = 1';
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());

// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req))
$comptemp = $data[$_SESSION['pseudo']];
{
?>
Ca ne va pas pour la simple raison que le code ne sait pas de quel destinataire on parle.

Pour etre bien, il faudrait que je rajoute:
$sql = 'SELECT COUNT(*)as '.$_SESSION['pseudo'].' FROM mp WHERE mp_lu = 1 AND mp_receveur = '.$_SESSION['pseudo'].'';
Mais rien ne marche, je ne sais plus quoi faire!

Merci d' avance :(

ViPHP
fab
ViPHP | 2657 Messages

27 oct. 2009, 23:51

Pourquoi mettre en alias MySQL le pseudo ??
$sql = 'SELECT COUNT(*) AS TotalMp FROM mp WHERE mp_lu = 1 AND mp_receveur = '.$_SESSION['pseudo'].'';
ça serait plus simple déjà, mais le mp_receveur tu y mets quoi dedans? le pseudo du membre ou l'identifiant numérique ?
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Eléphant du PHP | 299 Messages

28 oct. 2009, 01:27

non non j' y met le pseudo, mais j' ai maintenant la meme erreur que moi tout a l heure:

Erreur SQL ! SELECT COUNT(*) AS TotalMp FROM mp WHERE mp_lu = 1 AND mp_receveur = graffx Unknown column 'graffx' in 'where clause'

ViPHP
fab
ViPHP | 2657 Messages

28 oct. 2009, 01:32

oui essaye de regarder les implications du changement de mon code :)

remplace
$comptemp = $data[$_SESSION['pseudo']];
par
$comptemp = $data['TotalMp'];
[/php
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Eléphant du PHP | 299 Messages

28 oct. 2009, 07:56

Héhé je l' avais modifié aussi ^^, je cherche toujours :D

Eléphanteau du PHP | 27 Messages

28 oct. 2009, 09:53

non non j' y met le pseudo, mais j' ai maintenant la meme erreur que moi tout a l heure:

Erreur SQL ! SELECT COUNT(*) AS TotalMp FROM mp WHERE mp_lu = 1 AND mp_receveur = graffx Unknown column 'graffx' in 'where clause'
L'erreur est claire : il interprette graffx comme un nom de colonne car c'est une chaine de caractères... si tu voulais l'utiliser comme valeur il fallait la mettre entre quotes !

Je reprend donc le code de fab ci dessous (en y ajoutant les quotes adéquates of course...) :
$sql = 'SELECT COUNT(*) AS TotalMp FROM mp WHERE mp_lu = 1 AND mp_receveur = \''.$_SESSION['pseudo'].'\'';
Lequel t'avait pourtant posé la question à fort juste titre :
ça serait plus simple déjà, mais le mp_receveur tu y mets quoi dedans? le pseudo du membre ou l'identifiant numérique ?
Let me know...
Bisous

Eléphant du PHP | 299 Messages

29 oct. 2009, 07:45

Bon sang, j' avais compris qu' il cherchait la colonne graffx au lieu de la valeur graffx, mais je ne comprenait pas pkoi, t' es un chef mon ami.

Bon va falloir que j' etudie les chaines de caracteres moi :)

Il me reste une erreur a comprendre, mais je vais partir au boulot, alors je verrai ca tantot.

Je l' explique vite fait.

je fais des tests entres deux membres graffx et test. J' ai fait comme une discussion entre les deux, graffx a envoyé un mp a test et test aussi a graffx.

Ben graffx a deux messages non lu (celui de test plus graffx) et test aucun, d' apres le code que tu m' a aidé a corriger. Pourtant dans leur messagerie, ils en ont un chacun et le mp_receveur est bien attribué a chacun :/

Merci et a tanto :)

Eléphant du PHP | 299 Messages

29 oct. 2009, 20:37

Je suis un peu gené, je n' ai pas pu venir plus tot (mon boulot + aut-entrepreneur, pas evident), mais j' ai trouvé la solution, en effet, grace a toi d' ailleurs, on sait que graffx est une chaine de caractere, hé bien mp_lu = 1 aussi est une chaine de caractere, donc \' ' 1 '\ ' et l' histoire est reglé, je n' aurai jamais trouvé seul.

Je vais maintenant aller etudier un peu les chaines de caracteres, alors je te remerci mille fois, plein de poutous!!!!!