1

Тема: Подскажите пожалуйста

Такая проблема, имею запрос на вывод всех БД в браузер, но мне не нужно чтобы выводились служебные, даже если я ограничу права все равно база information_schema выводится в список, как сделать чтобы не выводились служебные, в файле конфигураций скрывал базы, но они скрываются только в phpmyadmin, но на сайте все равно показываются sad  sad  sad

2

Re: Подскажите пожалуйста

Пропишите в запросе условие:

SHOW DATABASES WHERE `Database` != "information_schema"

3

Re: Подскажите пожалуйста

Hanut сказал:

Пропишите в запросе условие:

SHOW DATABASES WHERE `Database` != "information_schema"

А если не сложно, можно подробнее, я новичок и мне сложновато понять, вот даже текст могу показать, это мне формирует список из имеющихся БД. Вот мне нужно чтобы в это список не попадали БД information_schema, phpmyadmin, performance_schema, mysql. Хотя когда я ставлю права Админу только на созданные в ручную базы, список выводится правильно, но в него все равно попадает information_schema, для нее у меня прописан только пользователь root

$conn = mysql_connect('localhost', 'admin', 'admin');
$db_list = mysql_list_dbs($conn);
if(!isset($_GET['db'])) {
echo "<form method='GET' action='adminuser.php'>";
echo "<select name='db' size='20' style='width: 200px;'>";
while ($row = mysql_fetch_object($db_list))
echo "<option value='". $row->Database . "'>". $row->Database . "</option>";
echo "</select><br />";
echo "<input type='submit' name='order' value='Выбрать'></form>";
}

4

Re: Подскажите пожалуйста

$no = array('information_schema', 'mysql', 'phpmyadmin'); // Массив имен баз данных, которые не следует выводить.
while ($row = mysql_fetch_object($db_list))
  if (in_array($row->Database, $no) continue; // Не выводим.

  echo "<option value='". $row->Database . "'>". $row->Database . "</option>";
  echo "</select><br />";
  echo "<input type='submit' name='order' value='Выбрать'></form>";
}

5

Re: Подскажите пожалуйста

Hanut сказал:
$no = array('information_schema', 'mysql', 'phpmyadmin'); // Массив имен баз данных, которые не следует выводить.
while ($row = mysql_fetch_object($db_list))
  if (in_array($row->Database, $no) continue; // Не выводим.

  echo "<option value='". $row->Database . "'>". $row->Database . "</option>";
  echo "</select><br />";
  echo "<input type='submit' name='order' value='Выбрать'></form>";
}

Сделал как Вы сказали, но у меня теперь ни одной базы не выводит((((а если убираю if (in_array($row->Database, $no) continue; то выводит

6

Re: Подскажите пожалуйста

$no = array('information_schema', 'mysql', 'phpmyadmin'); // Массив имен баз данных, которые не следует выводить.
while ($row = mysql_fetch_object($db_list)) {
  if (in_array($row->Database, $no) continue; // Не выводим.

  echo "<option value='". $row->Database . "'>". $row->Database . "</option>";
}

echo "</select><br />";
echo "<input type='submit' name='order' value='Выбрать'></form>";

7

Re: Подскажите пожалуйста

Hanut сказал:
$no = array('information_schema', 'mysql', 'phpmyadmin'); // Массив имен баз данных, которые не следует выводить.
while ($row = mysql_fetch_object($db_list)) {
  if (in_array($row->Database, $no) continue; // Не выводим.

  echo "<option value='". $row->Database . "'>". $row->Database . "</option>";
}

echo "</select><br />";
echo "<input type='submit' name='order' value='Выбрать'></form>";

Сработало, большое спасибо smile  smile  smile