-1

我已经看到以多种方式提出这个问题,但没有一个能解决我的担忧,也没有一个像这个一样处于非常基本的水平。

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

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

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

我想我正在寻找为每一行数据分配变量值。因此,我可以获取该变量并将其放置在我需要它的页面上。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]";
}

?>
4

5 回答 5

1

你说你想:

IE:我有 50 条记录,我只想在页面的某个位置显示 ID 1 的图像和 url,然后在其他位置显示 ID 2 的图像和 url。

您可以遍历表并将所有值放入一个数组中。就像是:

$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'];
于 2013-08-01T06:43:27.203 回答
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 循环相同的技术,然后您可以回显它,将其存储在另一个变量中,以便在您网站的其他任何地方使用。

希望这有帮助。

谢谢,肖恩

于 2013-08-01T06:59:00.130 回答
0

尝试使用limit和order by。限制 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]";
}

?>
于 2013-08-01T06:35:31.653 回答
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)";

不推荐使用 mysql_functions 使用 mysqli 或 PDO

于 2013-08-01T06:35:34.120 回答
0

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

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

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

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

首先,开始使用 PDO。

于 2013-08-01T06:36:25.657 回答