Supprimer, modifier un enregistrement en mysql / php ?

Salam 3alaykom,

Je viens de crée une base de donnée en PHPmyAdmin sous le nom de "test" , ma table se prénomme "capitales" elle est composé de 2 champs qui sont "id" et "nom".

Ce que je désirais faire, c'est manipuler des enregistrements, donc ajouter un enregistrement, modifier, visualiser, et supprimer...

A ce jour j'ai réussi à développer 3 manipulations sur 4 ...

Je sais ajouter un enregistrement

http://hpics.li/8b4c3c5

Je peux également supprimer un enregistrement

http://hpics.li/3b387fb

Puis visualiser afin de voir si l'enregistrement est bien effacer

http://hpics.li/b5606f5

Mais je galère à faire la "modification"

Code:
$choix="";
  if (isset($_POST['ajout']))
  {
  $choix="ajout";
  }
  if (isset($_POST['ajout2']))
  {
  $choix="ajout2";
  }
  if (isset($_POST['visu']))
  {
  $choix="visu";
  }
  if (isset($_POST['del']))
  {
  $choix="del";
  }

if (isset($_POST['mod']))        // normalement c'est bon ?
  {
  $choix="mod";
  }

switch($choix){

Et puis c'est ici que je galère.... Je ne vois pas quelle condition il faut passer ??? Et ma requête SQL est-elle exacte ça fait presque 6 mois que j'en ai plus taper une... :p

Code:
case "mod":
  $check=$_POST['check'];
  if ???????{
  $sql="UPDATE capitales SET nom='Blad' ('".$_POST['nom']."') WHERE id='29'('".$arr[0]."')";
  $pdo->exec($sql);
  }
  header("location:sql1.html");
  break;

  default :

  }

Merci à ceux qui pourront m'aider. :D:rouge:
 
Dernière édition:

farid_h

<defunct>
Contributeur
Fais un

Code:
print $sql;

avant de l'executer, pour voir le SQL que tu generes dynamiquement. Ca donne quoi?
 
Fais un

Code:
print $sql;

avant de l'executer, pour voir le SQL que tu generes dynamiquement. Ca donne quoi?

Salam Farid_h,

Merci pour ton aide , alors ça me donne ceci

Code:
UPDATE capitales SET nom='Blad' WHERE id='29'

http://hpics.li/c687e79

Je pense qu'il y a un autre problème avant de faire la requete en sql, (je me suis trompé), il faudrait d'abord créer un second formulaire pour pouvoir faire la modification de l'enregistrement; et ça je n'ai pas fais...

Donc par exemple on coche un enregistrement et puis on clique sur le bouton "modifier"
(donc ça sa va , c'est fait)
http://hpics.li/3f10505

Et par après une page (pour l'instant vide) s'affiche
http://hpics.li/a8b841b

et là il faudrait que je mette un autre formulaire où il y aurait 2 boutons "modifier" "annuler" et à input de type "text" pour permettre à l'utilisateur de modifier l'enregistrement concernée

Mon soucis maintenant se situe plutôt dans l'algorithme ahahahahha

Bon je viens d'ajouter un case GotoModifier

Code:
if(isset ($_POST['GoToModifier']))
{
$choix="GoToModifier";
}

Donc j'ai ceci maintenant je vais devoir travailler sur mes switchs en particulier "Modifier" et "GoToModifier"

Code:
$choix="";
  if (isset($_POST['ajout']))
  {
  $choix="ajout";
  }
  if (isset($_POST['ajout2']))
  {
  $choix="ajout2";
  }
  if (isset($_POST['visu']))
  {
  $choix="visu";
  }
  if (isset($_POST['del']))
  {
  $choix="del";
  }

  if(isset ($_POST['Modifier']))
   {
   $choix="Modifier";
   }

  if(isset ($_POST['GoToModifier']))
   {
   $choix="GoToModifier";
   }

Donc ce que je veux déjà faire c'est que quand je coche un enregistrement et que je clique sur le bouton "modifier" il y a un formulaire qui apparait, et ça je n'arrive pas à le faire ahahah

Code:
case "GoToModifier":
     if(isset ($_POST['Check']))
       {
       $check=$_POST['Check'];
       $sql="select * from capitales WHERE `capitales`.`id` = ".$check[0].";";
       $smtp=$pdo->query($sql);
       $arr=$smtp->fetch();
  echo '<form action="sql.php" method="POST">
         <input type="text" name="id" value="'.$arr[0].'"/>
         <input type="text" name="nom" value="'.$arr[1].'"/>
         <input type="submit" name="Modifier" value="Modifier"/>
         <input type="submit" name="" value="Annuler"/>
         </form>';
  }

  break;

Si quelqu'un a une idée n'hésitez pas :p
 
Dernière édition:
Salam 3alaykom,

Je viens de trouvé la manip pour modifier un enregistrement, enfin ! :bizarre:

Voir en annexe les images, ce que ça donne avec du PHP/MySql/HTML5/SQL ... :mignon:

Pour les cases il fallait mettre un "Modifier" et un "GotoModifer" , le "GotoModifier" va permettre par après de générer un nouveau formulaire et à partir de là on va pouvoir modifier l'enregistrement.
Code:
$choix = "";

if(isset ($_POST['Modifier']))
   {
   $choix="Modifier";
   }
if(isset ($_POST['GoToModifier']))
   {
   $choix="GoToModifier";
   }
etc...

Donc ici comme je disais en haut, le GotoModifier va permettre de créer le formulaire , j'avais pas mis ça c'est pour ça que ça marchait pas.

Code:
case "GoToModifier":
     if(isset ($_POST['Check']))
       {   
       $check=$_POST['Check'];
       $sql="select * from capitales WHERE `capitales`.`id` = ".$check[0].";";
       $smtp=$pdo->query($sql);
       $arr=$smtp->fetch();
       echo "<div align='center' style='background-color:#207555; border:1px solid #756020; border-width:4 ; margin: 200 500; padding: 25'   >";
       echo'<form name="Form" action="sql.php" method="POST">
         <input type="text" name="id" value="'.$arr[0].'"/>
         <input type="text" name="nom" value="'.$arr[1].'"/>
         <input type="submit" name="Modifier" value="Modifier"/>
         <input type="submit" name="" value="Annuler"/>
         </form></div>';
       }
   break;

Code:
case "Modifier":
     $nom=$_POST['nom'];
     $id=$_POST['id'];
  $sql ="UPDATE `test`.`capitales` SET `nom` = '".$nom."' WHERE `capitales`.`id` = ".$id;
  $pdo->exec($sql);
   
  header ("location:sql.php");
   break;

Et le case "Modifier" vous passez votre requete en sql, elle va permettre de changer le nom de l'enregistrement par un autre.
 

Pièces jointes

  • 1.jpg
    1.jpg
    16.7 KB · Affichages: 2
  • 2.jpg
    2.jpg
    12.3 KB · Affichages: 2
  • 3.jpg
    3.jpg
    12.9 KB · Affichages: 2
  • 4.jpg
    4.jpg
    16.3 KB · Affichages: 2
Haut