philg12
Messages postés8Date d'inscriptionjeudi 16 novembre 2006StatutMembreDernière intervention12 mai 2007
-
12 mai 2007 à 16:19
philg12
Messages postés8Date d'inscriptionjeudi 16 novembre 2006StatutMembreDernière intervention12 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"
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 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à.