Page 1 sur 2
insérer requête sql sur bouton afin de modifié la bdd
Posté : 07 avr. 2017, 11:43
par vink
Bonjour j'aimerai mettre une requête sql sur un bouton qui modifirais directement dans la base de donnée comment dois je mis prendre?
ps je travail sur phpmyadmin
Merci
Re: insérer requête sql sur bouton afin de modifié la bdd
Posté : 07 avr. 2017, 15:57
par moogli
salut,
phpmyadmin a un documentation assez importante (en français je crois ?). La dernière version semble proposer un système de signet de requêtes SQL et dans ce cas la ré exécuter.
Regarde ton interface lorsque tu es sur l'onglet SQL enbas il y les "requêtes SQL en signets".
si le but est d'avoir une formulaire html por ensuite faire une requête SQL en php alors la on peux t'aider.
Dans ce cas il nous faut savoir ce que tu sais ou non.
tu peux regarder du coté de mysqli pour te connecter à la base de données et faire ta requête.
http://php.net/mysqli
@+
Re: insérer requête sql sur bouton afin de modifié la bdd
Posté : 18 avr. 2017, 19:37
par vink
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
Re: insérer requête sql sur bouton afin de modifié la bdd
Posté : 19 avr. 2017, 09:46
par moogli
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
Posté : 19 avr. 2017, 10:19
par vink
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> </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
Posté : 19 avr. 2017, 12:03
par moogli
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
@+
Re: insérer requête sql sur bouton afin de modifié la bdd
Posté : 19 avr. 2017, 13:58
par vink
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
Posté : 19 avr. 2017, 15:57
par moogli
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
Posté : 19 avr. 2017, 16:21
par vink
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
Posté : 19 avr. 2017, 16:55
par moogli
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
Posté : 20 avr. 2017, 14:38
par vink
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> </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
Posté : 20 avr. 2017, 14:43
par moogli
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
Posté : 20 avr. 2017, 15:36
par vink
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
Posté : 20 avr. 2017, 17:47
par vink
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
Posté : 21 avr. 2017, 11:17
par moogli
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.
@+