gpt4 book ai didi

PHP MYSQL List Data inside Table 问题

转载 作者:行者123 更新时间:2023-11-29 00:45:08 27 4
gpt4 key购买 nike

下面是我的 PHP 代码,用于在表格中显示数据库中的所有数据..

如果我使用下面的代码登录并选择数据库而不是使用 PDO:

 mysql_connect("localhost","root","12345678") or die(mysql_error());
mysql_select_db("clubresults") or die(mysql_error());
$query=mysql_query("SELECT * from events ORDER By EventID ASC") or die(mysql_error());

输出为我提供了一个包含正确列出的所有数据的表格。

但是如果我使用 PDO.. 它会给我这个错误:

Warning: mysql_num_fields() expects parameter 1 to be resource, object given in C:\xampp\htdocs\clubresults\listevents.php on line 52

Warning: mysql_fetch_row() expects parameter 1 to be resource, object given in C:\xampp\htdocs\clubresults\listevents.php on line 58

下面是完整的 php 代码,用于获取数据并将其放入表中(不起作用)任何人都可以指出我哪里有错误?因为我自己似乎无法弄清楚..非常感谢所有建议!谢谢!

$pdo = new PDO('mysql:host=localhost;dbname=clubresults', 'root', '12345678');
#Set Error Mode to ERRMODE_EXCEPTION.
$pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);


$query=$pdo->query('SELECT * from events ORDER By EventID ASC');


<<<<<<<<<<<<<<<<THIS BIT WORKS IF NOT USING PDO>>>>>>>>>>
$numfields = mysql_num_fields($query);
print("<table border=\"1\">\n<tr>\n");
for ($i=0; $i<$numfields; $i++) {
printf("<th>%s</th>\n", mysql_field_name($query,$i));
}
print("</tr>\n");
while ($row = mysql_fetch_row($query)) {
print("<tr>\n");
for ($i=0; $i<sizeof($row); $i++) {
printf("<td><a href=\"index.php?ID=%s\">%s</a></td>\n", $row[0],$row[$i]);
}
print("</tr>\n");
}
print("</table>\n");

最佳答案

您将无法将 mysql_num_fields()mysql_fetch_row() 与 PDO 一起使用——它们是不同 API(旧的 MySQL 扩展)的一部分。

相反,由于您调用了 PDO::query(),因此请调用 $query->fetch()。使用第一行的数组键构建表格标题。

$query = $pdo->query('SELECT * from events ORDER By EventID ASC');
$rowset = array();

if ($query) {
while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
// Build array of rows
$rowset[] = $row;
}

// Output header first
$headrow = $rowset[0];
print("<table border=\"1\">\n<tr>\n");
// Use $rowset[0] to write the table heading
foreach ($headrow as $col => $val) {
printf("<th>%s</th>\n", $col);
}
print("</tr>");

// Then output table rows.
// Outer loop iterates over row
foreach ($rowset as $row) {
print("<tr>");
// Inner loop iterates over columns using $col => $val
foreach ($row as $col => $val) {
// We don't know your column names, but substitute the first column (the ID) for FIRSTCOL here
printf("<td><a href=\"index.php?ID=%s\">%s</a></td>\n", $row['FRISTCOL'],$val);
}
print("</tr>");
}
}
print("</table>");

附录

通常,我建议不要使用 SELECT * 并动态写出您的列标题。相反,请明确说明您在 SELECT 语句中请求的列,并在您写出的表中明确说明它们。这样,您就可以确定列出现的顺序,并且您永远不会因为向表中添加了不应出现在屏幕输出中的列而被抓到。

关于PHP MYSQL List Data inside Table 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10826225/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com