PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 12-04-2010 10:25:29

l'hermine à plumes
Membre
Inscription : 10-04-2010
Messages : 4

comapraison champ à champ de 2 enregistrements (php)

Bonjour à tous,
je ne suis pas informaticien mais pour faire vivre un site de pronostics entre potes je me suis mis au php afin
d'arriver à quelques choses de très dynamique.
En voulant peaufiner le tout, je butte sur un dernier petit problème. J'ai beau cherché, je ne trouve pas la solution donc je m'en remets à l'avis de spécialistes. A mon avis je ne cherche pas avec les bons mots, ce qui induit forcément de mauvaises réponses...

voici le pb...
j'ai une base de donné intitulée "prono" qui contient 11 champs. le premier "club" qui renseigne le nom du joueur puis 10 champs qui correspondent aux 10 matchs de L1 joués chaque semaine "match1"......"match10"

j'ai formulaire qui envoie les grilles de chaque joueur dans une table...
j'affiche les noms des joueurs dont la grille est validée... le samedi à 17H00 les pronos arrivent en ligne...
J'affiche tout un tas de stats.... etc...

ce que j'aimerais, c'est pouvoir faire en sorte que chaque joueur puisse calculer son score en direct....
Il lui faut entrer la solution (jusqu'ici tout va bien...)
ensuite je souhaite que dans une liste déroulante il choisisse 1/ la solution 2/ le nom de son club (jusque là pas de problème)
et qu'un nombre de bonnes réponses communes apparaissent. Il faudrait donc un select? qui comptabilise un a un les champs communs
entre les 10 champs du joueurs et les 10 champs de la solutions....

Voilà dans quelle direction je cherche .....
POST ["club"] c'est le retour formulaire de la selection solution
POST ["club1"] c'est le retour formulaire de la selection du joueur
(resultat d'un essai juste pour un champ)
$select= "select * from prono AS club '".$_POST ["club"]."', prono as club '".$_POST ["club1"]."' where '".$_POST ["club"]."'.match1 = '".$_POST ["club1"].".match1";

...pour le reste je m'en remets à vos lumières.
Merci d'avance.

Hors ligne

#2 12-04-2010 10:34:28

moogli
Modérateur
Inscription : 08-05-2009
Messages : 336
Site Web

Re : comapraison champ à champ de 2 enregistrements (php)

salut,

je suis désolé mais ton problème est incompréhensible smile

Par contre dans ta requête deux AS de la même table me semble foireux wink je pense que tu veut faire une jointure entre les tables ?
Ta requête telle quelle est ne peut fonctionner.

@+


Il en faut peu pour être heureux pompompompompompompompompompompom

Hors ligne

#3 12-04-2010 10:41:45

l'hermine à plumes
Membre
Inscription : 10-04-2010
Messages : 4

Re : comapraison champ à champ de 2 enregistrements (php)

oui j'ai mis un bout de code qui ne fonctionne pas...
pour etre plus claire je veux comparer tous les champs de 2 enregistrments d'une meme table...
puis savoir combien de champs ont une valeur commune
c'est tout ce que je veux faire... ce n'est peut être pas possible....
A plus

Hors ligne

#4 12-04-2010 12:08:02

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : comapraison champ à champ de 2 enregistrements (php)

Cela se fait peut être en SQL mais pour ma part je partirai sur du PHP car je le maîtrise mieux.

// On récupère tous les matchs du club
$sql = "SELECT match1, match2, match3 ...et ainsi de suite... FROM prono WHERE club={$_POST['club']}";
$req = mysql_query($sql) or die(mysql_error());
// On récupère l'enregistrement
if( $resultat = mysql_fetch_array($req) )
{
  $nbrMatchEgaux = 0;
  $matchs = array();
  if( $resultat['match1'] == $_POST['match1'] )
  {
    $nbrMatchEgaux++; //Incrémentation du nombre de match égaux
    $matchs['match1'] = true; // On signale que le match1 est égal à ce qu'on voulait
  }
  //et ainsi de suite

  // Affichage
  echo "Nombre de matchs égaux : $nbrMatchEgaux \n";
  foreach($matchs as $nomMatch => $valeur) // Parcours des matchs qu'on a trouvé
  {
    if( $valeur == true )
      echo "$nomMatch correspond. \n";
  }  
}

Voilà en gros pour ce que tu sembles vouloir. A toi de poser des questions s'il y a un truc que tu ne comprends pas et à adapter à ton cas. ^^

Hors ligne

#5 12-04-2010 13:04:12

l'hermine à plumes
Membre
Inscription : 10-04-2010
Messages : 4

Re : comapraison champ à champ de 2 enregistrements (php)

à la lecture du script cela me semble exactement convenir....
je ferai un essai ce soir...
Merci beaucoup car sur ce coup là j'avais atteint mon seuil d'incompétence.....
smile

Hors ligne

#6 12-04-2010 14:15:38

l'hermine à plumes
Membre
Inscription : 10-04-2010
Messages : 4

Re : comapraison champ à champ de 2 enregistrements (php)

j'ai eu 5 mn alors j'ai regardé plus en détail...
Je comprends que l'on récupere par le select les champs de l'enregistrement club (club={$_POST['club']})
mais à quel enregistrement on fait référence pour faire les comparaisons champs par champs...
lapin tout compris !!!

Hors ligne

#7 12-04-2010 15:15:02

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : comapraison champ à champ de 2 enregistrements (php)

Dans ta table prono j'ai supposé que tu avais un enregistrement par club. Et que dans cet enregistrement tu avais 10 champs (un par match).

Donc je récupère l'enregistrement du club en question et je compare avec ce qui provient du formulaire. Mais j'avais pas tout compris.
En fait tu veux comparer deux enregistrements.
Dans ce cas tu peux faire une seconde requête et à la place de la variable $_POST tu auras la variable renvoyée par le mysql_fetch_array() de l'autre requête.

Hors ligne

#8 12-04-2010 16:14:41

moogli
Modérateur
Inscription : 08-05-2009
Messages : 336
Site Web

Re : comapraison champ à champ de 2 enregistrements (php)

hum a vu de nez MK nous dirais : y  un problème de construction de la table, il te faudrait une deuxieme table avec les matchs etc.

Cela te permettrais de faire tous cela plus simplement.

@+


Il en faut peu pour être heureux pompompompompompompompompompompom

Hors ligne

Pied de page des forums