使用PHP在我的网站上显示数据库表数据

时间:2013-08-01 06:29:02

标签: php mysql database

我已经在很多方面看到过这个问题,但没有一个问题可以解决我的问题,也不是像这个问题那样基本的问题。

如何在我的网站上显示SQL数据库中的数据?更具体地说,我该怎么做 选择我想要显示哪些列/字段?

编辑:我有3个字段/列。 ID,URL,IMAGE(每个都具有唯一值。)

假设我的表中有10条记录/行。我想在我的网页上显示所有10个但我需要控制每个网址和每个图像放在页面上的位置。与以下所有内容一样,只需将所选内容转储到页面即可。

我想我正在寻找为每行数据分配变量值。因此,我可以将该变量放在我需要它的页面上。 IE:

'<a href=".$TABLE_URL_VARIABLE."><a>'

甚至不确定它是否会如上所示,但它只是一个例子

我的代码

<?php

mysql_connect('localhost', 'root', '');
mysql_select_db('update_ad');

$sql = "select * from ads";
$query = mysql_query( $sql );

while( $row = mysql_fetch_assoc($query) )
{
echo "$row[id]";
echo "$row[image]";
echo "$row[url]";
}

?>

5 个答案:

答案 0 :(得分:1)

你说你想:

  

IE:我有50条记录我只想显示ID 1的图像和网址,然后在网页上显示ID 2的图像和网址。

您可以遍历表并将所有值放在数组中。类似的东西:

$array_result = array();
while( $row = mysql_fetch_assoc($query) )
{
  $array_result[$row['id']] = array('image' => $row['image'], 'url' => $row['url']);
}

然后;在代码中的其他地方,如果您需要id为1的图像,以及id为2的url。您可以执行以下操作:

echo $array_result[1]['image'] . $array_result[2]['url'];

答案 1 :(得分:1)

首先,如果您使用Select *,您将从表中返回所有内容。您需要重写查询,它总是更好,更容易使用参数化查询。

查询类似的内容

SELECT `id`,`image`,`url` FROM ads WHERE id IN (3, 23, 41)

即使你做了

SELECT * FROM ads WHERE id IN (3, 23, 41)

您将从两个查询中获得相同的结果,因为您的表中只有3列但我只是为了良好的实践而编写参数化查询。

其次,请使用 mysqli 而不是 mysql 查找,因为mysql似乎已被折旧。我使用mysqli,你真的不会发现语法上的巨大差异。甚至有一个使用PDO的选项,但我自己没有使用它,所以我可以;评论很多,但你可以看看它。

如果您喜欢视频观看此http://thenewboston.org/watch.php?cat=11&number=113以及下一部分以及使用mysqli,如果您想阅读,请查看此文http://www.pontikis.net/blog/how-to-use-php-improved-mysqli-extension-and-why-you-should

在任何情况下回到你的问题,一旦你设置你的连接并使用新的查询,那么你遵循与mysqli_fetch_assoc循环相同的技术,你要么回应它,将它存储在另一个变量中,以便在其他任何地方使用你的网站。

希望这会有所帮助。

谢谢,肖恩

答案 2 :(得分:0)

尝试使用限制和排序依据。限制3将只获取3条记录,而RAND()的订单将从数据库中随机获取记录。而不是*给出字段名称。

<?php

mysql_connect('localhost', 'root', '');
mysql_select_db('update_ad');

$sql = "select id,image,url from ads order by RAND() limit 3";
$query = mysql_query( $sql );

while( $row = mysql_fetch_assoc($query) )
{
echo "$row[id]";
echo "$row[image]";
echo "$row[url]";
}

?>

答案 3 :(得分:0)

这是一个简单的编程......你可以在循环中选择它

while( $row = mysql_fetch_assoc($query)   )
{
   if(!in_array($row['id'],array(3,41,25))
       continue;
   echo "{$row['id']}";
   echo "{$row['image']}";
   echo "{$row['url']}";
}

?>

或者您可以在sql select

期间执行此操作
$sql = "select * from ads where id in (3,41,25)";

也不推荐使用mysq_functions使用mysqli或PDO

答案 4 :(得分:0)

我不确定,但也许您正在寻找IN

SELECT * FROM ads WHERE id IN (3, 23, 41)

它只选择具有该IDS的三条记录。

编辑:如果要使用所有记录,只需将每行分配给数组。在循环声明$results = array();之前并在循环中使用$results[$row['id']] = $row;。 在您想要使用获取行的每个地方,只需编写类似echo $results[15]['url'];的内容,即可从ID为15的行中获取网址。

首先,开始使用PDO。