Gamoover

[move]Le staff Gamoover vous souhaite la bienvenue ;)

[Résolu] [Recherche coup de main] PHP + BDD

Démarré par _n3o_, Vendredi 06 Juillet 2018, 10:28:30 AM

_n3o_

J'ai copié collé le code donné par Tilowil plus haut.



Solkan

C'est donc probablement dans l'insert.php a la ligne 12 qui a effectivement une typo.
code avec une petite faute :
$sql = "insert into JoueurScore(Joueur, Score) Values ('$joueur',$score);"
a remplacer par :
$sql = "insert into JoueurScore(Joueur, Score) Values ('$joueur',$score)";
Solkan
"There is too much blood in my Coca-Cola System"

Mes Recherches : Marquee et PCB MK2, Konami Gyruss/Pooyan/Time Pilot/Yie Ar Kung Fu/Commando/Track & Field

_n3o_

#18
Effectivement.

Aprés changement j'ai une autre erreur mais ca avance (peut etre que là effectivement ca viens du mysql/mysqli

[09-Jul-2018 16:52:55 Europe/Berlin] PHP Fatal error:  Uncaught Error: Call to undefined function mysql_connect() in /Applications/MAMP/htdocs/SITE/insert.php:8
Stack trace:
#0 {main}
  thrown in /Applications/MAMP/htdocs/SITE/insert.php on line 8


la ligne 8

  $liendb = mysql_connect('localhost', 'root', 'root') or die('Impossible de se connecter : ' . mysql_error());


--- edit ---
j'ai mis des mysqli partout et maintenant j'ai plus d'erreur 500 mais dans le log php j'ai ca :

[09-Jul-2018 16:56:14 Europe/Berlin] PHP Warning:  mysqli_select_db() expects parameter 1 to be mysqli, string given in /Applications/MAMP/htdocs/THE_SHOW/insert.php on line 10
[09-Jul-2018 16:56:14 Europe/Berlin] PHP Warning:  mysqli_query() expects parameter 1 to be mysqli, string given in /Applications/MAMP/htdocs/THE_SHOW/insert.php on line 13
[09-Jul-2018 16:56:14 Europe/Berlin] PHP Warning:  mysqli_error() expects exactly 1 parameter, 0 given in /Applications/MAMP/htdocs/THE_SHOW/insert.php on line 13

(j'y suis ptetre allé un peu fort sur les mysqli ?  :D



Tormak

Remplace " $liendb = new mysqli('localhost', 'root', 'root') or die('Impossible de se connecter : ' . mysql_error());" par :

$liendb = mysqli_connect('localhost', 'root', 'root','ta base de données');
if ($liendb ->connect_errno) {
    echo "Echec lors de la connexion à MySQL : (" . $liendb ->connect_errno . ") " . $liendb ->connect_error;
}


tilowil

Bonsoir,

Je vois que d'autres ont pris le relais aussi  ^-^.
Désolé pour le point virgule mal placé :-\.

Je t'aurais donné un code avec mysqli, si j'avais su que tu etais en PHP7. désolé.

A+

Solkan

Citation de: _n3o_ le Lundi 09 Juillet 2018, 16:54:34 PM
j'ai mis des mysqli partout et maintenant j'ai plus d'erreur 500 mais dans le log php j'ai ca :

[09-Jul-2018 16:56:14 Europe/Berlin] PHP Warning:  mysqli_select_db() expects parameter 1 to be mysqli, string given in /Applications/MAMP/htdocs/THE_SHOW/insert.php on line 10
[09-Jul-2018 16:56:14 Europe/Berlin] PHP Warning:  mysqli_query() expects parameter 1 to be mysqli, string given in /Applications/MAMP/htdocs/THE_SHOW/insert.php on line 13
[09-Jul-2018 16:56:14 Europe/Berlin] PHP Warning:  mysqli_error() expects exactly 1 parameter, 0 given in /Applications/MAMP/htdocs/THE_SHOW/insert.php on line 13

Ce sont des notifications, pas des erreurs. Visiblement ton script s'est éxécuté jusqu'au bout.
Solkan
"There is too much blood in my Coca-Cola System"

Mes Recherches : Marquee et PCB MK2, Konami Gyruss/Pooyan/Time Pilot/Yie Ar Kung Fu/Commando/Track & Field

_n3o_

Bon toujours pas, je vais voir si l'hebergement final sera en PHP 5 ou PHP 7, qu'on se prenne pas le choux pour rien a devoir refaire l'inverse par la suite :p



Solkan

mysqli_query est utilisable depuis php 5; C'est lui le standard à utiliser.
Solkan
"There is too much blood in my Coca-Cola System"

Mes Recherches : Marquee et PCB MK2, Konami Gyruss/Pooyan/Time Pilot/Yie Ar Kung Fu/Commando/Track & Field

_n3o_




_n3o_

#25
J'ai telechargé un convertisseur Mysql->Mysqli et CA MARCHEEEEEE ! ! ! ! ! ! !  :-)= ^-^

Me reste a voir la recuperation des données mais c'est deja une avancée enorme

MERCI LES GARS VOUS ETES AU TOP ! ! ^-^ :-)= :-* :-* :-*

Par contre pour le TOP 3 chacun des 3 top players doivent etre recuperé indépendamment :/

A l'heure actuelle j'ai ca (en appelant les données d'une autre page ca marchais mais bon ca a rien a voir là :D)

<div class="or wow fadeInLeft" data-wow-duration="1s" data-wow-delay="1.6s"  style="float:none; display: inline-block;">
                 <img src="images/gold.svg" height="100em"></img>
                 <h3 class="pricing-title">1 er</h3>
                 </BR>
                 <div class="pricing-price timer" data-from="0" data-to="<?php echo $_POST['j1score']; ?>" data-speed="2000" data-refresh-interval="50" style="color:#F7B40A;font-size:320%"></div>
                 </BR> </BR>
                 <p class="pricing-sentence" style="font-size:200%"><?php echo $_POST['equipe1']; ?></p>
             </div>
             <div class="argent wow fadeInLeft" data-wow-duration="1s" data-wow-delay="1.3s"  style="float:none; display: inline-block;">
             <img src="images/silver.svg" height="100em"></img>
                 <h3 class="pricing-title">2 eme</h3>
                 </BR>
                 <div class="pricing-price timer" data-from="0" data-to="<?php echo $_POST['score2']; ?>" data-speed="2000" data-refresh-interval="50" style="color:#606060; font-size:240%"></div>
            </BR> </BR>
              <p class="pricing-sentence" style="font-size:160%"><?php echo $_POST['equipe2']; ?></p>
             </div>
             <div class="bronze wow fadeInLeft" data-wow-duration="1s" data-wow-delay="1.1s" style="float:none; display: inline-block;">
            <img src="images/bronze.svg" height="100em"></img>
                 <h3 class="pricing-title">3 eme</h3>
                 </BR>
<div class="pricing-price timer" data-from="0" data-to="<?php echo $_POST['score3']; ?>" data-speed="2000" data-refresh-interval="50" style="color:#A34902; font-size:180%"></div>
          </BR> </BR>
          <p class="pricing-sentence" style="font-size:130%"><?php echo $_POST['equipe3']; ?></p>
             </div>



_n3o_

Help les copains, c'est la derniere ligne droite :/



tilowil

#27
Salut,
Je croyais que ca marchait. ;)

Tu utilises mysqli, donc tu dois toujours avoir la requête qui te sort le top 3 (celle avec le limit 3). C'est vrai qu'elle te sort le top 3 en 1 fois, mais si tu regardes le code pour l'affichage on lit chaque ligne 1 à 1 (fetch). Tu adaptes cette partie (dans le fetch) avec ton code precedent, simplissime :D.

A+

[Edit] Au pire colle ton code de la partie top 3 et ce soir je te pond un truc pour réutiliser ton ancien code, sauf si quelqu'un d'autre ne te le fait avant.

A+

_n3o_

#28
Vu mes faibles competances je pense qu'il est plus judicieux de te c/c mon code actuel dans lequel je veut integrer les 3 scores ;)

<div class="fh5co-pricing-style-2 row" style="width:100%;background-color:transparent;padding:0 0;">
<div style="margin:0 auto;display:inline-block;padding:0 0 0 10px; text-align:center;">

             <div class="or wow fadeInLeft" data-wow-duration="1s" data-wow-delay="1.6s"  style="float:none; display: inline-block;">
                 <img src="images/gold.svg" height="100em"></img>
                 <h3 class="pricing-title">1 er</h3>
                 </BR>
                 <div class="pricing-price timer" data-from="0" data-to="<?php echo $_POST['j1score']; ?>" data-speed="2000" data-refresh-interval="50" style="color:#F7B40A;font-size:320%"></div>
                 </BR> </BR>
                 <p class="pricing-sentence" style="font-size:200%"><?php echo $_POST['equipe1']; ?></p>
             </div>
             <div class="argent wow fadeInLeft" data-wow-duration="1s" data-wow-delay="1.3s"  style="float:none; display: inline-block;">
             <img src="images/silver.svg" height="100em"></img>
                 <h3 class="pricing-title">2 eme</h3>
                 </BR>
                 <div class="pricing-price timer" data-from="0" data-to="<?php echo $_POST['score2']; ?>" data-speed="2000" data-refresh-interval="50" style="color:#606060; font-size:240%"></div>
            </BR> </BR>
              <p class="pricing-sentence" style="font-size:160%"><?php echo $_POST['equipe2']; ?></p>
             </div>
             <div class="bronze wow fadeInLeft" data-wow-duration="1s" data-wow-delay="1.1s" style="float:none; display: inline-block;">
            <img src="images/bronze.svg" height="100em"></img>
                 <h3 class="pricing-title">3 eme</h3>
                 </BR>
<div class="pricing-price timer" data-from="0" data-to="<?php echo $_POST['score3']; ?>" data-speed="2000" data-refresh-interval="50" style="color:#A34902; font-size:180%"></div>
          </BR> </BR>
          <p class="pricing-sentence" style="font-size:130%"><?php echo $_POST['equipe3']; ?></p>
             </div>
</div>


esthétiquement ca donne ca :





tilowil

Salut,

Excuse ma mauvaise écriture, Je te demandais le code avec l'appel à ta base mysql, pour que je puisse y integrer le code d'affichage. Sinon tu vas devoir ré-adapter le code que je vais te faire tout à l'heure, tant qu'a faire avoir une solution finale.

A+

_n3o_

je te mp mon index, l'appel de ma base suit exactement ce que tu as mis (nom de base, nom des tables, etc)



tilowil

Salut,

En reprenant un partie de ton code envoyé en MP, voici la partie pour le top 3.
Le code est perfectible, en mutualisant certaines parties. Je n'avais qu'une petite heure devant moi.
Je n'ai pas tes données et ton css, je n'ai donc pas pu tester mais je n'ai pas du laisser trop de bugs.
J'ai repris ton code HTML pour l'affichage du top 3 en le passant en echo le HTML (ce qui ne change rien), mais simplement pour n'avoir qu'un seul bloc PHP.


<?php 
  $liendb 
= ($GLOBALS["___mysqli_ston"] = mysqli_connect('localhost',  'root',  'root')) or die('Impossible de se connecter : ' mysqli_error($GLOBALS["___mysqli_ston"])); 
  
mysqli_select_db($liendbtest); 
  
$sql 'select @rang := @rang + 1 as rang, Joueur,Score from JoueurScore a cross join (select @rang:=0) b ORDER BY Score DESC limit 3'
  
$req mysqli_query($GLOBALS["___mysqli_ston"], $sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysqli_error($GLOBALS["___mysqli_ston"])); 
  
// On affiche le top 3 
  // J'ai passé ton code html en echo pour ne pas sortir du mode php puis y entrer à nouveau.
  
echo '<div class="fh5co-pricing-style-2 row" style="width:100%;background-color:transparent;padding:0 0;">';
echo '<div style="margin:0 auto;display:inline-block;padding:0 0 0 10px; text-align:center;">';
  while(
$data mysqli_fetch_assoc($req)) 
  { 
    if (
$data['rang'] == 1)
    {
   echo '<div class="or wow fadeInLeft" data-wow-duration="1s" data-wow-delay="1.6s"  style="float:none; display: inline-block;">';
       echo 
'<img src="images/gold.svg" height="100em"></img>';
       echo 
'<h3 class="pricing-title">1 er</h3>';
   echo '</BR>';
   echo '<div class="pricing-price timer" data-from="0" data-to="'.$data['Score'].'" data-speed="2000" data-refresh-interval="50" style="color:#F7B40A;font-size:320%"></div>';
   echo '</BR> </BR>';
   echo '<p class="pricing-sentence" style="font-size:200%">'.$data['Joueur'].'</p>';
   echo '</div>';
    }
    else if (
$data['rang'] == 2)
    {
   echo '<div class="argent wow fadeInLeft" data-wow-duration="1s" data-wow-delay="1.3s"  style="float:none; display: inline-block;">';
   echo '<img src="images/silver.svg" height="100em"></img>';
   echo '<h3 class="pricing-title">2 eme</h3>'
   echo '</BR>';
   echo '<div class="pricing-price timer" data-from="0" data-to="'.$data['Score'].'" data-speed="2000" data-refresh-interval="50" style="color:#606060; font-size:240%"></div>';
       echo 
'</BR> </BR>';
   echo '<p class="pricing-sentence" style="font-size:160%">'.$data['Joueur'].'</p>';
   echo '</div>';
    }
    else if (
$data['rang'] == 3)
    {
   echo '<div class="bronze wow fadeInLeft" data-wow-duration="1s" data-wow-delay="1.1s" style="float:none; display: inline-block;">';
   echo '<img src="images/bronze.svg" height="100em"></img>';
   echo '<h3 class="pricing-title">3 eme</h3>';
   echo '</BR>';
 echo '<div class="pricing-price timer" data-from="0" data-to="'.$data[Score].'" data-speed="2000" data-refresh-interval="50" style="color:#A34902; font-size:180%"></div>';
   echo '</BR> </BR>';
   echo '<p class="pricing-sentence" style="font-size:130%">'.$data['Joueur'].'</p>';
   echo '</div>';
    }
  } 
  
  
// on ferme la connexion a mysql 
  
((is_null($___mysqli_res mysqli_close($liendb))) ? false $___mysqli_res); 
  echo 
'</div>';
?>



Bon test.