2015-09-18 83 views
0

我有PHP脚本试图从我的mysql数据库中读取数据。名为news.php的第一个脚本从我数据库中的某些行中读取数据,并以摘要形式显示它。它还为每篇文章生成一个独特的超链接,用户可以点击并阅读完整的文章。

这是当你点击通过<a href='read.php?id={$row['id']}'><input type="button" value="Read More" /></a>产生的read.php脚本应该检索和显示从我的数据库完整的文章的超级链接,从我的数据库

<?php 
    // connection string constants 
    define('DSN', 'mysql:dbname=mynewsdb;host=localhost'); 
    define('USER', 'myadmin'); 
    define('PASSWORD', 'pwd2015'); 

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

    // query preparation 
    $stmt = $pdo->query(" 
     SELECT title, introtext, id, created, created_by, catid 
     FROM mynews_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='read.php?id={$row['id']}'><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>'; 
    } 

检索摘要news.php。现场存放物品被命名为fulltext

这是read.php文件

 <?php 
    // connection string constants 
    define('DSN', 'mysql:dbname=mynewsdb;host=localhost'); 
    define('USER', 'myadmin'); 
    define('PASSWORD', 'pwd2015'); 

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

    // query preparation 
    $stmt = $pdo->query(" 
     SELECT fulltext 
     FROM mynews_items 
    "); 
    echo htmlspecialchars($_GET["fulltext"]); 

?> 

可有人指出,我对我的read.php文件制作,因为它加载一个空白页没有任何错误数据。

UPDATED read.php 这是仍然返回空白页面的更新文件。任何人都可以指出任何错误?

<?php 
     $id = $_GET['id']; 
     if(isset($_GET['id'])) 

    // connection string constants 
     define('DSN', 'mysql:dbname=mynewsdb;host=localhost'); 
     define('USER', 'myadmin'); 
     define('PASSWORD', 'pwd2015'); 

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

    // query preparation 
    // $stmt = $pdo->query("SELECT id, fulltext FROM fm16p_k2_items WHERE id='{$row['id']}'", PDO::FETCH_ASSOC); 
    { 
    $sql = mysql_query("SELECT fulltext * FROM fm16p_k2_items WHERE id = '{$id}'"); 
    $row = mysql_fetch_object($sql); 
} 

    echo $row->fulltext; 

?> 
+0

你不抢行,改变'$语句= $ pdo->查询( “选择全文FROM mynews_items”,PDO :: FETCH_ASSOC);' – NemanjaT

+0

我看你也没根据id在read.php中进行查询。首先获取id,然后根据id进行查询。 '$ stmt = $ pdo-> query(“SELECT fulltext FROM mynews_items WHERE id ='your id'”,PDO :: FETCH_ASSOC);' – srmilon

+0

@srmilon我已经更新了代码,但它仍然返回空白页 – nick

回答

-1

你缺少一个WHERE条款,当你取fulltext

0

我没有在上面的代码看,但在代码波纹管,你不抢行,你'重新获取所有fulltext的年代,无论是做这些:

$stmt = $pdo->query("SELECT fulltext FROM mynews_items", PDO::FETCH_ASSOC); 

去取只有一行,但阿里Idrees说,你需要一个WHERE条款,或(即SELECT fulltext FROM mynews_items WHERE id = 3):

foreach ($conn->query($sql) as $row) { 
    echo $row['fulltext']; 
} 

抓住数据库中的所有全文并打印出来。

编辑:另外,它的高度recomended你使用准备好的语句:

$prep = $pdo->prepare("SELECT fulltext FROM mynews_items WHERE id = :id"); 
$prep->bindParam(":id", $id); 
$prep->execute(); 
if($prep->fetch()){ 
    echo $prep['fulltext']; 
} 
+0

这不会返回任何结果 – nick

+0

@nick尝试一些东西就像我编辑的。 – NemanjaT

0

你可能已经得到了你要找的答案,但我想强调的是一个链接内的输入字段不是好的事情要做。但是,如果您想要,可以将链接设置为输入字段。

1

尝试

$sql = $pdo->prepare(" 
    SELECT fulltext 
    FROM mynews_items WHERE id = :id"); 

$sql->execute(array(':id' => $_GET['id'])); 
$stmt = $sql->fetchAll(); 
+0

这也不起作用。你能看看我更新的read.php文件,看看你是否可以识别我的代码中的任何错误? – nick

+0

如果您不想使用PDO,则更改$ pdo = new PDO(DSN,USER,PASSWORD);到mysql_connect和mysql_select_db那么为什么你使用WHERE id ='{$ id}'“而不是WHERE id ='$ id'”?如果你添加表格结构给你的问题,这将是很好的。 – Trike