Ir ao conteúdo

Listar bancos de dados sem os DBs de sistema


Ir à solução Resolvido por ATunes,

Posts recomendados

Postado

Boa tarde colegas,

 

estou precisando de uma ajuda dos conhecedores de MySQL.

Seguinte, fiz um script em PHP que lista todos os bancos de dados do meu servidor e coloca em tabela:

<?php  $link = mysql_connect('localhost', 'username', 'pass');  $res = mysql_query("SHOW DATABESES");  echo "<table border='1'>";  while ($row = mysql_fetch_assoc($res)) {    echo "<tr><td>".$row['Database']."</td></tr>;  }  echo "</table>"?>

a saida fica mais ou menos assim:

 

information_schema

mysql

performance_schema

test

teste

 

Isso é quase o que quero, meu problema esta sendo que eu não quero que apareça nessa tabela os DBs "information_schema", mysql" e "performance_schema", pois são os DBs de sistema e não fica legal.

O que devo incrementar no meu código para que não apareça os DBs de sistema do MySQL??

 

Muito obrigado a todos!

  • Solução
Postado

Galera,

 

consegui resolver o problema com o php mesmo. Como não achei um comando no MySQL acabei usando o !in_array assim:

<?php  $link = mysql_connect('localhost', 'username', 'pass');  $res = mysql_query("SHOW DATABESES");  $exclude = array("information_schema","mysql","performance_schema");  echo "<table border='1'>";  while ($row = mysql_fetch_assoc($res)) {    if(!in_array($row['Database'], $exclude, true)){      echo "<tr><td>".$row['Database']."</td></tr>;  }}  echo "</table>"?>

Obrigado galera!

  • Curtir 1
  • Moderador
Postado

@ATunes

 

você pode resolver isso usando um simples IF.

 

Como você foi mais rápido em postar a solução, que por sinal é melhor..   deixou aqui outra maneira de fazer usando o IF.

$link = mysqli_connect('localhost', 'coderdif', 'coderdif');$res = mysqli_query($link, "show databases");echo "<table border='1'>";while ($row = mysqli_fetch_row($res)) :        $not_tables = ($row[0]!="information_schema") &&                       ($row[0]!="mysql") &&                       ($row[0]!="performance_schema") &&                       ($row[0]!="phpmyadmin") &&                       ($row[0]!="test");       if($not_tables):           echo "<tr>                <td>$row[0]</td>           </tr>";       endif;    endwhile;echo "</table>";

A sua solução eu acho mais elegantes. Parabéns.

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!