Aide requête SQL

Résolu
philg12 Messages postés 8 Date d'inscription jeudi 16 novembre 2006 Statut Membre Dernière intervention 12 mai 2007 - 12 mai 2007 à 16:19
philg12 Messages postés 8 Date d'inscription jeudi 16 novembre 2006 Statut Membre Dernière intervention 12 mai 2007 - 12 mai 2007 à 19:58
Bonjour à tous,

Sur mon site je dispose d'un système de Parrainage.

Et mon script ci-dessous ne fonctionne pas! Je débute donc je ne sais pas trop faire de requête (les explications de ce que je désire faire son tout en bas) Pourriez-vous m'indiquer mon erreur?

[...]
$filleulsql = mysql_query("SELECT * FROM `membre` WHERE `parrain`");
$filleul = mysql_fetch_array($filleulsql);mysql_query("UPDATE membre SET point point+0.1 WHERE pseudo '".$filleul['pseudo']."'");
[...]
*Dans mon script j'ai aussi la variable $pseudo_membre que je ne sais pas ou placer! (Elle donne le pseudo du membre voyant la page)

Dans ce script je cherche à trouver le membre ayant le pseudo du membre dans le champ "parrain"

Merci à tous pour votre aide!

2 réponses

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
12 mai 2007 à 19:33
Salut,

Ta requête est incomplète, et plus particulièrement la clause WHERE. Idem pour le traitement, c'est un peu léger et erronné.
Si j'ai bien compris, tu cherches le parrain du membre (qui vient de s'inscrire ?) pour créditer son compte de 0.1 point.

Voici qui conviendrait mieux :

$sql = 'SELECT parrain FROM membres WHERE pseudo=\'' . $pseudo_membre . '\';';
$result = mysql_query($sql);
if ($result != FALSE)
{
$pseudo_parrain = mysql_result($result, 0);
if (mysql_query('UPDATE membres SET point=point+0.1 WHERE pseudo=\'' . $pseudo_parrain . '\';')
{
// Points mis à jour
}
else
{
// Points NON mis à jour
}
}
else
{
// Pas trouvé
}

Il est même possible de ne faire qu'une seule requête en intégrant une sous-requête SELECT dans la requête UPDATE.

Je me permets d'attirer ton attention sur le contrôle d'erreurs : tu n'en fais aucun. C'est gênant, si jamais une des requêtes n'est pas exécutée... Il faut prévoir comment le script doit réagir dans ce cas là.
3
philg12 Messages postés 8 Date d'inscription jeudi 16 novembre 2006 Statut Membre Dernière intervention 12 mai 2007
12 mai 2007 à 19:58
Merci neigedhiver, tu as réglé mon problème

À l'avenir je ferai attention au contrôle d'erreur
0
Rejoignez-nous