Amélioration de mon code PHP avec allegement de ma base de données
Bonjour à tous.
J'ai actuellement un script qui me permet de saisir les informations de chaque participant à un jeu.
Parmi ces informations l'on peut inscrire cette personne dans maximum 20 ligues, donc des que j'ouvre la fiche d'un joueur j'ai mon script qui créé les 20 lignes.
Code:
1 2 3 4 5 6 7 8 9 10 11
|
$joueur=@$_GET['joueur'];
$res_ligue = mysql_query("SELECT * FROM `".$sufftable."dem_ligue` where idJOUEUR='$joueur' order by nbligue asc");
for ($i = 2; $i <= 20; $i++)
{
$res_nbligue = mysql_query("SELECT * FROM `".$sufftable."dem_ligue` where idJOUEUR='$joueur' and nbligue ='$i'");
$nb=mysql_num_rows($res_nbligue );
if ($nb==0){$modif=mysql_query("INSERT INTO `".$sufftable."dem_ligue` (`idJOUEUR`,`nbligue `) VALUES ('$joueur','$i')");}
} |
Alors que dans mon admin PHP j’utilise un nombre aléatoire de lignes sans jamais savoir combien à l'avance mais toujours max 20.
La premier ligne est affichée, les autres sont cachées et s'affichent en cliquent sur un plus en queue de ligne.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
echo '<div class="form-group normal">
<div class="col-sm-1">Ligue</div>
<div class="col-sm-1">niveau</div>
<div class="col-sm-1-1">points</div>
<div class="col-sm-1-1">Infos/CP</div>
</div>';
$res_ligue = mysql_query("SELECT * FROM `".$sufftable."dem_ligue` where idJOUEUR='$joueur' order by nbligue asc");
for ($i = 2; $i <= 20; $i++)
{
$res_nbligue = mysql_query("SELECT * FROM `".$sufftable."dem_ligue` where idJOUEUR='$joueur' and nbligue ='$i'");
$nb=mysql_num_rows($res_nbligue );
if ($nb==0){$modif=mysql_query("INSERT INTO `".$sufftable."dem_ligue` (`idJOUEUR`,`nbligue `) VALUES ('$joueur','$i')");}
}
while($clligue = mysql_fetch_array($res_ligue , MYSQL_ASSOC))
{
$nbligue =$clligue ['nbligue'];
if ($clligue ['nomligue'] =="1"){$ncl_nomligue="Bronze";}
if ($clligue ['nomligue'] =="2"){$ncl_nomligue="Argent";}
if ($clligue ['nomligue'] =="3"){$ncl_nomligue="Or";}
$niveauligue=$clligue ['niveauligue'];
$pointsligue=$clligue ['pointsligue'];
$infosligue=$clligue ['infosligue'];
echo '
<div name="divligue_'.$nbligue.'" id="divligue_'.$nbligue.'">
<div class="col-sm-1"><select name="nomligue_'.$nbligue.'" id="nomligue_'.$nbligue.'" onchange="envoi_ligue(\'nomligue_'.$nbligue .'\','.$joueur.',.$nbligue .');" ><option disabled>Organisme</option>';if ($clcred['credracsoc']<>''){echo '<option value="'.$clligue['credracsoc'].'" selected="selected">'.$ncl_nomligue.'</option>';} echo '<option value=""></option>'; require ('liste_ligue.php');echo '</select></div>
<div class="col-sm-1"><div id="niveauligue_'.$nbligue.'" style="'; if ($clligue['niveauligue']=="10"){echo 'display:none';}echo '"><input type="text" id="niveauligue_'.$nbligue.'" name="niveauligue_'.$nbligue.'" value="'.$clligue['niveauligue'].'" onblur="envoi_ligue(\'niveauligue_'.$nbligue.'\','.$joueur.','.$nbligue.')" ></div></div>
<div class="col-sm-1"><div id="pointsligue_'.$nbligue.'" style="'; if ($clligue['pointsligue']=="10"){echo 'display:none';}echo '"><input type="text" id="pointsligue_'.$nbligue.'" name="pointsligue_'.$nbligue.'" value="'.$clligue['pointsligue'].'" onblur="envoi_ligue(\'pointsligue_'.$nbligue.'\','.$joueur.','.$nbligue.')" ></div></div>
<div class="col-sm-1"><div id="infosligue_'.$nbligue.'" style="'; if ($clligue['infosligue']=="10"){echo 'display:none';}echo '"><input type="text" id="infosligue_'.$nbligue.'" name="infosligue_'.$nbligue.'" value="'.$clligue['infosligue'].'" onblur="envoi_ligue(\'infosligue_'.$nbligue.'\','.$joueur.','.$nbligue.')" ></div></div>
';
$i=$nbcred + 1;
echo '
<div class="col-sm-1-1"><span style="float:right;"><a href="javascript:;" onclick="document.getElementById(\'divligue_'.$i.'\').style.display = \'block\'"><b>+</b></a></span></div>
</div>';
} |
Chaque info tapée dans un champ d'une ligne est envoyée via une fonction javascript qui traite l'info en ajax et retourne un CSS sur le champ pour montrer que l'inf a été enregistrée.
Le problème est le suivant, pour chaque joueur j'enregistre à a chaque fois mes 20 lignes de codes dans ma base même si au final j'en utilise que 2 ou 3.
Quel serait le moyen pour alléger ce genre d'utilisation s'il vous plait.
Merci pour votre aide
Olivier