我已经在很多方面看到过这个问题,但没有一个问题可以解决我的问题,也不是像这个问题那样基本的问题。
如何在我的网站上显示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]";
}
?>
答案 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。