Forums Développement Multimédia

Aller au contenu

Ajouter un bouton supprimer lier à la base de donnée :

CODE PHP MySQL

6 réponses à ce sujet

#1 Valbuena72

    Ceinture Jaune

  • Members
  • PipPip
  • 25 messages

Posté 31 July 2013 - 12:03 PM

Bonjour,
Je souhaiterais sur cette page, ou j'ai mis le lien supprimer : http://217.16.12.195...+--+Road+Course

Que ça efface depuis la base de donnée. j'ai essayé pas mal de truc mais rien de convaincant.
Pour moi le code est trop complex :

<?php
   $pageName = "hotlaps.php";

   include "inc.config.php";
   error_reporting($reportLevel);
   include "inc.common.php";
   include "inc.mysqli.conn.php";
   include "inc.requests.php";

   $TrackName = "";
   $prevTrackNameSelected = "";
   if(isset($_GET["TrackName"])){
          $TrackName = urldecode($_GET["TrackName"]);
          if(validateNameVars($TrackName) === true){
                 $prevTrackNameSelected = urldecode($_GET["TrackName"]);
          }else{
                 $TrackName = "";
                 writeErrorLog($pageName, "urlGetTrackName", "The value of URL GET parameter [TrackName] did not pass validation. Value: (" . $_GET["TrackName"] . ")");
          }
   }

   if(isset($_POST["TrackName"])){
          $TrackName = $_POST["TrackName"];
          if(validateNameVars($TrackName) === true){
          }else{
                 $TrackName = "";
                 writeErrorLog($pageName, "postTrackName", "The value of POST parameter [TrackName] did not pass validation. Value: (" . $_POST["TrackName"] . ")");
          }
   }

   $VehicleClass = "ALL";
   if(isset($_POST["VehicleClass"])){
          $VehicleClass = $_POST["VehicleClass"];
          if(validateNameVars($VehicleClass) === true){
          }else{
                 $VehicleClass = "";
                 writeErrorLog($pageName, "postVehicleClass", "The value of POST parameter [VehicleClass] did not pass validation. Value: (" . $_POST["VehicleClass"] . ")");
          }
   }

   if($TrackName != $prevTrackNameSelected){
          $VehicleClass = "ALL";
   }
?>
<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>
<html>
<head>
<meta http-equiv='pragma' content='no-cache'>
<meta http-equiv='cache-control' content='no-cache'>
<meta http-equiv='expires' content='0'>
<meta http-equiv='content-type' content='text/html; charset=<?php echo $siteCharSet; ?>'>
<title>VM LiveView Lite (Hotlaps)</title>
<link rel='stylesheet' type='text/css' href='<?php echo $siteURL; ?>/styles.css'>
</head>
<body>
<div class='center'>
<div class='break4'></div>
<?php
   echo "<div class='sitename'>" . $siteName . "</div>\n";
   try{
          $gameID = 0;

          if(!$mySQLiConn->connect_error){
                 $selectGameID = "SELECT SQL_CACHE `GameID` FROM `sessioninfos` WHERE `ID` = '1' LIMIT 1";
                 if($resultGameID = $mySQLiConn->query($selectGameID)){
                        if($resultGameID->num_rows == 1){
                           while($rowGameID = $resultGameID->fetch_assoc()){
                                  $gameID = $rowGameID["GameID"];
                           }
                        }
                        $resultGameID->free();
                 }

                 $arrayTrackNames = array();
                 $selectTrackNames = "SELECT DISTINCT SQL_CACHE `TrackName` FROM `hotlaps`";
                 if($resultTrackNames = $mySQLiConn->query($selectTrackNames)){
                        if($resultTrackNames->num_rows > 0){
                           while($rowTrackNames = $resultTrackNames->fetch_assoc()){
                                  $arrayTrackNames[] = $rowTrackNames["TrackName"];
                           }
                        }
                        $resultTrackNames->free();
                 }

                 $arrayClasses = array();
                 $selectClasses = "SELECT DISTINCT SQL_CACHE `VehicleClass` FROM `hotlaps` WHERE `TrackName` = '" . $mySQLiConn->real_escape_string($TrackName) . "' ORDER BY `VehicleClass`";
                 if($resultClasses = $mySQLiConn->query($selectClasses)){
                        if($resultClasses->num_rows > 0){
                           while($rowClasses = $resultClasses->fetch_assoc()){
                                  $arrayClasses[] = $rowClasses["VehicleClass"];
                           }
                        }
                        $resultClasses->free();
                 }

                 if($VehicleClass == "ALL"){
                        $VehicleClass = "%";
                 }

                 $selectHotlaps = "SELECT SQL_CACHE * FROM `hotlaps` WHERE `TrackName` = '" . $mySQLiConn->real_escape_string($TrackName) . "' AND `VehicleClass` LIKE '" . $mySQLiConn->real_escape_string($VehicleClass) . "' ORDER BY `TrackName` ASC, `LapTime`, `LastUpdate`";

                 if($TrackName == "ALL"){
                        $selectHotlaps = "SELECT SQL_CACHE * FROM `hotlaps` ORDER BY `TrackName` ASC, `LapTime`, `LastUpdate`";
                 }

                 if($resultHotlaps = $mySQLiConn->query($selectHotlaps)){
                        if($resultHotlaps->num_rows > 0){
                           $hotlapRank = 1;
                           $prevTrackName = "";
                           $prevLapTime = 0;

                           $thTrackName = "";
                           if($TrackName == "ALL"){
                                  $thTrackName = "<th class='hotlaps' title='Track'>Track</th>";
                           }

                           echo "<div class='break4'></div>\n";

                           echo "<form name='Hotlaps' action='" . $siteURL . "/hotlaps.php?TrackName=" . urlencode($TrackName) . "' method='POST'>\n";
                           echo "<fieldset>\n";
                           echo "<legend>\n";
                           echo "Hotlaps <select name='TrackName' onchange='document.Hotlaps.submit()'>\n";
                           $selectedTrackName = "";
                           if($TrackName == "ALL"){
                                  $selectedTrackName = " selected='selected'";
                           }
                           echo "<option value='ALL'" . $selectedTrackName . ">ALL</option>\n";
                           foreach($arrayTrackNames as $valueTrackName){
                                  if($valueTrackName == $TrackName){
                                         $selectedTrackName = " selected='selected'";
                                  }else{
                                         $selectedTrackName = "";
                                  }
                                  echo "<option value='" . $valueTrackName . "'" . $selectedTrackName . ">" . $valueTrackName . "</option>\n";
                           }
                           echo "</select>\n";
                           echo "Class <select name='VehicleClass' onchange='document.Hotlaps.submit()'>\n";
                           $selectedClass = "";
                           if($VehicleClass == "ALL"){
                                  $selectedClass = " selected='selected'";
                           }
                           echo "<option value='ALL'" . $selectedClass . ">ALL</option>\n";
                           foreach($arrayClasses as $valueClass){
                                  if($valueClass == $VehicleClass){
                                         $selectedClass = " selected='selected'";
                                  }else{
                                         $selectedClass = "";
                                  }

                                  $displayClass = $valueClass;
                                  switch($valueClass){
                                         case $class1RealName:
                                                $displayClass = $class1DisplayName;
                                                break;

                                         case $class2RealName:
                                                $displayClass = $class2DisplayName;
                                                break;

                                         case $class3RealName:
                                                $displayClass = $class3DisplayName;
                                                break;

                                         case $class4RealName:
                                                $displayClass = $class4DisplayName;
                                                break;
                                  }

                                  echo "<option value='" . $valueClass . "'" . $selectedClass . ">" . $displayClass . "</option>\n";
                           }
                           echo "</select>\n";
                           echo "</legend>\n";
                           echo "<table>\n";
                           echo "<tr>" . $thTrackName .
                                                 "<th class='hotlaps' title='Rank'>Rank</th>" .
                                                 "<th class='hotlaps' title='Driver Name'>Driver</th>" .
                                                 "<th class='hotlaps' title='Vehicle Class'>Class</th>" .
                                                 "<th class='hotlaps' title='Vehicle'>Vehicle</th>" .
                                                 "<th class='hotlaps' title='Timed Laps'>Laps</th>" .
                                                 "<th class='hotlaps' title='Sector Time 1'>Sector1</th>" .
                                                 "<th class='hotlaps' title='Sector Time 2'>Sector2</th>" .
                                                 "<th class='hotlaps' title='Sector Time 3'>Sector3</th>" .
                                                 "<th class='hotlaps' title='Lap Time'>Lap Time</th>" .
                                                 "<th class='hotlaps' title='Gap to Best'>Gap</th>" .
                                                 "<th class='hotlaps' title='Gap to Next'>Interval</th>" .
                                                 "<th class='hotlaps' title='Session'>Session</th>" .
                                                 "<th class='hotlaps' title='Last Update'>Last Update</th>" .
                                        "</tr>\n";

                                  while($row = $resultHotlaps->fetch_assoc()){
                                         $tdTrackName = "";
                                         if($TrackName == "ALL"){
                                                $tdTrackName = "<td class='center'>" . $row["TrackName"] . "</td>";

                                                if($prevTrackName != $row["TrackName"]){
                                                   $hotlapRank = 1;
                                                }
                                         }

                                         $sessionName = setSessionName($row["Session"], $gameID);

                                         $gapToBestLap = 0;
                                         if($hotlapRank == 1){
                                                $absBestLap = $row["LapTime"];
                                                $prevLapTime = $row["LapTime"];
                                         }
                                         $gapToBestLap = $gapToBestLap = number_format($row["LapTime"] - $absBestLap, 3);
                                         if($gapToBestLap <= 0){
                                                $gapToBestLap = "-";
                                         }else{
                                                $gapToBestLap = "+" . $gapToBestLap;
                                         }

                                         $gapToNextLap = number_format($row["LapTime"] - $prevLapTime, 3);
                                         if($gapToNextLap <= 0){
                                         $gapToNextLap = "-";
                                         }else{
                                                $gapToNextLap = "+" . $gapToNextLap;
                                         }

                                         $vehicleClass = $row["VehicleClass"];
                                         switch($vehicleClass){
                                                case $class1RealName:
                                                   $vehicleClass = "<span style='color:" . $class1Color . ";'>" . $class1DisplayName . "</span>";
                                                   $lapTime = "<span style='color:" . $class1Color . ";'>" . formatLapTime($row["LapTime"]) . "</span>";
                                                   $gapToNextLap = "<span style='color:" . $class1Color . ";'>" . $gapToNextLap . "</span>";
                                                   break;

                                                case $class2RealName:
                                                   $vehicleClass = "<span style='color:" . $class2Color . ";'>" . $class2DisplayName . "</span>";
                                                   $lapTime = "<span style='color:" . $class2Color . ";'>" . formatLapTime($row["LapTime"]) . "</span>";
                                                   $gapToNextLap = "<span style='color:" . $class2Color . ";'>" . $gapToNextLap . "</span>";
                                                   break;

                                                case $class3RealName:
                                                   $vehicleClass = "<span style='color:" . $class3Color . ";'>" . $class3DisplayName . "</span>";
                                                   $lapTime = "<span style='color:" . $class3Color . ";'>" . formatLapTime($row["LapTime"]) . "</span>";
                                                   $gapToNextLap = "<span style='color:" . $class3Color . ";'>" . $gapToNextLap . "</span>";
                                                   break;

                                                case $class4RealName:
                                                   $vehicleClass = "<span style='color:" . $class4Color . ";'>" . $class4DisplayName . "</span>";
                                                   $lapTime = "<span style='color:" . $class4Color . ";'>" . formatLapTime($row["LapTime"]) . "</span>";
                                                   $gapToNextLap = "<span style='color:" . $class4Color . ";'>" . $gapToNextLap . "</span>";
                                                   break;

                                                default:
                                                   $vehicleClass = "<span class='classUC'>" . $row["VehicleClass"] . "</span>";
                                                   $lapTime = "<span class='classUC'>" . formatLapTime($row["LapTime"]) . "</span>";
                                                   $gapToNextLap = "<span class='classUC'>" . $gapToNextLap . "</span>";
                                                   break;
                                         }

                                         $trClass = "'bg0'";
                                         if(($hotlapRank % 2) == 0){$trClass = "'bg1'";}

                                         echo "<tr class=".$trClass.">" . $tdTrackName .
                                                                                                  "<td class='center'>" . $hotlapRank . "</td>" .
                                                                                                  "<td>" . $row["DriverName"] . "</td>" .
                                                                                                  "<td class='center'>" . $vehicleClass . "</td>" .
                                                                                                  "<td>" . $row["Vehicle"] . "</td>" .
                                                                                                  "<td class='center'>" . $row["TimedLaps"] . "</td>" .
                                                                                                  "<td class='righttime'>" . formatLapTime($row["Sec1"]) . "</td>" .
                                                                                                  "<td class='righttime'>" . formatLapTime($row["Sec2"]) . "</td>" .
                                                                                                  "<td class='righttime'>" . formatLapTime($row["Sec3"]) . "</td>" .
                                                                                                  "<td class='righttime'>" . $lapTime . "</td>" .
                                                                                                  "<td class='right'>" . $gapToBestLap . "</td>" .
                                                                                                  "<td class='right'>" . $gapToNextLap . "</td>" .
                                                                                                  "<td class='center'>" . $sessionName . "</td>" .
                                                                                                  "<td>" . $row["LastUpdate"] . "</td>" .
                                                  "</tr>\n";

                                         $hotlapRank ++;
                                         $prevTrackName = $row["TrackName"];
                                         $prevLapTime = $row["LapTime"];
                                  }

                           echo "</table>\n";
                           echo "</fieldset>\n";
                           echo "<input type='hidden' name='PreviousTrackName' value='" . $prevTrackNameSelected . "' >\n";
                           echo "</form>\n";
                        }else{
                           echo "<div class='break12'></div>\n";
                           echo "<div class='red'>No records found.</div>\n";
                        }
                        $resultHotlaps->free();
                 }
                 $mySQLiConn->close();
          }else{
                 echo $mySQLiConnError;
          }

          include "inc.copyright.php";
   }catch(Exception $ex){
          writeErrorLog($pageName, "General Exception", "Exception Msg: (" . $ex->getMessage() . ")");
   }
?>
</div>
</body>
</html>

 

Merci beaucoup
Bonne journée

#2 dcz.switcher

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 2531 messages

Posté 31 July 2013 - 21:26 PM

Salut,

Le lien ne fonctionne pas, il s'agit d'un serveur interne ?

Le code étant un peu complexe, ça pourrait aider de voir à quoi ressemble la page
"Ce que l'on conçoit bien s'énonce clairement et les mots pour le dire arrivent aisément"

embryon de site

#3 Valbuena72

    Ceinture Jaune

  • Members
  • PipPip
  • 25 messages

Posté 01 August 2013 - 06:33 AM

http://217.16.12.195...Int+Road+Course
Hop ici, non c'est un serveur dédié windows avec Wamps

#4 dcz.switcher

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 2531 messages

Posté 01 August 2013 - 12:04 PM

Ok, une approche serait de simplement ajouter un lien qui pointe sur une url en lui passant en paramètre l'id du circuit

quelque chose dans ce goût là


<a class="delete-link" href="delete_track?track_id=<?php echo $track_id; ?>">Supprimer</a>
 

Avant d'envoyer la demande de suppression, tu utilises du javascript (+ jQuery ici) pour demander une confirmation, par exemple

$('.delete-link').on('click', function (e) {
    if (!confirm("Delete this track')) {
            e.preventDefault();
    }
});

Côté serveur, tu supprimes le circuit et redirige vers la même page


<?php
    $track_id = $_GET['track_id'];
    // suppression du circuit
    $sql = "DELETE FROM tracks WHERE track_id = $track_id";

    // redirection sur la liste
    header('Location: track_list');
?>
 

Ou alors, tu peux simplement rappeler la même page, toujours par un lien qui contient l'id du circuit et tester avant d'afficher la page si l'id est présent, et si oui, le supprimer avant d'afficher la page (ça évite la redirection par le header PHP)


Une autre approche serait d'utiliser un appel ajax pour supprimer le circuit et au retour, effacer la ligne ...

A toi de voir comment tu veux aborder le problème par rapport à tes connaissances et du temps dispo
"Ce que l'on conçoit bien s'énonce clairement et les mots pour le dire arrivent aisément"

embryon de site

#5 Valbuena72

    Ceinture Jaune

  • Members
  • PipPip
  • 25 messages

Posté 01 August 2013 - 14:01 PM

Si tu supprime le circuit, tu supprimes tout le tableau ?
sinon, en prennant en compte le nom du pilote dans l'url
Mes connaissances sont basiques...pas vraiment réussir à faire un script tout seul.
Pourquoi on doit tester "l'id" si il est présent ?

#6 dcz.switcher

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 2531 messages

Posté 01 August 2013 - 20:44 PM

En effet, il ne faut pas passer l'id du circuit mais bien celui du pilote (j'ai regardé en diagonal et pensais qu'il s'agissait d'une liste de circuits)

Pour commencer, tu peux faire un simple lien qui afficherait le détail d'un pilote

Pour cela, tu construits le lien dans ta boucle PHP en récupérant l'id du pilote

si par exemple cet id est driver_id, tu fais


<?php
        $link = '<a href="detail_pilote?id=' . $driver_id . '">supprimer</a>';
?>
 

Citation

Pourquoi on doit tester "l'id" si il est présent ?

Tu veux parler de la confirmation en javascript ?
"Ce que l'on conçoit bien s'énonce clairement et les mots pour le dire arrivent aisément"

embryon de site

#7 Valbuena72

    Ceinture Jaune

  • Members
  • PipPip
  • 25 messages

Posté 03 August 2013 - 19:36 PM

J'ai réussi à faire un accès réservé par session et avec un formulaire :
Le lien dans le tableau :
"<td>" . '<a href="suppr.php?id='.$row['ID'].'">Delete</a>' . "</td>";

Fichier suppr.php

  • [list]
    [*]<?php
    [*]header('Content-Type: text/html; charset=utf-8');
    [*][color=green][i]// Destruction de la session ?[/i][/color]
    [*][color=blue]if[/color] ((isset($_GET['action'])) && ($_GET['action'] == 'logout'))
    [*]{
    [*] $_SESSION = array();
    [*] session_destroy();
    [*] session_start();
    [*]}
    [*]
    [*]
    [*]$_SESSION['login'] = '';
    [*]$_SESSION['password'] = '';
    [*]
    [*][color=blue]if[/color] (isset($_POST['submit']))
    [*]{
    [*] $login = (isset($_POST['login'])) ? $_POST['login'] : '';
    [*] $pass =  (isset($_POST['pass']))  ? $_POST['pass']  : '';
    [*]
    [*] [color=blue]if[/color] (($login == "Valbuena72" ) && ($pass == "xxxx" )) [color=green][i]// Mode connecter[/i][/color]
    [*] {
    [*]  [color=blue]if[/color](isset($_GET['id']))
    [*]     {
    [*]     $con = mysql_connect("localhost","xxxxx","xxxx" );
    [*]     [color=blue]if[/color] (!$con)
    [*]       {
    [*]       die('Could not connect: ' . mysql_error());
    [*]       }
    [*]     mysql_select_db("vmliveview02", $con);
    [*]     $id = $_GET['id'];
    [*]     $result =  mysql_query("[color=blue]delete[/color] FROM hotlaps where id=$id" );
    [*]  $_SESSION['login'] = "Valbuena72";
    [*]  $_SESSION['password'] = "xxxx";
    [*]  echo '<p style="color:#FF0000; font-weight:bold;">Supprimer avec sucès</p>';
    [*]}}
    [*]
    [*] [color=blue]else[/color] [color=green][i]// Mode non admin[/i][/color]
    [*] {
    [*]  echo '<p style="color:#FF0000; font-weight:bold;">Vous pouvez pas supprimer</p>';
    [*] }
    [*]
    [*]}
    [*]
    [*][color=blue]if[/color] (!isset($_POST['submit']))
    [*]{
    [*] echo '
    [*] <form id="conn" method="post" action="">
    [*]  <p><label [color=blue]for[/color]="login">Login :</label><input type="text" id="login" name="login" /></p>
    [*]  <p><label [color=blue]for[/color]="pass">Mot de Passe :</label><input type="password" id="pass" name="pass" /></p>
    [*]  <p><input type="submit" id="submit" name="submit" value="Connexion" /></p>
    [*] </form>'
    ;
    [*]}; [color=green][i]// fin [color=blue]if[/color] (!isset($_POST['submit'])))[/i][/color]
    [*]
    [*]?>
     
[/list]

Merci de ton aide en tous cas



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP