web-dev-qa-db-fra.com

afficher les données de la base de données SQL dans la table php / html

OK, j'ai une base de données sur phpmyadmin (sql) et je souhaite afficher l'une de mes tables dans une table sur HTML/PHP. J'ai effectué une recherche en ligne et je ne peux pas mettre en œuvre cette fonctionnalité. Je me demande donc si quelqu'un pourrait m'aider à coder cela.

database = 'hrmwaitrose'
username = 'root'
Host = 'localhost'

PAS DE PW

J'aimerais afficher les données du nom de la table employee

18
user2108411

Vous dites que vous avez une base de données sur PhpMyAdmin, vous utilisez donc MySQL. PHP fournit des fonctions permettant de se connecter à une base de données MySQL.

$connection = mysql_connect('localhost', 'root', ''); //The Blank string is the password
mysql_select_db('hrmwaitrose');

$query = "SELECT * FROM employee"; //You don't need a ; like you do in SQL
$result = mysql_query($query);

echo "<table>"; // start a table tag in the HTML

while($row = mysql_fetch_array($result)){   //Creates a loop to loop through results
echo "<tr><td>" . $row['name'] . "</td><td>" . $row['age'] . "</td></tr>";  //$row['index'] the index here is a field name
}

echo "</table>"; //Close the table in HTML

mysql_close(); //Make sure to close out the database connection

Dans la boucle while (qui s'exécute chaque fois que nous rencontrons une ligne de résultat), nous faisons écho à la création d'une nouvelle ligne de table. J'ajoute aussi un pour contenir les champs.

Ceci est un modèle très basique. Vous voyez les autres réponses en utilisant mysqli_connect au lieu de mysql_connect. mysqli signifie mysql amélioré. Il offre une meilleure gamme de fonctionnalités. Vous remarquez que c'est aussi un peu plus complexe. Cela dépend de ce dont vous avez besoin.

41
Jacob Valenta

Voici une fonction simple que j'ai écrite pour afficher des données tabulaires sans avoir à entrer chaque nom de colonne: (Sachez également que: boucle imbriquée)

function display_data($data) {
    $output = '<table>';
    foreach($data as $key => $var) {
        $output .= '<tr>';
        foreach($var as $k => $v) {
            if ($key === 0) {
                $output .= '<td><strong>' . $k . '</strong></td>';
            } else {
                $output .= '<td>' . $v . '</td>';
            }
        }
        $output .= '</tr>';
    }
    $output .= '</table>';
    echo $output;
}

FONCTION MISE À JOUR CI-DESSOUS

Salut Jack,

votre fonction fonctionne bien, mais cette fonction manque toujours le premier jeu de données du tableau. J'ai testé ça.

Votre fonction est tellement performante que beaucoup de personnes l'utiliseront, mais elles manqueront toujours le premier jeu de données. C'est pourquoi j'ai écrit cet amendement.

Le jeu de données manquant résulte de la condition si clé === 0. Si clé = 0, seuls les en-têtes de colonnes sont écrits, mais pas les données contenant la clé $ clé 0. Donc, il manque toujours le premier jeu de données du tableau.

Vous pouvez éviter cela en déplaçant la condition if au-dessus de la deuxième boucle foreach comme ceci:

function display_data($data) {
    $output = "<table>";
    foreach($data as $key => $var) {
        //$output .= '<tr>';
        if($key===0) {
            $output .= '<tr>';
            foreach($var as $col => $val) {
                $output .= "<td>" . $col . '</td>';
            }
            $output .= '</tr>';
            foreach($var as $col => $val) {
                $output .= '<td>' . $val . '</td>';
            }
            $output .= '</tr>';
        }
        else {
            $output .= '<tr>';
            foreach($var as $col => $val) {
                $output .= '<td>' . $val . '</td>';
            }
            $output .= '</tr>';
        }
    }
    $output .= '</table>';
    echo $output;
}

Cordialement et merci - Axel Arnold Bangert - Herzogenrath 2016

5
Jack Nicholson

Regardez dans le manuel http://www.php.net/manual/en/mysqli.query.php

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
}

/* Create table doesn't return a resultset */
if ($mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) {
    printf("Table myCity successfully created.\n");
}

/* Select queries return a resultset */
if ($result = $mysqli->query("SELECT Name FROM City LIMIT 10")) {
    printf("Select returned %d rows.\n", $result->num_rows);

    /* free result set */
    $result->close();
}

/* If we have to retrieve large amount of data we use MYSQLI_USE_RESULT */
if ($result = $mysqli->query("SELECT * FROM City", MYSQLI_USE_RESULT)) {

    /* Note, that we can't execute any functions which interact with the
       server until result set was closed. All calls will return an
       'out of sync' error */
    if (!$mysqli->query("SET @a:='this will not work'")) {
        printf("Error: %s\n", $mysqli->error);
    }
    $result->close();
}

$mysqli->close();
?>
3
ka_lin

se référer à http://www.w3schools.com/php/php_mysql_select.asp . Si vous êtes débutant et que vous voulez apprendre, w3schools est un bon endroit.

<?php
    $con=mysqli_connect("localhost","root","YOUR_PHPMYADMIN_PASSWORD","hrmwaitrose");
    // Check connection
    if (mysqli_connect_errno())
      {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
      }

    $result = mysqli_query($con,"SELECT * FROM employee");

    while($row = mysqli_fetch_array($result))
      {
      echo $row['FirstName'] . " " . $row['LastName']; //these are the fields that you have stored in your database table employee
      echo "<br />";
      }

    mysqli_close($con);
    ?>

Vous pouvez également echo le dans votre table

<?php
 echo "<table>";
 while($row = mysqli_fetch_array($result))
          {
          echo "<tr><td>" . $row['FirstName'] . "</td><td> " . $row['LastName'] . "</td></tr>"; //these are the fields that you have stored in your database table employee
          }
 echo "</table>";
 mysqli_close($con);
?>
2
prakashchhetri