IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Sélection de nom de table SQL et modification de celle - ci.


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 58
    Points : 23
    Points
    23
    Par défaut 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 :

    Nom : 1.png
Affichages : 766
Taille : 38,2 Ko

    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 :

    Nom : 2.png
Affichages : 561
Taille : 45,5 Ko

    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 !

  2. #2
    Expert confirmé
    Avatar de TiranusKBX
    Homme Profil pro
    Développeur C, C++, C#, Python, PHP, HTML, JS, Laravel, Vue.js
    Inscrit en
    Avril 2013
    Messages
    1 476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur C, C++, C#, Python, PHP, HTML, JS, Laravel, Vue.js
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 476
    Points : 4 805
    Points
    4 805
    Billets dans le blog
    6
    Par défaut
    pour renommer une table il faut la recréer au nouveau nom puis copier les données et enfin supprimer l'ancienne si tu fait du sql standard
    sinon il existe la commande "rename" pour mysql, exemple :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    RENAME TABLE `ggg` TO `aaa`;
    Rien, je n'ai plus rien de pertinent à ajouter

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 58
    Points : 23
    Points
    23
    Par défaut
    Merci à toi, mais comment l'adapter à mon code car j'ai vraiment tout essayais !

Discussions similaires

  1. [2008] Utiliser un paramètre comme nom de table SQL
    Par jbrusselle dans le forum SSRS
    Réponses: 2
    Dernier message: 29/08/2012, 18h03
  2. DB2 As400 - Nom de table SQL
    Par mluce44 dans le forum DB2
    Réponses: 4
    Dernier message: 10/02/2012, 09h54
  3. [SQL-Server] Concaténation d'une chaine de caractère avec un nom de table SQL
    Par Balthazar117 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 15/03/2011, 14h42
  4. SQL et nom de table a creer
    Par USnico dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 02/08/2006, 16h03
  5. Comment je peux changer nom de 'Table' avec la phrase sql
    Par YEK dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 01/10/2004, 08h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo