在页面的不同部分回显相同的MySql查询

时间:2015-04-17 00:23:14

标签: php mysql cordova phonegap-build

这可能是一个愚蠢的问题,但我试图将相同的查询调用到两个不同的页面,但是一旦我第二次调用,页面的链接将不再起作用。我现在设置它的方式是应用程序中的所有页面都在一个文件(index.php)上。我使用id(href =“#page2”)链接到每个页面。如果我调用相同的查询,根据页面的顺序,只有“顶部”页面,或者在这种情况下,第1页将起作用。我尝试更改变量名称,以便将其视为不同的调用但无效。

我正在使用Phonegap Build开发此应用程序,如果ANYBODY可以提供帮助,那将非常有用。

Page 1

<div data-role="page" id="page1">    
<form action="post-comment.php" method="POST">
        <h3>COMMENT</h3>
        <input type="text" name="name" placeholder="Name"><br />
        <textarea name="comment" cols="50" rows="2" placeholder="Enter Comment"></textarea><br />
        <input type="submit" value="comment" onClick="javascript.ajax_post()"></input><br />
        </form>

    <?php
    $find_comments = mysql_query("SELECT * FROM COMMENTS");
    while($row = mysql_fetch_assoc($find_comments))
    {
    $comment_name = $row['name'];
    $comment = $row['comment'];

    echo "$comment_name - $comment<br />" ;
    }
    ?>
</div>

第2页

<div data-role="page" id="page2">
    <?php
        $find_comments1 = mysql_query("SELECT * FROM COMMENTS");
        while($row = mysql_fetch_assoc($find_comments1))
        {
        $comment_name1 = $row['name'];
        $comment1 = $row['comment'];

        echo "$comment_name1 - $comment1<br />" ;
        }
        ?>
</div>

1 个答案:

答案 0 :(得分:0)

我建议使用PDO - DOC代替mysql,我会这样做:

连接到您的数据库:

 $hostdb = "your_host";
 $namedb = "db_name";
 $userdb = "user_name";
 $passdb = "pass";

 $options =  array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING);
    try {
           $db = new PDO("mysql:host=$hostdb; dbname=$namedb; charset=utf8", $userdb, $passdb, $options);
                    return $db;
        } catch (PDOException $e) {
                    $err = "DB Connection Error, because: ". $e->getMessage();
                    print $err;
        }

现在,您可以使用$db在脚本中连接数据库并获取注释:

<div data-role="page" id="page1">    
<form action="post-comment.php" method="POST">
        <h3>COMMENT</h3>
        <input type="text" name="name" placeholder="Name"><br />
        <textarea name="comment" cols="50" rows="2" placeholder="Enter Comment"></textarea><br />
        <input type="submit" value="comment" onClick="javascript.ajax_post()"></input><br />
</form>

    <?php
    $find_comments ="SELECT * FROM COMMENTS";
    $stmt = $db->prepare($find_comments);
    if(!$stmt->execute()){
        print "error";
    } else {
         $comments = $stmt->fetchAll(PDO::FETCH_ASSOC);
         foreach($comments as $comment) {
              echo $comment['name']."</br>";
              echo $comment['comment'] ;

       }
         $stmt->closeCursor(); // Close connection

    }

    ?>
</div>

然后在你的Page2中做与Page1相同的事情。您可以将SQL语句定义为全局变量,并在第二个查询中重复使用它。只需确保使用closeCursor();关闭数据库连接。