MySQL PHP PDO: получение таблицы и ее размер из запроса - PullRequest
0 голосов
/ 17 апреля 2020

У меня есть несколько функций в сценарии PHP:

    // Database connexion
    function connexion_base() 
    {
        try
        {
            $bdd = new PDO('mysql:host=localhost;dbname=WORLD',
                       'me','S3cr3T');
        }
        catch (Exception $e)
        {
            die('Erreur : '.$e->getMessage());
        }
        return $bdd;
    }

    // Returns the names of the columns
    function column_names($Table) 
    {
        $nb_cols = $Table->columnCount();
        $cols = array();
        for ($i = 0; $i < $nb_cols; $i++)
        {
            $col = $Table->getColumnMeta($i);
            $cols[] = $col['name'];
        }
        return $cols;
    }

    // Prints the body of the table
    function print_table($Table,$Cols) 
    {
        while ($datas = $Table->fetch()) 
        {
            echo '<tr>';
            foreach ($Cols as $element)
            {
                echo '<td>'.$datas[$element].'</td>';
            }
        }
    }

    // Prints the result of request $Request (string) from database $Bdd
    function print_request($Base,$Request)
    {
        $result = $Bdd->query($Requete);
        $cols = column_names($resultat);
        // Printing numer of rows of the result
        // echo '<p>Number of lines in the answer : '.$nb_lignes.'</p>';
        // Head of the table
        echo '<table> <tr>';
        foreach ($cols as $element)
        {
            echo '<th>'.$element.'</th>';
        }
        // End head of the table
        // Printing each line of the table
        write_table($result,$cols);
        // Fin de la table
        echo '</table>';
    }
}

Проблема (ы): (*):

  1. мой код правильный? Это работает, но, возможно, у меня не было правильного представления о работе с PDO (и / или PHP, MySQL ...)
  2. Я хотел бы добавить строку на получившейся странице перед таблицей с указанием количества результатов, указанных в запросе; и я не знаю, как это сделать.

Любая помощь?

1 Ответ

0 голосов
/ 19 апреля 2020

Чтобы добавить строку, вы можете сделать <tr><td colspan="{$nb_cols}">{$result->rowCount()}</td></tr> после th или после write_table

Пожалуйста, следите за опечатками в ваших переменных ($resultat -> $result), чтобы они все были одинаковыми , Php не чувствителен к регистру, но я бы рекомендовал не полагаться на это, чтобы избежать слияния, не смешивая одни и те же имена переменных, но с разными стилями.

Пикантные примечания: выведите </tr> после каждого l oop, хотя браузеры могут найти выход

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...