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 :

Supprimer plusieurs tables [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 224
    Points : 62
    Points
    62
    Par défaut Supprimer plusieurs tables
    Bonjour

    Je veux supprimer plusieurs tables, dans la même base, qui ont toutes le même préfixe.

    J’ai trouvé ce code dans un forum :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $show = "SHOW TABLEs LIKE '".$prefix."%'"; 
    $show_res = mysql_query($show,$connexion1) or die(mysql_error()); 
    while($row = mysql_fetch_row($show_res)) { 	
    $sql = "DROP TABLE '".$row[$num]."'"; 	
    mysql_query($sql) or die(mysql_error()); 	
    $num++; 	}
    J’y ai ajouté la connexion à la base, qui se fait bien, sur la bonne base.

    Comme résultat : Query was empty

    Pourtant, quand j’exécute cette requête SHOW TABLE en PhpMyAdmin, j’ai la liste des tables, une quarantaine, avec des noms difficiles.
    Merci par avance de votre aide.

    Francois

  2. #2
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2012
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2012
    Messages : 179
    Points : 153
    Points
    153
    Par défaut
    Question con mais t'initialises bien ton $num à zéro quelque part ?

  3. #3
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Non la question c'est plutôt à quoi peut bien servir $num ??

    Tu devrais faire quelque chose dans ce goût là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $prefix = "foo";
    $results = array();
    if ($tables = mysql_query("SHOW TABLES LIKE '$prefix%'")) {
    	while ($row = mysql_fetch_row($tables)) {
    		$results[] = mysql_query("DROP TABLE '$row[0]'");
    	}
    	var_dump($results);
    }
    else {
    	echo "ERROR";
    }

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 224
    Points : 62
    Points
    62
    Par défaut
    bonjour

    J'ai repris ton code par Copier / Coller, placé après la connexion à la base et l'initialisation de la variable prefix.

    Voici l'affichage:
    array(62) { [0]=> bool(false) [1]=> bool(false) [2]=> bool(false) [3]=> ....
    Les tables sont tjs là ,dans PhpMyAdmin.

    J'ai raté quelque chose?

    Francois

  5. #5
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    ah oui, il faut enlever les quotes autours de $row[0]

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 224
    Points : 62
    Points
    62
    Par défaut
    Avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $results[] = mysql_query("DROP TABLE ".$row[0]);
    j'ai eu: array(0) { }

    Francois

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 224
    Points : 62
    Points
    62
    Par défaut
    Trouvé, la solution consiste à ne pas incrémenter $num.

    Francois

  8. #8
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Non la question c'est plutôt à quoi peut bien servir $num ??

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 224
    Points : 62
    Points
    62
    Par défaut
    J'avais trouvé ce code dans un forum et l'avais repris en l'état.

    Je conviens que je ne comprenais pas avec exactitude les fonctions utilisées, raison pour laquelle je séchais.

    Je ne saurais donc pas expliquer ce que $num venait faire dans l'histoire.

    Francois

  10. #10
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Dans ton cas, il devait permettre d'itérer sur les colonnes mais je ne vois pas à quoi ça pouvait bien te servir puisqu'il faut que tu itères sur les lignes.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 224
    Points : 62
    Points
    62
    Par défaut
    Oui, tu as compris que je n'avais pas imaginé ce code mais l'avais repris tel que.

    Francois

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Supprimer plusieurs tables
    Par pekre dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 19/03/2015, 17h20
  2. Supprimer plusieurs tables
    Par unix27 dans le forum PL/SQL
    Réponses: 7
    Dernier message: 08/08/2012, 12h30
  3. Supprimer plusieurs tables avec le même préfixe
    Par laurentSc dans le forum Administration
    Réponses: 5
    Dernier message: 26/11/2008, 21h30
  4. Comment supprimer plusieurs table d'une base ?
    Par b_lob dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 19/07/2007, 18h51
  5. Réponses: 6
    Dernier message: 19/09/2006, 18h55

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