par
Invité » 13 févr. 2007, 11:53
J'ai modifié la jointure, et le résultat est le même.
Comme je n'étais pas chez moi hier soir je n'avais pas accès au code voici ma requête sql :
$fiche_sql = mysql_query("select p.PTSCREA,p.PTSBONUS,p.DATECREA,p.CONTE,p.NOM,p.PRENOM,p.DATENAISS,p.STATUS,p.POSTE,p.CLAN,p.SIRE,p.DATEVAMP,p.NATURE,p.NATURE2,p.ATTITUDE,p.ATTITUDE2,p.GENERATION, p.GENECREA,p.HUMANITE,p.HUMACREA,p.VOLONTE,p.PHYSIQUE,p.MENTAL,p.SOCIAL, p.VALID, p.DATEVALID, p.NOMVALID, p.IDJOUEUR, j.NOM as NOMJOUEUR, j.PRENOM as PRENOMJOUEUR,c.IDPERSO,c.COMPET,c.NIVCOMPET,d.IDPERSO, d.DISC,d.NIVDISC from persos p, joueurs j, competences c, disciplines d WHERE j.IDJOUEUR = p.IDJOUEUR AND p.IDPERSO = c.IDPERSO AND p.IDPERSO=d.IDPERSO AND p.IDPERSO = '".$idperso."'");
while ($res = mysql_fetch_assoc($fiche_sql)){
$idjoueur = $res['IDJOUEUR'];
$ptscrea= $res['PTSCREA'];
$ptsbonus = $res['PTSBONUS'];
$datecrea = $res['DATECREA'];
$conte = $res['CONTE'];
$nom = $res['NOM'];
$prenom = $res['PRENOM'];
$datenaiss = $res['DATENAISS'];
$status = $res['STATUS'];
$poste = $res['POSTE'];
$clan = $res['CLAN'];
$sire = $res['SIRE'];
$datevamp = $res['DATEVAMP'];
$nature = $res['NATURE'];
$nature2 = $res['NATURE2'];
$attitude = $res['ATTITUDE'];
$attitude2 = $res['ATTITUDE2'];
$generation = $res['GENERATION'];
$genecrea = $res['GENECREA'];
$humanite = $res['HUMANITE'];
$humacrea = $res['HUMACREA'];
$volonte = $res['VOLONTE'];
$derangement = $res['DERANGEMENT']; /*à exploder*/
$deracrea = $res['DERACREA']; /*à exploder*/
$physique = $res['PHYSIQUE'];
$social = $res['SOCIAL'];
$mental = $res['MENTAL'];
$disc = $res['DISC']; /*à exploder*/
$nivdisc = $res['NIVDISC']; /*à exploder*/
$compet = $res['COMPET']; /*à exploder*/
$nivcompet = $res['NIVCOMPET']; /*à exploder*/
$langues = $res['LANGUES']; /*à exploder*/
$influ = $res['INFLU']; /*à exploder*/
$nivinflu = $res['NIVINFLU']; /*à exploder*/
$valid = $res['VALID'];
$datevalid = $res['DATEVALID'];
$nomvalid = $res['NOMVALID'];
$idjoueur = $res['IDJOUEUR'];
$nomjoueur = $res['NOMJOUEUR'];
$prenomjoueur = $res['PRENOMJOUEUR'];
}
Quand je teste ma requête SQL sous phpmyadmin, ça me retourne 16 enregistrements. C'est à dire que tout ce qui est initialisé dans les variables fait partie du 16ème enregistrement. De plus, toutes les infos contenus dans la table persos sont répétées 16 fois, je ne pense pas que ce soit optimisé.
Alors faut-il que je teste à chaque enregistrement si la valeur du champ à changer et si oui, l'ajouter dans un array() ? ou Existe-t-il une autre solution ?
J'ai modifié la jointure, et le résultat est le même.
Comme je n'étais pas chez moi hier soir je n'avais pas accès au code voici ma requête sql :
[php] $fiche_sql = mysql_query("select p.PTSCREA,p.PTSBONUS,p.DATECREA,p.CONTE,p.NOM,p.PRENOM,p.DATENAISS,p.STATUS,p.POSTE,p.CLAN,p.SIRE,p.DATEVAMP,p.NATURE,p.NATURE2,p.ATTITUDE,p.ATTITUDE2,p.GENERATION, p.GENECREA,p.HUMANITE,p.HUMACREA,p.VOLONTE,p.PHYSIQUE,p.MENTAL,p.SOCIAL, p.VALID, p.DATEVALID, p.NOMVALID, p.IDJOUEUR, j.NOM as NOMJOUEUR, j.PRENOM as PRENOMJOUEUR,c.IDPERSO,c.COMPET,c.NIVCOMPET,d.IDPERSO, d.DISC,d.NIVDISC from persos p, joueurs j, competences c, disciplines d WHERE j.IDJOUEUR = p.IDJOUEUR AND p.IDPERSO = c.IDPERSO AND p.IDPERSO=d.IDPERSO AND p.IDPERSO = '".$idperso."'");
while ($res = mysql_fetch_assoc($fiche_sql)){
$idjoueur = $res['IDJOUEUR'];
$ptscrea= $res['PTSCREA'];
$ptsbonus = $res['PTSBONUS'];
$datecrea = $res['DATECREA'];
$conte = $res['CONTE'];
$nom = $res['NOM'];
$prenom = $res['PRENOM'];
$datenaiss = $res['DATENAISS'];
$status = $res['STATUS'];
$poste = $res['POSTE'];
$clan = $res['CLAN'];
$sire = $res['SIRE'];
$datevamp = $res['DATEVAMP'];
$nature = $res['NATURE'];
$nature2 = $res['NATURE2'];
$attitude = $res['ATTITUDE'];
$attitude2 = $res['ATTITUDE2'];
$generation = $res['GENERATION'];
$genecrea = $res['GENECREA'];
$humanite = $res['HUMANITE'];
$humacrea = $res['HUMACREA'];
$volonte = $res['VOLONTE'];
$derangement = $res['DERANGEMENT']; /*à exploder*/
$deracrea = $res['DERACREA']; /*à exploder*/
$physique = $res['PHYSIQUE'];
$social = $res['SOCIAL'];
$mental = $res['MENTAL'];
$disc = $res['DISC']; /*à exploder*/
$nivdisc = $res['NIVDISC']; /*à exploder*/
$compet = $res['COMPET']; /*à exploder*/
$nivcompet = $res['NIVCOMPET']; /*à exploder*/
$langues = $res['LANGUES']; /*à exploder*/
$influ = $res['INFLU']; /*à exploder*/
$nivinflu = $res['NIVINFLU']; /*à exploder*/
$valid = $res['VALID'];
$datevalid = $res['DATEVALID'];
$nomvalid = $res['NOMVALID'];
$idjoueur = $res['IDJOUEUR'];
$nomjoueur = $res['NOMJOUEUR'];
$prenomjoueur = $res['PRENOMJOUEUR'];
}[/php]
Quand je teste ma requête SQL sous phpmyadmin, ça me retourne 16 enregistrements. C'est à dire que tout ce qui est initialisé dans les variables fait partie du 16ème enregistrement. De plus, toutes les infos contenus dans la table persos sont répétées 16 fois, je ne pense pas que ce soit optimisé.
Alors faut-il que je teste à chaque enregistrement si la valeur du champ à changer et si oui, l'ajouter dans un array() ? ou Existe-t-il une autre solution ?