データベーステーブルから値を取得し、ページのhtmlテーブルに表示したい。私はすでにこれを検索しましたが、答えは見つかりませんでしたが、これは確かに簡単なことです(これはデータベースの基本です笑)。私が検索した用語は誤解を招くものだと思います。データベーステーブル名はチケットです。現在6つのフィールド(submission_id、formID、IP、名前、電子メール、メッセージ)がありますが、ticket_numberという別のフィールドが必要です。次のようなHTMLテーブルにdbのすべての値を表示するにはどうすればよいですか。
<table border="1">
<tr>
<th>Submission ID</th>
<th>Form ID</th>
<th>IP</th>
<th>Name</th>
<th>E-mail</th>
<th>Message</th>
</tr>
<tr>
<td>123456789</td>
<td>12345</td>
<td>123.555.789</td>
<td>John Johnny</td>
<td>[email protected]</td>
<td>This is the message John sent you</td>
</tr>
</table>
そして、「john」以下の他のすべての値。
W3Schoolsからの例: PHP MySQLからのデータ選択
<?php
$con=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM Persons");
echo "<table border='1'>
<tr>
<th>Firstname</th>
<th>Lastname</th>
</tr>";
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['FirstName'] . "</td>";
echo "<td>" . $row['LastName'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysqli_close($con);
?>
学ぶには良い場所です!
これを試してください:(完全に動的...)
<?php
$Host = "localhost";
$user = "username_here";
$pass = "password_here";
$db_name = "database_name_here";
//create connection
$connection = mysqli_connect($Host, $user, $pass, $db_name);
//test if connection failed
if(mysqli_connect_errno()){
die("connection failed: "
. mysqli_connect_error()
. " (" . mysqli_connect_errno()
. ")");
}
//get results from database
$result = mysqli_query($connection,"SELECT * FROM products");
$all_property = array(); //declare an array for saving property
//showing property
echo '<table class="data-table">
<tr class="data-heading">'; //initialize table tag
while ($property = mysqli_fetch_field($result)) {
echo '<td>' . $property->name . '</td>'; //get field name for header
array_Push($all_property, $property->name); //save those to array
}
echo '</tr>'; //end tr tag
//showing all data
while ($row = mysqli_fetch_array($result)) {
echo "<tr>";
foreach ($all_property as $item) {
echo '<td>' . $row[$item] . '</td>'; //get items using property value
}
echo '</tr>';
}
echo "</table>";
?>
まず、データベースに接続します。
$conn=mysql_connect("hostname","username","password");
mysql_select_db("databasename",$conn);
これを使用して、単一のレコードを表示できます。
たとえば、URLが/index.php?sequence=123
の場合、以下のコードは、シーケンス= 123
のテーブルから選択します。
<?php
$sql="SELECT * from table where sequence = '".$_GET["sequence"]."' ";
$rs=mysql_query($sql,$conn) or die(mysql_error());
$result=mysql_fetch_array($rs);
echo '<table>
<tr>
<td>Forename</td>
<td>Surname</td>
</tr>
<tr>
<td>'.$result["forename"].'</td>
<td>'.$result["surname"].'</td>
</tr>
</table>';
?>
または、テーブルの条件に一致するすべての値を一覧表示する場合:
<?php
echo '<table>
<tr>
<td>Forename</td>
<td>Surname</td>
</tr>';
$sql="SELECT * from table where sequence = '".$_GET["sequence"]."' ";
$rs=mysql_query($sql,$conn) or die(mysql_error());
while($result=mysql_fetch_array($rs))
{
echo '<tr>
<td>'.$result["forename"].'</td>
<td>'.$result["surname"].'</td>
</tr>';
}
echo '</table>';
?>
mysql_connect("localhost","root","");
mysql_select_db("database");
$query=mysql_query("select * from studenti");
$x=@mysql_num_rows($query);
echo "<a href='file.html'>back</a>";
echo "<table>";
$y=mysql_num_fields($query);
echo "<tr>";
for($i=0 ,$i<$y,$i++)
{
$values=mysql_field_name($query,$i);
echo "<th>$values</th>";
}
echo "</tr>";
while(list($p ,$n $your_table_list)=mysql_fetch_row($query))
{
print("<tr>\n".
"<td>$p</td>".
"</tr>/n");
}
?>
PHPおよびMySQLiライブラリの詳細 at PHP.net。
最初に、データベースへの接続を開始します。これを行うには、接続に必要なすべての文字列変数を作成し、環境に合わせて調整し、new mysqli()
で新しい接続オブジェクトを作成し、以前に作成した変数をパラメーターとして初期化します。次に、接続のエラーを確認し、見つかったかどうかのメッセージを表示します。このような:
<?php
$servername = "localhost";
$username = "root";
$password = "yourPassword";
$database = "world";
$conn = new mysqli($servername, $username, $password, $database);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully<br>";
?>
次に、クエリを文字列として保持する変数を作成します。この場合、リストを小さく保つために、100レコードのselect
ステートメントを持つlimit
ステートメントを作成します。次に、接続オブジェクトからmysqli::query()
関数を呼び出すことで実行できます。ここで、いくつかのデータを表示します。 echo
を介して<table>
タグを開いてから、mysqli::fetch_row()
を含む数値配列の形式で一度に1行ずつフェッチし、単純なforループで表示できます。 mysqli::field_count
は自明であるべきです。各値に<td></td>
を使用し、echo"<tr>"
およびecho"</tr>
で各行を開いたり閉じたりすることを忘れないでください。最後に、テーブルを閉じ、mysqli::close()
との接続も閉じます。
<?php
$query = "select * from city limit 100;";
$queryResult = $conn->query($query);
echo "<table>";
while ($queryRow = $queryResult->fetch_row()) {
echo "<tr>";
for($i = 0; $i < $queryResult->field_count; $i++){
echo "<td>$queryRow[$i]</td>";
}
echo "</tr>";
}
echo "</table>";
$conn->close();
?>
フィードバックは大歓迎です!幸運を!
PDOを使用してMySQLデータベースからデータを取得する簡単な方法を次に示します。
define("DB_Host", "localhost"); // Using Constants
define("DB_USER", "YourUsername");
define("DB_PASS", "YourPassword");
define("DB_NAME", "Yourdbname");
try { // << using Try/Catch() to catch errors!
$dbc = new PDO("mysql:Host=".DB_Host.";dbname=".DB_NAME.";charset-utf8",DB_USER,DB_PASS);
}catch(PDOException $e){ echo $e->getMessage();}
if($dbc <> true){
die("<p>There was an error</p>");
}
$print = ""; // assign an empty string
$stmt = $dbc->query("SELECT * FROM tableName"); // fetch data
$stmt->setFetchMode(PDO::FETCH_OBJ);
if($stmt->execute() <> 0)
{
$print .= '<table border="1px">';
$print .= '<tr><th>First name</th>';
$print .= '<th>Last name</th></tr>';
while($names = $stmt->fetch()) // loop and display data
{
$print .= '<tr>';
$print .= "<td>{$names->firstname}</td>";
$print .= "<td>{$names->lastname}</td>";
$print .= '</tr>';
}
$print .= "</table>";
echo $print;
}
<?php
$mysql_hostname = "localhost";
$mysql_user = "ram";
$mysql_password = "ram";
$mysql_database = "mydb";
$bd = mysql_connect($mysql_hostname, $mysql_user, $mysql_password) or die("Oops some thing went wrong");
mysql_select_db($mysql_database, $bd) or die("Oops some thing went wrong");// we are now connected to database
$result = mysql_query("SELECT * FROM users"); // selecting data through mysql_query()
echo '<table border=1px>'; // opening table tag
echo'<th>No</th><th>Username</th><th>Password</th><th>Email</th>'; //table headers
while($data = mysql_fetch_array($result))
{
// we are running a while loop to print all the rows in a table
echo'<tr>'; // printing table row
echo '<td>'.$data['id'].'</td><td>'.$data['username'].'</td><td>'.$data['password'].'</td><td>'.$data['email'].'</td>'; // we are looping all data to be printed till last row in the table
echo'</tr>'; // closing table row
}
echo '</table>'; //closing table tag
?>
このように表を印刷するのは、1行ずつ読み取るだけなので、簡単に理解できます。
確かに、列名を知らなくてもクエリで機能するように、動的により良いソリューションがありますか?
もしそうなら、これを試してください:
$query = $your_query;
echo '<table border="1">';
echo '<tr>';
foreach($query[0] as $key => $value) {
echo '<td>';
echo $key;
echo '</td>';
}
echo '</tr>';
foreach($query as $row) {
echo '<tr>';
foreach($row as $column) {
echo '<td>';
echo $column;
echo '</td>';
}
echo '</tr>';
}
echo '</table>';
<!DOCTYPE html>
<html>
<head>
<style>
table, th, td {
border: 1px solid black;
}
</style>
</head>
<center>
<body>
<?php
$con = mysql_connect("localhost","root","");
mysql_select_db("rachna",$con);
$query = "SELECT SUM( Ivalue ) AS RESULT FROM loan WHERE cname = 'A' GROUP BY Iyear";
$result = mysql_query($query) or die(mysql_error());
if (mysql_num_rows($result) > 0) {
echo "<table><tr><th></th><th>1999</th><th>2000</th><th>2001</th><th>2003</th></tr>";
echo "<th>A</th>";
//Code for A Customer-------------------------------------------
while($row =mysql_fetch_array($result)) {
echo "<th>" . $row['RESULT'] . "</th>";
}
echo"<tr></tr>";
//COde of B Customer--------------------------------------
echo "<th>B</th>";
$query = "SELECT SUM( Ivalue ) AS RESULT FROM loan WHERE cname = 'B' GROUP BY Iyear";
$result1 = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result1)) {
echo "<th> " . $row["RESULT"]. "</th>";
}
echo "</table>";
} else {
echo "0 results";
}
?>
</center>
</body>
</html>
<div class="container" style="margin-top:2em;margin-bottom:33em;">
<table border="1" class="table table-striped" style="margin-top: 2em;">
<thead>
<tr>
<th>No.</th>
<th>First Name</th>
<th>Last Name</th>
</tr>
</thead>
<tbody>
<?php
// ini_set('display_errors', 1);
// ini_set('display_startup_errors', 1);
// error_reporting(E_ALL);
$servername="localhost";
$username="jaipuror_order";
$password="EEfaM?8$8tpy";
//!@#$%^&*(
$db="jaipuror_order";
$conn=mysqli_connect($servername,$username,$password,$db);
//mysql_select_db($db);
if (!$conn) {
echo "Error: Unable to connect to MySQL." . PHP_EOL;
echo "Debugging errno: " . mysqli_connect_errno($conn) . PHP_EOL;
echo "Debugging error: " . mysqli_connect_error($conn) . PHP_EOL;
exit;
}
@session_start();
$result = $conn->prepare("SELECT customer_id, first_name, last_name FROM customer");
$result->execute();
for($i=0; $row = $result->fetch(); $i++){
?>
<tr>
<td><label><?php echo $row['customer_id']; ?></label></td>
<td><label><?php echo $row['first_name']; ?></label></td>
<td><label><?php echo $row['last_name']; ?></label></td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
OOPスタイル:最初のデータベースとの接続。
<?php
class database
{
public $Host = "localhost";
public $user = "root";
public $pass = "";
public $db = "db";
public $link;
public function __construct()
{
$this->connect();
}
private function connect()
{
$this->link = new mysqli($this->Host, $this->user, $this->pass, $this->db);
return $this->link;
}
public function select($query)
{
$result = $this->link->query($query) or die($this->link->error.__LINE__);
if($result->num_rows>0)
{
return $result;
}
else
{
return false;
}
}
?>
それから:
<?php
$db = new database();
$query = "select * from data";
$result = $db->select($query);
echo "<table>";
echo "<tr>";
echo "<th>Name </th>";
echo "<th>Roll </th>";
echo "</tr>";
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td> $row[name]</td>";
echo "<td> $row[roll]</td>";
echo "</tr>";
}
echo "</table>";
?>