如何为mysql数据库中的每一行创建一个独特的php页面

时间:2011-03-03 01:24:45

标签: php mysql

我有一个与php连接的mysql数据库。但是,我希望数据库中的每一行都是唯一的页面。任何人都可以提供一些关于如何工作的概述。我很容易将数据库的结果显示为完整的表或选定的行,但是我很难从唯一的行创建单独的页面。

3 个答案:

答案 0 :(得分:10)

好吧,首先你不能,或者很难为你的每一行创建单独的页面。您必须使用一个页面并使用$ _GET全局来更改您应该查看的站点。

例如site.php?id=1

site.php看起来大概是这样的

<?php
$connect = mysql_connect('host', 'user', 'pass');
$select_db = mysql_select_db('database_name');

$id = mysql_real_escape_string($_GET['id']);
//Remove LIMIT 1 to show/do this to all results.
$query = 'SELECT `content` FROM `pages` WHERE `id` = '.$id.' LIMIT 1';
$result = mysql_query($query);
$row = mysql_fetch_array($result);

// Echo page content
echo $row['content'];
?>

通过它,您可以请求任何您想要的ID并检索该行/页面的内容。

答案 1 :(得分:6)

在查询字符串中添加一个与数据库中的id匹配的ID。

$sql = 'SELECT `content` FROM `articles` WHERE `id` = ' . (int) $_GET['id'];

答案 2 :(得分:1)

以下是我如何使用URL为Property数据库中的每一行显示不同页面的示例。

我在下面展示了我的搜索机制,但是可以使用/search/id/123这样的网址来显示ID为123的属性。 $app->Property->search($array)是执行MySQL代码的地方。此脚本导出JSON对象,该对象由Ajax加载并在另一端由JavaScript显示。您不必导出JSON,也可以加载PHP / HTML模板并在PHP中导出页面。

<?php
/*
 * Controller
 * Decodes query string and takes appropriate action
 */

$query = explode('/', parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));
$qs = array();
foreach ($query as $key=>$value) $qs[$key] = urldecode(htmlspecialchars($value));
array_shift($qs); #clear blank first element

# Parse URLs with the following format:
# /search/{$field1}/{$value1}/{$field2}/{$value2}/.../{$fieldN}/{$valueN}
switch ($val = array_shift($qs)) {

    case "search":
        $params = array(); # query array
        $field = true; # switch between field or value
        while (!is_null($val=array_shift($qs))) {
            if ($field) $params[-1] = $val;
            else $params[$params[-1]] = urldecode($val);
            $field = !$field;
        }
        unset($params[-1]);
        $result = $app->Property->search($params);
        header('Content-type: application/json');
        echo json_encode($result, JSON_FORCE_OBJECT);
        exit; #don't load template after exporting JSON object
        break;
...

此脚本与.htaccess脚本一起使用,该脚本将所有请求重定向到我的index.php文件。 index.php在某个时刻加载了这个controller.php文件,该文件处理URL并根据URL加载页面。

这是.htaccess代码:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>