2015-09-16 137 views
0

这段代码与大多数人说的一样完美。我在指向这个脚本的路径上遇到了一点问题。现在的问题是我在使用href代码行的超链接时遇到问题。我在我的数据库中有一个标有全文的字段。我试图创建一个脚本,当我单击Read More按钮时,允许我显示全文内容(echo "{$row['fulltext']}.";)。超链接应与echo "{$row['title']}."; 什么错误来填充我会通过插入a href="fulltext.php?=$row['fulltext']PHP在执行脚本后返回一个空白页面

<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); 
?> 
+2

格式代码正确,请,这是一个烂摊子。 – Epodax

+0

你检查过任何语法错误吗?如果不是那么请先通过这个,之后检查内容是否真的没有出现。我的意思是,有时我们将文本颜色设置为与背景颜色相同,并且我们无法看到内容,如果可能的话分享您的CSS。 –

+0

你应该真的使用MySQLi或PDO,MySQL从PHP 5.5.0开始已弃用。看看http://stackoverflow.com/questions/8891443/when-should-i-use-mysqli-instead-of-mysql和http://stackoverflow.com/questions/13569/mysqli-or-pdo-优缺点都有什么。 – JoeP

回答

0

您正在使用旧版本的MySQL语法,被弃用的PHP 5.5.0,并作为PHP 7.0.0已被移除使得。 如果您使用PHP的最新版本,那么您的代码将无法工作。更改相应的语法并重试。

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']}.";

0

尝试删除第一行表和把里面的

例如

while($row = mysql_fetch_array($retval)) 
    { 
    echo '<table>'; 
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>'; 
    } 
+0

我正在使用php 5.4。这可能是问题吗?我也尝试了几个建议,但似乎没有任何工作。 – nick

+0

@nick PHP版本不应该在这种情况下。你可以尝试的另一件事是在脚本的顶部设置'error_reporting(-1);'。也许会出现一些有用的通知。 – helvete

+0

@nick:看到编辑的答案.. – helvete