Php 显示特定ID的数据

Php 显示特定ID的数据,php,html,mysql,Php,Html,Mysql,我已经尝试了一段时间,想知道如何根据ID显示数据库中特定行的数据 假设我希望链接为survivaloperations.net/page/mso?p=contracts&id= 其中id=是从数据库中提取数据的行的id 如何使用如上所示的链接从数据库中提取和显示数据 我试着用谷歌搜索它,但不知道用谷歌搜索什么才能找到相关的东西 欢迎提供任何帮助或参考链接 以下是我尝试过的: <?php if ($p == contracts) { $id = isset($_GET['id'])

我已经尝试了一段时间,想知道如何根据ID显示数据库中特定行的数据

假设我希望链接为survivaloperations.net/page/mso?p=contracts&id=

其中id=是从数据库中提取数据的行的id

如何使用如上所示的链接从数据库中提取和显示数据

我试着用谷歌搜索它,但不知道用谷歌搜索什么才能找到相关的东西

欢迎提供任何帮助或参考链接

以下是我尝试过的:

<?php
if ($p == contracts) {
    $id = isset($_GET['id']) ? (int)$_GET['id'] : 0; // if $_GET['id'] exists, return it as an integer, otherwise use a sentinel, id's usually start with 1, so 0 works

if ($id != 0):
    // I assume this is a specific news item meaning you know it's ONE result
    $query = 'SELECT * FROM contracts WHERE id=' . $id . ' LIMIT 1'; // so try to use limit 1, no need to add extra steps in the database lookup
endif;

mysql_select_db('survival_contracts');
$result = mysql_query($query);
//$result = mysql_query($query) or die(mysql_error());
// now loop through the results
while ($row = mysql_fetch_array($result)) {
    // and use'em however you wish
    echo("<div class='mso_body_wrap'>
            <div id='mso_news_container'>
                <div class='mso_news_wrap'>
                    <div class='mso_news_top'>$row2[contract_type]</div>
                    <div class='mso_news_poster'>
                        <div class='mso_poster_avatar'><img src='images/tank.jpg'></div>
                        <div class='mso_poster_info'>for <a
                                href='#'>$row2[unit]</a><br/>by: <a
                                href='http://www.survivaloperations.net/user/$row2[userid]-$row2[username]/'>$row2[username]</a>
                        </div>
                    </div>
                    <div class='mso_news_content'>
                        <div class='mso_news_body'>
                            Callsign: $row2[callsign]<br/>
                            Urgency: $row2[urgency]<br/>
                            Location: $row2[location]<br/>
                            Grid: $row2[grid]<br/>
                            Enemy Activity: $row2[enemy_activity]<br/>
                            Hours Since Lasrt Contact: $row2[contact_hours]<br/><br/>
                            Supplies Requested: $row2[supplies]<br/>
                            Comments: $row2[comments]
                        </div>
                    </div>
                    <div class='mso_news_bottom'></div>
                </div>
            </div>");
}
?>

Google for$\在PHP中获取变量,并查看使用PDO或mysqli的数据库连接

添加代码后:

不推荐使用mysql。尝试切换到mysqli或PDO,并查看上面的链接

$id = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT) ? abs( (int) $_GET['id']) : 0;
if($id == 0) {
 echo 'Invalid ID';
 return;
} else {
 $query = "SELECT * FROM `table` WHERE `id`=". $id;
 $get = $db->prepare($query);
 if($get) { 
   $get = $db->query($query);
   $r = $get->fetch_array(MYSQLI_ASSOC);
   var_dump($r);
 } else {
   echo 'Could not connect to the database';
   return;
}
我混合了两种风格的MySQLi,这并不是真正的标准,但对于这个例子来说应该足够了


确保您有数据库连接

我用我的原始代码计算出来:

if ($p == contracts)
        {           
            $cid = $_GET['id']; // if $_GET['id'] exists, return it as an integer, otherwise use a sentinel, id's usually start with 1, so 0 works

                $query = 'SELECT * FROM contracts WHERE id='. $cid .' LIMIT 1'; // so try to use limit 1, no need to add extra steps in the database lookup

            mysql_select_db('survival_contracts');
            $result = mysql_query($query);
            //$result = mysql_query($query) or die(mysql_error());
            // now loop through the results
            while($row = mysql_fetch_array($result)){
                // and use'em however you wish
                echo ("<div class='mso_body_wrap'>
        <div id='mso_news_container'>
            <div class='mso_news_wrap'>
                <div class='mso_news_top'>$row[contract_type]</div>
                <div class='mso_news_poster'>
                    <div class='mso_poster_avatar'><img src='images/tank.jpg'></div>
                    <div class='mso_poster_info'>for <a href='#'>$row[unit]</a><br />by: <a href='http://www.survivaloperations.net/user/$row[userid]-$row[username]/'>$row[username]</a></div>
                </div>
                <div class='mso_news_content'>
                    <div class='mso_news_body'>
                    Callsign: $row[callsign]<br />
                    Urgency: $row[urgency]<br />
                    Location: $row[location]<br />
                    Grid: $row[grid]<br />
                    Enemy Activity: $row[enemy_activity]<br />
                    Hours Since Lasrt Contact: $row[contact_hours]<br /><br />
                    Supplies Requested: $row[supplies]<br />
                    Comments: $row[comments]
                    </div>
                </div>
                <div class='mso_news_bottom'></div>
            </div>
        </div>");
            }
$row2应为$row

诸如此类

$row[contract_type]
最好是

$row['contract_type']

按照之前海报的建议,尝试移动到mysqli或PDO,您至少必须尝试一些东西,然后将其发布到此处进行修改,否则这只是一个代码请求。检查一下PHP和MySql部分:大约47900000个结果0.44秒请注意:MySql不推荐使用。最好使用mysqli或PDO。