0

嘿伙计们,我写了一小段代码,它连接到数据库,然后将一些数据输出,echo但它不像我想要的那样工作:编辑更新代码:

   <html>
 <head>
  <title>Automatische E-mails</title>
 </head>
 <body>
 <?php
    include("db_login.php");

    $link = mysql_connect($host, $user, $pass) or die ("Keine Verbindung zu der Datenbank moeglich.");
    mysql_select_db($db, $link);
    $sql = "SELECT `ID_Zuordnung`, `Username`, `Hostname_alt`, `Datum_Ausgabe` FROM `zuordnung` WHERE `Status_Tausch` = 'OK' AND `Status_Altgeraet` = 'NOK' ORDER BY `Hostname_alt` ASC";

    $result = mysql_query($sql);

    while($resultarray = mysql_fetch_array($result))
    {
            echo '<p>'.$resultarray['HW_Typ'].'</p>';
            echo '<p>'.$resultarray['Hostname_alt'].'</p>';
            echo '<p>'.$resultarray['Username'].'</p>';
            echo '<p>'.$resultarray['Emailadresse'].'</p>';
            echo '<p>'.$resultarray['Datum_Ausgabe'].'</p>';
            echo '<p>'.$resultarray['Abteilung'].'</p>';
    }

    ?> 
 </body>
</html>

运行产生了这个输出:

'.$resultarray['HW_Typ'].'

'; echo '

'.$resultarray['Hostname_alt'].'
'; echo '

'.$resultarray['Username'].'
'; echo '

'.$resultarray['Emailadresse'].'
'; echo '

'.$resultarray['Datum_Ausgabe'].'
'; echo '

'.$resultarray['Abteilung'].'
'; } ?> 

我不知道我的错误在哪里,因为昨天一切正常!

4

5 回答 5

2

我看到有几件事可能会导致问题:

1:

1.1:查询。你有一个 ) 但无处是一个 ( 所以可以删除一个......最后你还有一个 ; 。不能伤害它,但不是必需的

1.2 你在 Zuordnung_ID 之后缺少一个 ,

1.3 按订单,您是否错过了订单的方式(ASC 或 DESC)

1.4 另一个注意事项(据我所知不需要,但它是这样教给我的,字段名必须用 ` 包围

所以 sql 代码将如下所示:

$sql = "SELECT `Zuordnung_ID`, `HW_Typ`, `Hostname_alt`, `Username`, `Emailadresse`, `Datum_Ausgabe`, `Abteilung`
        FROM `zuordnung`
            ON `users.Username` = `zuordnung.Username`
        WHERE `Status_Tausch`='OK' AND `Status_Altgeraet`='NOK'
        ORDER BY `Hostname_alt` ASC";

2:

echo 不需要 (),并尝试在开头和和处使用相同的引号。所以它看起来像这样:

while($resultarray = mysql_fetch_array($result))
    {
            echo '<p>'.$resultarray['HW_Typ'].'</p>';
            echo '<p>'.$resultarray['Hostname_alt'].'</p>';
            echo '<p>'.$resultarray['Username'].'</p>';
            echo '<p>'.$resultarray['Emailadresse'].'</p>';
            echo '<p>'.$resultarray['Datum_Ausgabe'].'</p>';
            echo '<p>'.$resultarray['Abteilung'].'</p>';
    }

你应该试试这个

版本 2: 试试这个:

$textHolder = "";
while($resultarray = mysql_fetch_array($result))
    {
            $textHolder .= '<p>' . $resultarray['HW_Typ'] . '</p>';
            $textHolder .= '<p>' . $resultarray['Hostname_alt'] . '</p>';
            $textHolder .= '<p>' . $resultarray['Username'] . '</p>';
            $textHolder .= '<p>' . $resultarray['Emailadresse'] . '</p>';
            $textHolder .= '<p>' . $resultarray['Datum_Ausgabe'] . '</p>';
            $textHolder .= '<p>' . $resultarray['Abteilung'] . '</p>';
    }
echo $textHolder;

如果第 2 版不起作用,请尝试第 3 版

版本 3:

您可以尝试的是我用来解析数据库中的数据的方法。mysql_fetch_assoc。那么代码将如下所示:

$textHolder = "";
while($resultassoc = mysql_fetch_assoc($result))
    {
            $textHolder .= '<p>' . $resultassoc['HW_Typ'] . '</p>';
            $textHolder .= '<p>' . $resultassoc['Hostname_alt'] . '</p>';
            $textHolder .= '<p>' . $resultassoc['Username'] . '</p>';
            $textHolder .= '<p>' . $resultassoc['Emailadresse'] . '</p>';
            $textHolder .= '<p>' . $resultassoc['Datum_Ausgabe'] . '</p>';
            $textHolder .= '<p>' . $resultassoc['Abteilung'] . '</p>';
    }
echo $textHolder;
于 2012-10-09T11:23:25.417 回答
0

采用

        echo "<p>$resultarray['HW_Typ']</p>";
        echo "<p>$resultarray['Hostname_alt']</p>";
        echo "<p>$resultarray['Username']</p>";
        echo "<p>$resultarray['Emailadresse']</p>";
        echo "<p>$resultarray['Datum_Ausgabe']</p>";
        echo "<p>$resultarray['Abteilung']</p>";

将工作

于 2012-10-09T07:08:37.547 回答
0

代码未正确复制到此处,'或者db_login.php. 非常仔细地检查。

于 2012-10-09T07:20:36.047 回答
0

您的 Sql 查询似乎有错误。可能您错过了前 2 列(Zuordnung_ID、HW_Typ)之间的逗号,并且查询使用了 ON 连接条件,但用户表没有 JOIN。

确保您的查询是正确的,或者以下查询是否正确?

SELECT Zuordnung_ID, HW_Typ, Hostname_alt, Username, Emailadresse, Datum_Ausgabe, Abteilung
FROM zuordnung
    INNER JOIN users ON users.Username = zuordnung.Username)
WHERE Status_Tausch='OK' AND Status_Altgeraet='NOK'
ORDER BY Hostname_alt
于 2012-10-09T07:21:29.277 回答
0

这实际上看起来就像您的网络服务器没有启用 PHP,而是为您提供原始源文件。我敢打赌,如果您查看源代码,您将看到整个 PHP 源代码。

于 2012-10-09T11:39:13.333 回答