За последние 24 часа нас посетил 45341 программист и 1813 роботов. Сейчас ищут 899 программистов ...

Проверка, есть ли таблица в БД с помощью php-скрипта

Тема в разделе "PHP для новичков", создана пользователем Drobotko Taras, 25 июл 2017.

  1. Drobotko Taras

    Drobotko Taras Активный пользователь

    С нами с:
    13 окт 2016
    Сообщения:
    30
    Симпатии:
    1
    Добрый день! Пишу скрипт на php и столкнулся с такой проблемой:
    При попытке проверить, есть ли таблица Users в базе данных Users_BD, скрипт не виводит сообщение над формой "Таблиця "Users" вже існує!", если таблица создана, а исполняет
    die('Таблиця "Users" вже існує!')
    . Не могу понять, почему так и на что нужно обратить внимание, чтобы исправить дефект.
    PHP:
    1. <?php
    2. $admin = 'admin';
    3. $pass = 'd8578edf8458ce06fbc5bb76a58c5ca4';
    4. $db = 'Users_BD';
    5.  
    6. if($_POST['submit']){
    7.     if($admin == $_POST['login'] AND $pass == md5($_POST['password']) AND $db == $_POST['bd']){
    8.  
    9. define('DB_HOST', 'localhost');
    10. define('DB_USER', 'root');
    11. define('DB_PASSWORD', 'my_password');
    12. define('DB_NAME', 'Users_BD');
    13.  
    14. $connect = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME)
    15.     or die("Помилка " . mysqli_error($connect));
    16.  
    17. $query_prov = mysqli_query("SHOW TABLES FROM Users_BD LIKE 'Users'");
    18. print_r($query_prov);
    19. $result = mysqli_query($connect, $query_prov);
    20.        $row= count(mysqli_fetch_array($result));
    21.        
    22.        $dbmame='Users_BD';
    23.        $tablename='Users';
    24.        function mysqli_table_seek($tablename, $dbname)
    25. {
    26.     $table_list = mysqli_query("SHOW TABLES FROM `".$dbname."`");
    27.     while ($row = mysqli_fetch_row($table_list)) {
    28.         if ($tablename==$row[0]) {
    29.             return true;
    30.         }
    31.     }
    32.     return false;
    33. }
    34. $table_ex = mysqli_table_seek();
    35. echo $table_ex;
    36.     if($table_ex== true) {
    37.           echo '<p class="info">Таблиця "Users" вже існує!</p>';
    38.     }
    39. else {
    40. $query ="CREATE TABLE Users
    41. (
    42.    uid INT AUTO_INCREMENT PRIMARY KEY,
    43.    name VARCHAR(255),
    44.    password VARCHAR(255)
    45. )";
    46. $result = mysqli_query($connect, $query) or die('Таблиця "Users" вже існує!');
    47. if($result)
    48. {
    49.     echo '<p class="success">Таблиця "Users" успішно створена!</p>';
    50. }
    51. }
    52.  
    53.  
    54.  
    55. mysqli_close($connect);
    56. }
    57. else { echo '<p class="danger">Ви ввели невірні дані!</p>';}
    58. }
    59. ?>
    60. <html>
    61. <head>
    62.   <title>Створення таблиці БД: скрипт php</title>
    63.   <link rel="stylesheet" href="entry.css">
    64. </head>
    65. <body>
    66.   <div class="main">
    67.   <h1>Введіть дані для створення<br> таблиці "Users" в базі даних:</h1>
    68.  
    69.   <form method="post">
    70.     <div class="field">
    71. <label for="bd"> Ім'я БД: </label>
    72. <input type="text" name="bd" id="bd" required><br>
    73. </div>
    74.     <div class="field">
    75. <label for="login"> Ваш логін: </label>
    76. <input type="text" name="login" id="login" required><br>
    77. </div>
    78. <div class="field">
    79. <label for="password"> Пароль: </label>
    80. <input type="password" name="password" id="password" required>
    81. </div>
    82. <div style="margin-top: 20px; text-align: center;">
    83. <input type="submit" name="submit" value="Створити!" />
    84. </div>
    85. </form>
    86. </div>
    87. </body>
    88. </html>
     
  2. Drobotko Taras

    Drobotko Taras Активный пользователь

    С нами с:
    13 окт 2016
    Сообщения:
    30
    Симпатии:
    1
    Cтроку 34 кода исправил на
    PHP:
    1. $table_ex = mysqli_table_seek('Users', 'Users_BD');
    Но проблема остается.
     
  3. Drobotko Taras

    Drobotko Taras Активный пользователь

    С нами с:
    13 окт 2016
    Сообщения:
    30
    Симпатии:
    1
    Спасибо, разобрался. Функции надо было передать переменную с данными соединения с БД, которые указаны при вызове функции!