PHP->Besoin d'aide pour une requête
9 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
PHP->Besoin d'aide pour une requête
Bonjour,
La requête ci-dessous sert à faire un "Top-Parrain".
>Id par id, je veux chercher le nombre de filleuls(=nombre de membres qui ont l'id X pour refererid), puis stocker la valeur trouver dans le nbref (nombre de filleuls) correspondant à l'id...
J'ai des erreurs de ce type :
Quelqu'un aurait une idée de l'erreur ?
Merci.
La requête ci-dessous sert à faire un "Top-Parrain".
>Id par id, je veux chercher le nombre de filleuls(=nombre de membres qui ont l'id X pour refererid), puis stocker la valeur trouver dans le nbref (nombre de filleuls) correspondant à l'id...
- Code: Tout sélectionner
<?php
include('header.inc.php');
$requete = mysql_query("SELECT id FROM demo_a_accounts") or die(mysql_error();
while ($myrow = mysql_fetch_row($requete))
{
$req = "SELECT id FROM demo_a_accounts WHERE refererid=" .$myrow[0]. "";
$res = mysql_query($req) or die(mysql_error());
$num_rows = mysql_num_rows($req);
$ask= "UPDATE `demo_a_accounts` SET `nbref` = '".$num_rows."' WHERE `id` = '" .$myrow[0]. "'";
$result = mysql_query($ask) or die(mysql_error());
}
?>
J'ai des erreurs de ce type :
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home.10.6/boosttra/www/topparrain.php on line 8
Quelqu'un aurait une idée de l'erreur ?
Merci.
- DomicilePC
- WRInaute occasionnel

- Messages: 210
- Inscription: Lun Jan 17, 2005 15:50
change
$num_rows = mysql_num_rows($req);
par
$num_rows = mysql_num_rows($res);
$num_rows = mysql_num_rows($req);
par
$num_rows = mysql_num_rows($res);
Merci, ça marche avec :

- Code: Tout sélectionner
<?php
include('header.inc.php');
$requete = mysql_query("SELECT id FROM demo_a_accounts") or die(mysql_error());
while ($myrow = mysql_fetch_row($requete))
{
$req = "SELECT id FROM demo_a_accounts WHERE refererid=".$myrow[0]."";
$res = mysql_query($req) or die(mysql_error());
$num_rows = mysql_num_rows(mysql_query($req));
$ask= "UPDATE `demo_a_accounts` SET `nbref` = '".$num_rows."' WHERE `id` = '".$myrow[0]."'";
$result = mysql_query($ask) or die(mysql_error());
}
?>
Plus simple peut-être, en 1 requête (mais faudra vérifier la syntaxe) :
Ou, au pire, en n+1 requêtes (au lieu de 2n+1 requêtes) :
- Code: Tout sélectionner
UPDATE `demo_a_accounts` A1 SET A1.`nbref` = (SELECT count(DISTINCT A2.id) FROM `demo_a_accounts` A2 WHERE A2.`refererid`=A1.`id`);
Ou, au pire, en n+1 requêtes (au lieu de 2n+1 requêtes) :
- Code: Tout sélectionner
SELECT A1.id, count(DISTINCT A2.id) AS c FROM `demo_a_accounts` A1 LEFT JOIN `demo_a_accounts` A2 ON A2.`refererid`=A1.`id`;
puis, pour chaque résultat renvoyé :
UPDATE `demo_a_accounts` SET `nbref` = '".$row["c"]."' WHERE `id`='".$row["id"]."';
Je ne connais pas du tout la syntaxe du code que tu utilise...
J'essaye ceci ?
J'essaye ceci ?
- Code: Tout sélectionner
<?php
include('header.inc.php');
UPDATE `demo_a_accounts` A1 SET A1.`nbref` = (SELECT count(DISTINCT A2.id) FROM `demo_a_accounts` A2 WHERE A2.`refererid`=A1.`id`);
?>
Avec :
J'ai l'erreur :
- Code: Tout sélectionner
<?php
include('header.inc.php');
$requete = "UPDATE `demo_a_accounts` A1 SET A1.`nbref` = (SELECT count(DISTINCT A2.id) FROM `demo_a_accounts` A2 WHERE A2.`refererid`=A1.`id`);";
$result = mysql_query($requete) or die(mysql_error());
?>
J'ai l'erreur :
- Code: Tout sélectionner
You can't specify target table 'A1' for update in FROM clause
Et si j'utilise :
J'ai l'erreur :
Auriez-vous une idée du problème ?
Merci.
- Code: Tout sélectionner
<?php
include('header.inc.php');
mysql_query("SELECT A1.id, count(DISTINCT A2.id) AS c FROM `demo_a_accounts` A1 LEFT JOIN `demo_a_accounts` A2 ON A2.`refererid`=A1.`id`") or die(mysql_error());
mysql_query("UPDATE `demo_a_accounts` SET `nbref` = '".$row["c"]."' WHERE `id`='".$row["id"]."'") or die(mysql_error());
?>
J'ai l'erreur :
Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause
Auriez-vous une idée du problème ?
Merci.
9 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Google Search-based Keyword Tool : outil de recherche de mots-clés
- Keyword Search Engine : le choix des bons mots-clés
- Google Page Creator
- Liste complète des paramètres utilisés par Google Search (variables dans l'URL)
- Statistiques des requêtes sur les moteurs en 2006
- Annuaire WRI : c'est la saison des validations !
- MyMaps : des cartes personnalisées avec Google Maps
- WebRankInfo analyse le logiciel AgentWebRanking
- Google facilite les recherches par site
- Yahoo Dance Décembre 2006
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités




le forum