2 pièce(s) jointe(s)
Sélection de nom de table SQL et modification de celle - ci.
Bonjours à tous,
Je vous explique mon probléme : Je ne trouve pas comment faire afin, de sélectionner le nom d'une table dans plusieurs lignes d'une table SQL.
Voici la structure :
Pièce jointe 172425
Je veut donc en PHP sélectionner les noms de la colonne "Arexx_Table", et modifier le nom de ces tables correspondantes.
Eexemple : J'ai dans la colonne "Arexx_Table" à la ligne pour index 14 le nom "Capt_paille" si je le modifie à partir de mon tableau en "Capt_étage" Je veut non seulement modifier le nom de la table mais aussi le nom dans la colonne "Arexx_Table" de ma table tp_arexx_capteurs.
Voici mon tableau éditable :
Pièce jointe 172426
J'ai un code PHP qui me permet de faire cela mais pour la suppréssion c'est à a dire que je récupére les checkbox qui sont cochées, puis je sélectionne ensuite les noms de la colonne "Arexx_Table" correspondant au checkbox que j'ai cochée, ensuite je supprime la table liée, puis enfin la ligne correspondante dans la table "tp_arexx_capteurs" or moi je voudrais la même chose mais en modifiant les noms.
Voici de code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| <html>
<body>
<head>
</head>
<?php
/* ------------------ CASE A COCHER ------------------ */
/* ------------------ CASE A COCHER ------------------ */
error_reporting(E_ALL ^ E_DEPRECATED); //pas d'affichage error deprecated !
// connexion à la Bae de Données
$mysql_user="admin";
$mysql_password="admin";
$reqco = mysql_connect("localhost",$mysql_user,$mysql_password) or die('Erreur de connexion '.mysql_error());
// sélection de la BDD
$reqse = mysql_select_db("tp_arexx",$reqco) or die('Erreur de SELECT BDD '.mysql_error());
// --------------------------------------------------
// RECUPERATION / ENREGISTREMENT en BdD
if (isset($_POST['champ'])) {
for ($i=0;$i<sizeof($_POST['champ']);$i++) {
$champ[$i] = $_POST['champ'][$i];
$numero_article1 = $_POST['champ'][$i];
$query3 = mysql_query("SELECT `Arexx_Table` FROM `tp_arexx_capteurs` WHERE `Arexx_Table`='$numero_article1'");
$result_donnees3=mysql_fetch_array($query3);
$query1 = "DROP TABLE IF EXISTS . `$champ[$i]`";
$result1 = mysql_query($query1) or die("Erreur SQL ! ".$query1."<br/>".mysql_error());
mysql_free_result($result1);
// suppression des lignes
$delete = 'DELETE FROM tp_arexx_capteurs WHERE Arexx_Table in('.implode(',',$numero_article1).')';
$req2 = mysql_query($delete)or die('Erreur de DELETE '.mysql_error());
}
}
exit;
?>
</body>
</html> |
Dans ce code je récupère les checkbox, or moi je veut récupéré des inputs j'y arrive avec ce code ci dessous, j'arrive bien à modifier Toutes les lignes de la table "tp_arexx_capteurs" y compris la colonne "Arexx_Table" mais seulement j'arrive pas a modifier le nom de la table liée !
Code de la modification des noms :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| if(!empty($_POST['arexxname']) && !empty($_POST['arexxid']) && !empty($_POST['arexxtype']) && !empty($_POST['arexxtable']) ){
// pour CHAQUE LIGNE :
// on va ICI boucler sur l'array() "nom" :
foreach( $_POST['arexxname'] as $ii => $val )
{
// $ii est l'index de CETTE ligne de l'array $_POST['nom']
// comme CHAQUE array() contient le même nombre de valeurs, $ii est AUSSI l'index des autres array() pour CETTE ligne :
// pour CHAQUE champs : récupération des valeurs de la ligne + protection contre injection SQL !
if(isset($_POST['arexxname'])) $val_nom = mysql_real_escape_string($_POST['arexxname'][$ii]); // ou, ICI : mysql_real_escape_string($val);
else $val_nom="arexxname";
if(isset($_POST['arexxid'])) $val_id = mysql_real_escape_string($_POST['arexxid'][$ii]);
else $val_id="arexxid";
if(isset($_POST['arexxtype'])) $val_type = mysql_real_escape_string($_POST['arexxtype'][$ii]);
else $val_type="arexxtype";
if(isset($_POST['arexxtable'])) $val_table = mysql_real_escape_string($_POST['arexxtable'][$ii]);
else $val_table="arexxtable";
if(isset($_POST['arexxindex'])) $val_index = mysql_real_escape_string($_POST['arexxindex'][$ii]);
else $val_index="arexxindex";
// pour CETTE ligne, tous les champs sont obligatoires (doivent être remplis)
if(!empty($val_nom) && !empty($val_id) && !empty($val_type) && !empty($val_table) && !empty($val_index) ){
// ICI JE VEUT DONC RECUPERER LES NOMS D LA COLONNE "Arexx_Table" ET MODIFIER LE NOM DE CES TABLES PAR CE QUI YA DANS MES INPUTS
// PUIS PAR LA SUITE JE MODIFIE LES LIGNE DANS LA TABLE "tp_arexx_capteurs" AVEC LES NOUVELLES VALEURS DES INPUTS CE QUI FONCTIONNE.
$sql_insert = "UPDATE `tp_arexx_capteurs`
SET `Arexx_Id` = '$val_id',
`Arexx_Type` = '$val_type',
`Arexx_Table` = '$val_table',
`Arexx_Name` = '$val_nom' WHERE `Arexx_index`= $val_index";
// pour CETTE ligne, on INSERE les informations du formulaire dans la table
mysql_query($sql_insert) or die('Erreur SQL !'.$sql_insert.'<br>'.mysql_error());
}
}
} |
Un grand merci à vous tous !