数据库检索代码显示代码本身而不是查询结果

时间:2014-07-31 22:09:42

标签: php html mysql

我只是学习PHP和MySQL,所以我猜测我的错误是非常明显的。

我有一个名为inventory的数据库表,我试图提取有关名为Mustang的汽车的信息。这是Make列下的汽车名称。

我遇到的问题是我的第一个echo语句并未以结束"和以下;结束。它反映了代码中跟随它的所有内容,直到?>在文件的末尾。

这是代码本身。请注意,这只是我在phpmyadmin中在10分钟内拼凑而成的数据库,而不是任何正式的数据库。

<!DOCTYPE html>
<html>
    <head>
        <title>Realistic Autos Inventory</title>
        <script>
            <?php
                function GetInventory($CarName)
                {
                    $user="Uhrmacher";
                    $host="localhost";
                    $password="";
                    $dbname="realistic autos";
                    $cxn= mysqli_connect($host, $user, $password, $dbname) or die("Failure to Communicate!");
                    $query = "SELECT * FROM inventory WHERE Make='$CarName'";
                    $result = mysqli_query($cxn, $query) or die ("Failure to Query!");
                    $index=1;
                    while($row=mysqli_fetch_query($result))
                    {
                        foreach($row as $colname => $value)
                        {
                            $array_multi[$index][$colname]=$value;
                        }
                        $index++;
                    }
                    return $array_multi;
                }
            ?>
        </script>
    </head>
    <body>
        <?php
            $CarName = "Mustang";
            $CarInfo = GetInventory($CarName);
            echo "<h1>{$type}s</h1>\n";
            echo "<table cellspacing='15'>\n";
            echo "<tr><td colspan='4'><hr /></td></tr>\n";
            for ($i=1; $i<=sizeof($CarInfo); $i++)
            {
                $f_price = number_format($CarInfo[$i]['Price'], 2);
                echo "<tr>\n
                    <td>$i.</td>\n
                    <td>{$CarInfo[$i]['StockNumber']}</td>\n
                    <td>{$CarInfo[$i]['Year']}</td>\n
                    <td>{$CarInfo[$i]['Make']}</td>\n
                    <td>{$CarInfo[$i]['Model']}</td>\n
                    <td>{$CarInfo[$i]['Package']}</td>\n
                    <td style='text-align: right'>\$$f_price</td>\n
                    <td>{$CarInfo[$i]['CurrentMiles']}</td>\n
                    <td>{$CarInfo[$i]['Engine']}</td>\n
                    <td>{$CarInfo[$i]['Transmission']}</td>\n
                    <td>{$CarInfo[$i]['DriveType']}</td>\n
                    <td>{$CarInfo[$i]['VIN']}</td>\n
                    <td>{$CarInfo[$i]['BoughtFrom']}</td>\n
                    <td>{$CarInfo[$i]['BoughtHow']}</td>\n
                    <td>{$CarInfo[$i]['LicensingFee']}</td>\n
                    <td>{$CarInfo[$i]['GasMileage']}</td>\n
                    </tr>\n";
                echo "<tr><td colspan='4'><hr /></td></tr>\n";
            }
            echo "</table>\n";
        ?>
    </body>
</html>

以下是输出。

\n"; echo "
\n"; for ($i=1; $i<=sizeof($CarInfo); $i++) { $f_price = number_format($CarInfo[$i]['Price'], 2); echo "\n $i.\n {$CarInfo[$i]['StockNumber']}\n {$CarInfo[$i]['Year']}\n {$CarInfo[$i]['Make']}\n {$CarInfo[$i]['Model']}\n {$CarInfo[$i]['Package']}\n \$$f_price\n {$CarInfo[$i]['CurrentMiles']}\n {$CarInfo[$i]['Engine']}\n {$CarInfo[$i]['Transmission']}\n {$CarInfo[$i]['DriveType']}\n {$CarInfo[$i]['VIN']}\n {$CarInfo[$i]['BoughtFrom']}\n {$CarInfo[$i]['BoughtHow']}\n {$CarInfo[$i]['LicensingFee']}\n {$CarInfo[$i]['GasMileage']}\n \n"; echo "
\n"; } echo "\n"; ?>

我不确定如何搜索这个,很抱歉,如果这是一个常见的问题。

1 个答案:

答案 0 :(得分:1)

从那些脚本标签中获取php!把它全部放到一个不错的php块中。理想情况下,您可以执行类似于“connect.php”页面的操作,仅用于设置数据库连接,然后执行操作,但它将在您现在拥有的页面上运行。

摆脱所有那些“\ n”。那些帮助任何事情。您不需要在html中添加行,您的浏览器就会理解。 (我假设你把它们放进去了)。当你创建表时,你会发生一些疯狂的事情。也许你需要它,所以它的格式很漂亮。我拿出来了。让我们先获得基本功能。表结构如下:表 - 行 - 行定义 - closingTableTag。

编辑:我也不知道为什么你之前有角色,但要确保它们已经消失了。并确保您将文件保存为.php而不是.html。

试试这个,回到我们身边。

 <!DOCTYPE html>
<html>
    <head>
        <title>Realistic Autos Inventory</title>
    </head>
    <body>
        <?php

            $user="Uhrmacher";
            $host="localhost";
            $password="";
            $dbname="realistic autos";
            $cxn= mysqli_connect($host, $user, $password, $dbname) or die("Failure to Communicate!");

            function GetInventory($CarName){
                $query = "SELECT * FROM inventory WHERE Make='$CarName'";
                    $result = mysqli_query($cxn, $query) or die ("Failure to Query!");
                    $index=1;
                    while($row=mysqli_fetch_query($result))
                    {
                        foreach($row as $colname => $value)
                        {
                            $array_multi[$index][$colname]=$value;
                        }
                        $index++;
                    }
                    return $array_multi;
            }           
            $CarName = "Mustang";
            $CarInfo = GetInventory($CarName);
            echo "<h1>{$type}s</h1>";
            echo "<table>";
           //table header for every column you have. You could write a for loop to simplify
            echo "<tr><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th></tr>";
            for ($i=1; $i<=sizeof($CarInfo); $i++)
            {
                $f_price = number_format($CarInfo[$i]['Price'], 2);
                echo "<tr>
                    <td>$i.</td>
                    <td>{$CarInfo[$i]['StockNumber']}</td>
                    <td>{$CarInfo[$i]['Year']}</td>
                    <td>{$CarInfo[$i]['Make']}</td>
                    <td>{$CarInfo[$i]['Model']}</td>
                    <td>{$CarInfo[$i]['Package']}</td>
                    <td>$f_price</td> //DONT GET FANCY YET, JUST MAKE SURE IT WORKS 
                    <td>{$CarInfo[$i]['CurrentMiles']}</td>
                    <td>{$CarInfo[$i]['Engine']}</td>
                    <td>{$CarInfo[$i]['Transmission']}</td>
                    <td>{$CarInfo[$i]['DriveType']}</td>
                    <td>{$CarInfo[$i]['VIN']}</td>
                    <td>{$CarInfo[$i]['BoughtFrom']}</td>
                    <td>{$CarInfo[$i]['BoughtHow']}</td>
                    <td>{$CarInfo[$i]['LicensingFee']}</td>
                    <td>{$CarInfo[$i]['GasMileage']}</td>
                    </tr>";
            }
            echo "</table>";
        ?>
    </body>
</html>