insérer requête sql sur bouton afin de modifié la bdd

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : insérer requête sql sur bouton afin de modifié la bdd

Re: insérer requête sql sur bouton afin de modifié la bdd

par moogli » 27 avr. 2017, 14:31

code inutile :
<script>
$_post['Select']
</script>

de plus $_post n'existe pas (par défaut) c'est $_POST la casse des caractères est importante.
je ne parle pas du problème de syntaxe html sur le tag html (ah ben si en fait ;) ).
<?php
    //PHP avant tout
    if (!empty($_POST)) {
        //la connexion
        $connect = mysqli_connect("localhost", "root", "Mm101010", "smartphone");
         
        //la requete de recherche
        $query = "Select * from vu_affect_empl ";
        if (!empty($_POST["query"])) {
            $search = mysqli_real_escape_string($connect, $_POST["query"]);
            $query .= "WHERE USER_ID LIKE '";
            $query .= $search;
            $query .= "%' OR  USER_ID LIKE '";
            $query .= $search;
            $query .= "%' OR  Num_SIM LIKE '";
            $query .= $search;
            $query .= "%' ORDER BY Nom asc";
        } else {
            $query .= "ORDER BY USER_ID";
        }
        //Lancement de la requete
        $result = mysqli_query($connect, $query);
    }
 
?>
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8"/>
  <style type="text/css">
    .selected > td {
      background-color : pink;
      font-weight : bold;
    }
  </style>
  <script type="text/javascript">
      function changeValueOfCheckbox(check) {
        var tr = document.getElementById(check.value);
        var cssClass = tr.getAttribute('class');
        if (cssClass === null) {
          cssClass = '';
        }
        if (check.checked) {
          // add class selected
          cssClass += ' selecte';
        } else {
          // suppression class selected
          var sel = ' selecte';
          var i = cssClass.indexOf(sel);
          if (i > -1) {
            var tmp = cssClass.substring(0, i);
            tmp += cssClass.substring(i + sel.length);
            cssClass = tmp;
          }
        }
        tr.setAttribute('class', cssClass);
      }
  </script>
</head>
<body>
<?php
  if(isset($result) && mysqli_num_rows($result) > 0) {
?>
    <div class="table-responsive">
        <table class="table table bordered">
          <thead>
            <tr>
                <th>&nbsp;</td>
                <th>USER ID</th>
                <th>Nom</th>
                <th>Prenom</th>
                <th>Num SIM</th>
                <th>PIN Terminal</th>
                <th>PIN SIM</th>
                <th>Num EMEI</th>
                <th>Date Debut</th>
                <th>Date Fin</th>
                <th>Vitre</th>
                <th>Coque</th>
                <th>Support Vehicule</th>
                <th>Actif</th>
                <th>Or Affectation1</th>
                <th>Statut</th>
            </tr>
          </thead>
          <tbody>
<?php 
            while($row = mysqli_fetch_array($result)) {
?>
            <tr id="<?= $row["USER_ID"] ?>">
                <td><input type="checkbox" onchange="changeValueOfCheckbox(<?= $row["USER_ID"] ?>)"  name="Select[]" value="<?php echo $row['USER_ID'];?>" class="Selection"> </td>
                <td><?php echo $row["USER_ID"]; ?></td>
                <td><?php echo $row["Nom"]; ?></td>
                <td><?php echo $row["Prenom"]; ?></td>
                <td><?php echo $row["Num_SIM"]; ?></td>
                <td><?php echo $row["PIN_Terminal"]; ?></td>
                <td><?php echo $row["PIN_SIM"]; ?></td>
                <td><?php echo $row["Num_IMEI"]; ?></td>
                <td><?php echo $row["Date_Debut"]; ?></td>
                <td><?php echo $row["Date_Fin"]; ?></td>
                <td><?php echo $row["Vitre"]; ?></td>
                <td><?php echo $row["Coque"]; ?></td>
                <td><?php echo $row["Support_Vehicule"]; ?></td>
                <td><?php echo $row["Actif"]; ?></td>
                <td><?php echo $row["Or_Affectation1"]; ?></td>
                <td><?php echo $row["Statut"]; ?></td>
            </tr>
<?php
           }
           echo '</tbody></table>';
         } else { echo 'Pas enregistrement pour le moment'; }
?>
</body>
</html>
<?php 
mysqli_free_result($result);
mysqli_close($connect);
@+

Re: insérer requête sql sur bouton afin de modifié la bdd

par vink » 27 avr. 2017, 13:37

après de nombreuse tentative, j'ai rajouter $_post['Select'] mais je sais pas si je l'ai bien placé
voici le code
<?php
    //PHP avant tout
    if (!empty($_POST)) {
        //la connexion
        $connect = mysqli_connect("localhost", "root", "Mm101010", "smartphone");
         
        //la requete de recherche
        $query = "Select * from vu_affect_empl ";
        if (!empty($_POST["query"])) {
            $search = mysqli_real_escape_string($connect, $_POST["query"]);
            $query .= "WHERE USER_ID LIKE '";
            $query .= $search;
            $query .= "%' OR  USER_ID LIKE '";
            $query .= $search;
            $query .= "%' OR  Num_SIM LIKE '";
            $query .= $search;
            $query .= "%' ORDER BY Nom asc";
        } else {
            $query .= "ORDER BY USER_ID";
        }
        //Lancement de la requete
        $result = mysqli_query($connect, $query);
    }
 
?>
<!DOCTYPE html>
<htmls'
<head>
  <meta charset="utf-8"/>
<script>
    $_post['Select']
</script>
</head>
<body>
<?php
  if(isset($result) && mysqli_num_rows($result) > 0) {
?>
    <div class="table-responsive">
        <table class="table table bordered">
            <tr onclick="SelectLigne(this)">
                <td>&nbsp;</td>
                <th>USER ID</th>
                <th>Nom</th>
                <th>Prenom</th>
                <th>Num SIM</th>
                <th>PIN Terminal</th>
                <th>PIN SIM</th>
                <th>Num EMEI</th>
                <th>Date Debut</th>
                <th>Date Fin</th>
                <th>Vitre</th>
                <th>Coque</th>
                <th>Support Vehicule</th>
                <th>Actif</th>
                <th>Or Affectation1</th>
                <th>Statut</th>
            </tr>
<?php 
            while($row = mysqli_fetch_array($result)) {
?>
            <tr id="selecte">
                <td><input type="checkbox" onchange="changeValueOfCheckbox(this)"  name="Select[]" value="<?php echo $row['USER_ID'];?>" class="Selection"> </td>
                <td><?php echo $row["USER_ID"]; ?></td>
                <td><?php echo $row["Nom"]; ?></td>
                <td><?php echo $row["Prenom"]; ?></td>
                <td><?php echo $row["Num_SIM"]; ?></td>
                <td><?php echo $row["PIN_Terminal"]; ?></td>
                <td><?php echo $row["PIN_SIM"]; ?></td>
                <td><?php echo $row["Num_IMEI"]; ?></td>
                <td><?php echo $row["Date_Debut"]; ?></td>
                <td><?php echo $row["Date_Fin"]; ?></td>
                <td><?php echo $row["Vitre"]; ?></td>
                <td><?php echo $row["Coque"]; ?></td>
                <td><?php echo $row["Support_Vehicule"]; ?></td>
                <td><?php echo $row["Actif"]; ?></td>
                <td><?php echo $row["Or_Affectation1"]; ?></td>
                <td><?php echo $row["Statut"]; ?></td>
            </tr>
<?php
           } } else { echo 'Pas enregistrement pour le moment'; }
?>
<script>
    function changeValueOfCheckbox(check) {
      var tr = document.getElementById(check.value);
      var cssClass = tr.getAttribute('class');
      if (cssClass === null) {
        cssClass = '';
      }
      if (check.checked) {
        // add class selected
        cssClass += ' selecte';
      } else {
        // suppression class selected
        var sel = ' selecte';
        var i = cssClass.indexOf(sel);
        if (i > -1) {
          var tmp = cssClass.substring(0, i);
          tmp += cssClass.substring(i + sel.length);
          cssClass = tmp;
        }
      }
      tr.setAttribute('class', cssClass);
    }
</script>
</body>
merci

Re: insérer requête sql sur bouton afin de modifié la bdd

par moogli » 21 avr. 2017, 11:17

essai de lire mon message php-debutant/inserer-requete-sql-sur-bo ... l#2p453929 lentement et en entier pour bien voir ce qu'il te manque.
tout est dans le message, sauf le code complet c'est vrai, mais l'explication y est.

tu a aussi la ligne d'erreur donc en cherchant un peux pourquoi tu as cette erreur tu devrais aussi pouvoir avancer.

@+

Re: insérer requête sql sur bouton afin de modifié la bdd

par vink » 20 avr. 2017, 17:47

j'ai tou essayé mais je n'y arrive pas a trouvé l'erreur je suis un noub

Re: insérer requête sql sur bouton afin de modifié la bdd

par vink » 20 avr. 2017, 15:36

c'est sur cette ligne que j'ai l'erreur : var cssClass = tr.getAttribute('class');?

Re: insérer requête sql sur bouton afin de modifié la bdd

par moogli » 20 avr. 2017, 14:43

as tu compris ce que fait ce code ?

quand ce sera le cas tu comprendras pourquoi tu as cette erreur.

tu peux aussi relire le message avec le code JS pour voir où t'as foiré le copier collé !

@+

Re: insérer requête sql sur bouton afin de modifié la bdd

par vink » 20 avr. 2017, 14:38

pour la selection sa ne fonctionne toujours pas après de nombreuse tentative, il m'affiche se mot dans firebug : TypeError: tr is null select_...leau.js (ligne 3, col. 11)
code de ma page
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8"/>
</head>
<body>
<?php
  if(isset($result) && mysqli_num_rows($result) > 0) {
?>
    <div class="table-responsive">
        <table class="table table bordered">
            <tr>
               <th>&nbsp;</th>
               <th>Operateur</th>
               <th>Num SIM</th>
               <th>PUK</th>
               <th>Num ligne</th>
               <th>Volume</th>
               <th>Statut abo</th>
            </tr>
<?php 
            while($row = mysqli_fetch_array($result)) {
?>
            <tr class="selected">
                <td><input type="checkbox" onchange="changeValueOfCheckbox(this)" name="Selected" value="<?php echo $row['Operateur'];?>" > </td>
                <td class="ui-widget-content" name="selected"><?php echo $row["Operateur"]; ?></td>
                <td class="ui-widget-content" name="selected"><?php echo $row["Num_SIM"]; ?></td>
                <td class="ui-widget-content" name="selected"><?php echo $row["PUK"]; ?></td>
                <td class="ui-widget-content" name="selected"><?php echo $row["Num_ligne"]; ?></td>
                <td class="ui-widget-content" name="selected"><?php echo $row["Volume"]; ?></td>
                <td class="ui-widget-content" name="selected"><?php echo $row["Statut_abo"]; ?></td>
            </tr>
<?php
js:
function changeValueOfCheckbox(check) {
      var tr = document.getElementById(check.value);
      var cssClass = tr.getAttribute('class');
      if (cssClass === null) {
        cssClass = '';
      }
      if (check.checked) {
        // add class selected
        cssClass += ' selected';
      } else {
        // suppression class selected
        var sel = ' selected';
        var i = cssClass.indexOf(sel);
        if (i > -1) {
          var tmp = cssClass.substring(0, i);
          tmp += cssClass.substring(i + sel.length);
          cssClass = tmp;
        }
      }
      tr.setAttribute('class', cssClass);
    }

Re: insérer requête sql sur bouton afin de modifié la bdd

par moogli » 19 avr. 2017, 16:55

si tu ne sais pas comment fonctionne la validation d'un formulaire voici un cour http://www.lephpfacile.com/cours/8-recu ... ormulaires

tu peux donner un nom aux boutons. Ce nom est récupéré dans le tableau $_POST il te permet de gérer le traitement coté serveur.
tu auras un if / else pour chaque valeur et dedans le traitement lié.

@+

Re: insérer requête sql sur bouton afin de modifié la bdd

par vink » 19 avr. 2017, 16:21

d. Actions <Supprimer Affectation>
i. Poser la question : Est-ce que le matériel est déjà retourné (Réponse Oui ou Non)
ii. Si la Réponse est Oui :
1. Modifier le Statut de l’Equipement à <Non Affecté>
2. Modifier le Statut de l’Abonnement à <Non Affecté>
3. Transférer la ligne dans <Arch_Affectation> : Desc_Action = « Supprimer Affectation » , Date_Fin Affectation,
4. Supprimer la ligne de <Affectation>
iii. Si la Réponse est Non :
1. Modifier le Statut de l’Affectation (Statut_Affectation) à <Attente Retour>
2. Transférer la ligne dans <Arch_Affectation> : Desc_Action = « Supprimer Affectation – Attente Retour »
e. Actions <Confirmer Retour Equipement>
i. Ce Bouton n’est actif que si Statut_Affectation = Attente Retour
ii. Poser la question : Est-ce que Vous confirmez aussi le Retour de l’abonnement (Réponse Oui ou Non)
iii. Si la Réponse est Oui :
1. Modifier le Statut de l’Equipement à <Non Affecté>
2. Modifier le Statut de l’Abonnement à <Non Affecté>
3. Transférer la ligne dans <Arch_Affectation> : Desc_Action = « Confirmation_Retour » , Date_Fin Affectation,
4. Supprimer la ligne de <Affectation>
iv. Si la Réponse est Non :
1. Modifier le Statut de l’Equipement à <Non Affecté>
2. Modifier le Statut de l’Affectation (Statut_Affectation) à <Attente Retour Abo>
3. Transférer la ligne dans <Arch_Affectation> : Desc_Action = « Supprimer Affectation – Retour Equipement »
4.
f. Actions <Confirmer Retour Abonnement>
i. Ce Bouton n’est actif que si Statut_Affectation = Attente Retour Abo
ii. Actions :
1. Modifier le Statut de l’Abonnement à <Non Affecté>
2. Transférer la ligne dans <Arch_Affectation> : Desc_Action = « Supprimer Affectation – Retour Abonnement » , Date_Fin Affectation,
3. Supprimer la ligne de <Affectation>
g. Actions <Remplacement Equipement>
i. Afficher un formulaire Modal avec la liste des équipements en Statut <Non Affecté>
Le formulaire contient aussi une case à Cocher « S’agit il d’une panne ? » (Défaut Cochée)
Le formulaire contient aussi une case à Cocher « Est-ce que l’équipement est déjà retourné ? » (Défaut non cochée)

Boutons <Affecter> et <Annuler>

ii. Sur Bouton <Affecter> :
1. Si la case à cocher « S’agit il d’une panne ? » est cochée : Modifier le Statut de l’Equipement ancien à <Panne>
2. Modifier le Statut de l’Affectation Ancienne à (Statut_Affectation) à <Attente Retour>
3. Si la case à cocher « S’agit il d’une panne ? » est cochée
Transférer la ligne dans <Arch_Affectation> : Desc_Action = « Remplacement Cause Panne – Attente Retour »
Sinon
Transférer la ligne dans <Arch_Affectation> : Desc_Action = « Remplacement Equipement – Attente Retour »
Fsi
4. Création de la nouvelle Affectation en reprenant toutes les informations de la ligne Existante, sauf l’équipement
i. Mettre la date de début Affectation à la date du jour
5. Si la case à cocher « « Est-ce que l’équipement est déjà retourné ?» est cochée
Si la case à cocher « S’agit il d’une panne ? » est cochée
Modifier le Statut de l’Equipement ancien à <Panne>
Transférer la ligne dans <Arch_Affectation> : Desc_Action = « Remplacement Cause Panne»
Sinon
Modifier le Statut de l’Equipement ancien à <Non Affecté>
Transférer la ligne dans <Arch_Affectation> : Desc_Action = « Remplacement Equipement»
Supprimer l’Ancienne Affectation
Fsi
Sinon
Modifier le Statut de l’Affectation (Statut_Affectation) à <Attente Retour>
Transférer la ligne dans <Arch_Affectation> : Desc_Action = « Supprimer Affectation – Attente Retour »
Fsi
9) Gestion des Affectations – Nouvelle Affectation
a. Ajout d’une ligne « Nouvelle Affectation » Dans le formulaire Menu
b. Création d’un formulaire de Création d’une affectation en 3 parties
i. Partie 1 = Choix de l’Employé
ii. Partie 2 = Choix de l’équipement et de l’abonnement
iii. Partie 3 = Informations complémentaire + Boutons d’Actions
c. Création Affectation – Choix de l’employé
i. Case à cocher = Technicien sans Affection (Cochée par défaut)
ii. Si Case est cochée
1. Afficher dans une liste, à partir de la table Employés, tous les techniciens pour lesquels Aucune Affectation n’existe
Sinon
Afficher dans une liste, à partir de la table Employés, tous les techniciens lesquels il existe des Affectations
d. Création Affectation – Choix de l’équipement et de l’abonnement
i. Formulaire Avec 2 listes avec Cases à cocher dans la liste (Ou si possible des Boutons d’options pour ne permettre qu’un seul choix)
ii. Liste 1 = Equipements
1. Liste des équipements au Statut « Non Affecté »
iii. Liste 2 = Abonnements
1. Liste des Abonnements au Statut « Non Affecté »

e. Création Affectation – Actions
i. Bouton <Créer> et <Annuler>
ii. Bouton <Créer>
1. Création d’une nouvelle ligne dans Affectation avec les informations saisies
Voir éventuellement l’ajout des autres informations telles que Commentaires et Mots de passe
toute les requête son faite mais c'est pour les rajouté a un bouton que j'ai du mal

Re: insérer requête sql sur bouton afin de modifié la bdd

par moogli » 19 avr. 2017, 15:57

donc la mise en "subrillance" c'est du css, il te faut jouer le fait que l'on coche / décoche la case pour ajouter / supprimer une class css pour que le fond soit d'une couleur différente
par exemple
.selected > td {
    background-color : pink;
    font-weight : bold;
}
Le plus simple se serait d'ajouter un ID au TR (utilise id de table ou alors un incrément dans le while, le principale c'est que cela soit unique
=> <tr id="42"> ....</tr>
ensuite du JS pour ajouter ou enlever la class css
par exemple
function changeValueOfCheckbox(check) {
      var tr = document.getElementById(check.value);
      var cssClass = tr.getAttribute('class');
      if (cssClass === null) {
        cssClass = '';
      }
      if (check.checked) {
        // add class selected
        cssClass += ' selected';
      } else {
        // suppression class selected
        var sel = ' selected';
        var i = cssClass.indexOf(sel);
        if (i > -1) {
          var tmp = cssClass.substring(0, i);
          tmp += cssClass.substring(i + sel.length);
          cssClass = tmp;
        }
      }
      tr.setAttribute('class', cssClass);
    }
et pour l'utiliser onchange="changeValueOfCheckbox(this)" dans la checkbox ;)

Pour le reste, ton code utilise la notation tableau pour nommer le checkbox c'est très bien tu auras donc un tableau coté serveur dans $_POST['Select']

ensuite tu l'utilises le traitement lié au bouton cliqué (donc a priori 6 submit avec des noms différents, ou même nom et valeurs différentes).

et la rien de bien compliqué, mais ne sachant pas ce que tu en fais je ne peux pas t'aider plus.

@+

Re: insérer requête sql sur bouton afin de modifié la bdd

par vink » 19 avr. 2017, 13:58

oui j'ai besoin d'une checkbox pour sélectionné une ligne de mon tableau afin d'exécuté en des requête sql via 6 boutons avec des requête différente, donc mon soucis et de mettre la ligne ou j'ai coché le checkbox en surbrillance pour que quand j'appuie sur un bouton, que la ligne en surbrillance obtient des modification
Merci

Re: insérer requête sql sur bouton afin de modifié la bdd

par moogli » 19 avr. 2017, 12:03

a quoi sert ceci : onclick="SelectLigne(this)" ?

peux être que c'est ce dont tu as besoin pour ta checkbox ?

tu te rends compte que la c'est à des années lumières de ce que tu tentes de dire dans ton premier message ? Sans parler du titre :mrgreen:

@+

Re: insérer requête sql sur bouton afin de modifié la bdd

par vink » 19 avr. 2017, 10:19

regarde sur le code la premiere colonne est des checkbox mais quand je selectionne une checkbox la ligne ce souligne pas, il faudrais que je fasse une classe ?
voici le code
<?php
    //PHP avant tout
    if (!empty($_POST)) {
        //la connexion
        $connect = mysqli_connect("localhost", "root", "Mm101010", "smartphone");
         
        //la requete de recherche
        $query = "Select * from vu_affect_empl ";
        if (!empty($_POST["query"])) {
            $search = mysqli_real_escape_string($connect, $_POST["query"]);
            $query .= "WHERE USER_ID LIKE '";
            $query .= $search;
            $query .= "%' OR  USER_ID LIKE '";
            $query .= $search;
            $query .= "%' OR  Num_SIM LIKE '";
            $query .= $search;
            $query .= "%' ORDER BY Nom asc";
        } else {
            $query .= "ORDER BY USER_ID";
        }
        //Lancement de la requete
        $result = mysqli_query($connect, $query);
    }
 
?>
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8"/>
</head>
<body>
<?php
  if(isset($result) && mysqli_num_rows($result) > 0) {
?>
    <div class="table-responsive">
        <table class="table table bordered">
            <tr onclick="SelectLigne(this)">
                <td>&nbsp;</td>
                <th>USER ID</th>
                <th>Nom</th>
                <th>Prenom</th>
                <th>Num SIM</th>
                <th>PIN Terminal</th>
                <th>PIN SIM</th>
                <th>Num EMEI</th>
                <th>Date Debut</th>
                <th>Date Fin</th>
                <th>Vitre</th>
                <th>Coque</th>
                <th>Support Vehicule</th>
                <th>Actif</th>
                <th>Or Affectation1</th>
                <th>Statut</th>
            </tr>
<?php 
            while($row = mysqli_fetch_array($result)) {
?>
            <tr>
                <td><input type="checkbox" name="Select[]" value="<?php echo $row['USER_ID'];?>" class="Selection"> </td>
                <td><?php echo $row["USER_ID"]; ?></td>
                <td><?php echo $row["Nom"]; ?></td>
                <td><?php echo $row["Prenom"]; ?></td>
                <td><?php echo $row["Num_SIM"]; ?></td>
                <td><?php echo $row["PIN_Terminal"]; ?></td>
                <td><?php echo $row["PIN_SIM"]; ?></td>
                <td><?php echo $row["Num_IMEI"]; ?></td>
                <td><?php echo $row["Date_Debut"]; ?></td>
                <td><?php echo $row["Date_Fin"]; ?></td>
                <td><?php echo $row["Vitre"]; ?></td>
                <td><?php echo $row["Coque"]; ?></td>
                <td><?php echo $row["Support_Vehicule"]; ?></td>
                <td><?php echo $row["Actif"]; ?></td>
                <td><?php echo $row["Or_Affectation1"]; ?></td>
                <td><?php echo $row["Statut"]; ?></td>
            </tr>
<?php
           } } else { echo 'Pas enregistrement pour le moment'; }
?>
</body>

Re: insérer requête sql sur bouton afin de modifié la bdd

par moogli » 19 avr. 2017, 09:46

salut,

c'est pas super compréhensible ton affaire.
tu as du code html / php qui affiche ta base ?

un bouton radio en html c'est simple : <input type="radio" name="xxx" /> il peux être "checked" ou pas suivant la valeur.

@+

Re: insérer requête sql sur bouton afin de modifié la bdd

par vink » 18 avr. 2017, 19:37

en faite j'ai un tableau avec une base de donnée associé, j'aimerais que quand j’appuie sur un des 6 bouton, que sa rajoute un mot sur la ligne sélectionner avec une colonne dédié a cela ou copier/couper la ligne vers une autre base?
ps comment fait-on pour sélectionné une ligne dans un tableaux via avec un "radio"?
Merci