PHP在执行脚本后返回空白页面

时间:2015-09-16 10:14:25

标签: php html mysql css sql

正如大多数人所说,这段代码工作得非常完美。我指向这个脚本的路径有点问题。现在的问题是我遇到了带有href代码行的超链接问题。我的数据库中有一个字段是全文。我正在尝试创建一个脚本,允许我在单击“阅读更多”按钮时显示全文(echo "{$row['fulltext']}.";)的内容。超链接应填充echo "{$row['title']}.";        我插入a href="fulltext.php?=$row['fulltext']

后犯了什么错误
<table>
<?php
    $dbhost = 'localhost';
    $dbuser = 'myusernm';
    $dbpass = 'mypwd';

    $conn = mysql_connect($dbhost, $dbuser, $dbpass);

    if(! $conn )
    {
        die('Could not connect: ' . mysql_error());
    }

    $sql = 'SELECT title, introtext, created, created_by, catid FROM      mydb_items';
    mysql_select_db('muslimtimes360');
    $retval = mysql_query( $sql, $conn );

    if(! $retval )
    {
        die('Could not get data: ' . mysql_error());
    }

    while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
    {
        echo '<tr>'; echo '<td>'; echo '<span class="post-date">'; echo   "{$row['created']}."; echo '</span>'; echo '</td>'; echo '</tr>';
        echo '<tr>';
        echo '<td>'; echo '<h2 class="blog-post-title">'; echo "{$row['title']}."; echo '</h2>'; echo '</td>';
        echo '</tr>';
        echo '<tr>';
        echo '<td>'; echo '<p>'; echo "{$row['introtext']}."; echo '</p>'; echo '</td>'; echo '</tr>';

        echo '<p>'; echo '<tr>';
        echo '<td>'; echo '<a href="#">'; echo '<input type="button" value="Read More" />'; echo '</a>'; echo '</td>';
        echo '</tr>';
        echo '</div>';
        echo '<div class="blog-meta">';
        echo '<img src="img/avatar.png" alt="Avatar" />';
        echo '<tr>'; echo '<td>'; echo '<h4 class="blog-meta-author">'; echo "{$row['created_by']}."; '</h4>';
        echo '<span>'; echo 'Category:'; echo "{$row['catid']}."; echo '</span>'; echo '</td>'; echo '</tr>';
        echo '</table>';
    }

    echo "";

    mysql_close($conn);
?>

4 个答案:

答案 0 :(得分:1)

请注意mysql_fetch_array只需要数据(数组),无需提供MYSQL_ASSOC,Cz您的有冲突的MySQLMySQLi

  

警告   此扩展在PHP 5.5.0中已弃用,并且已在PHP 7.0.0中删除。相反,应该使用MySQLi或PDO_MySQL扩展。

更改此

while($row = mysql_fetch_array($retval, MYSQL_ASSOC))

到这个

while($row = mysql_fetch_array($retval))
只需使用

即可

echo  $row['created'];

无需像echo "{$row['created']}.";

那样使用

答案 1 :(得分:0)

您使用的旧Mysql语法自PHP 5.5.0起已弃用,自PHP 7.0.0起已被删除。 如果您使用的是最新版本的PHP,那么您的代码将无法正常工作。请更改相应的语法并重试。

答案 2 :(得分:0)

尝试删除第一行表并放入

例如

while($row = mysql_fetch_array($retval))
    {
     echo '<table>';

答案 3 :(得分:0)

我尝试使用仅调整过的连接凭据和表/列名来运行您的代码,它运行正常(使用php 5.5和php 5.3)。

数据库中没有记录可能吗?另一种可能性可能是一些错字。

编辑:此外,您只有一个table开始标记,而关闭标记与存在的记录一样多。尝试检查“空白页面”的源代码。

Edit2:尝试运行此代码段而不是以前的代码,让我们知道会发生什么:

<?php
    // connection string constants
    define('DSN', 'mysql:dbname=muslimtimes360;host=localhost');
    define('USER', 'myusernm');
    define('PASSWORD', 'mypwd');

    // pdo instance creation
    $pdo = new PDO(DSN, USER, PASSWORD);

    // query preparation
    $stmt = $pdo->query("
        SELECT title, introtext, created, created_by, catid
        FROM mydb_items
    ");

    // fetching results
    $result = $stmt->fetchAll(PDO::FETCH_ASSOC);

    // if this returns 0 then it means no records are present
    echo count($result) . "\n";

    // the loop should print valid table
    foreach ($result as $index => $row) {
        if ($index == 0) echo '<table>';
        echo <<<HTM
<tr>
    <td>
        <span class="post-date">{$row['created']}</span>
    </td>
</tr>
<tr>
    <td>
        <h2 class="blog-post-title">{$row['title']}</h2>
    </td>
</tr>
<tr>
    <td>
        <p>
            {$row['introtext']}
        </p>
    </td>
</tr>

<tr>
    <td>
        <p>
            <a href="#"><input type="button" value="Read More" /></a>
        </p>
    </td>
</tr>
<tr>
    <td>
        <div class="blog-meta">
            <img src="img/avatar.png" alt="Avatar" />
            <h4 class="blog-meta-author">{$row['created_by']}</h4>
            <span>Category: {$row['catid']}</span>
        </div>
    </td>
</tr>
HTM;
        if ($index == (count($result)-1)) echo '</table>';
    }