PDO选择WHERE(会话变量)

时间:2015-10-25 15:03:50

标签: php mysql session pdo

我想要一个页面显示与在前一页上随机设置的liste_slogans相对应的所有结果。因此,在第一页上,生成了来自数据库$_SESSION的随机信息,其ID保存在<?php $bdd=new PDO('mysql:host=localhost;dbname=slogans', 'root', 'root', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); $reponse = $bdd->query('SELECT id, slogan, compagnie FROM liste_slogans ORDER BY rand() LIMIT 1,1'); header("Content-type: text/html;charset=UTF-8"); while ($donnees = $reponse->fetch()) { echo '<p class="apparition1" element style="color:aqua">' . ($donnees['slogan']) . ' <element style="color:transparent">' . ($donnees['id']) . '' . ($donnees['compagnie']) . '</element style></p>'; $_SESSION['id_slogan']=$donnees['id']; $_SESSION['compagnie']=$donnees['compagnie']; $_SESSION['slogan']=$donnees['slogan']; } ?> 变量中:

entrees

在另一页上,我想显示数据库id_slogan中与{1}}匹配的所有条目与第一页上设置的会话变量相匹配。我已尝试过这个和许多其他事情,但似乎没有任何作用:

<?php
    try
    {
        $bdd=new PDO('mysql:host=localhost;dbname=slogans;charset=utf8', 'root', 'root');
    }
    catch(Exception $e)
    {
        die('Erreur : '.$e->getMessage());
    }   

    $nbid = $_SESSION['id_slogan'];
    $reponse=$bdd->query('SELECT pseudo, entree FROM entrees WHERE id_slogan = '.$nbid' ORDER BY ID DESC LIMIT 0, 50');

    while ($donnees=$reponse->fetch())
    {
        echo '<h4 class=resultats><strong>' . htmlspecialchars($donnees['entree']) . ' </strong></h4> <p class=resultats> ' . htmlspecialchars($donnees['pseudo']) . '</p>';
    }
    $reponse->closeCursor();
?>  

有人可以帮我吗?

编辑:实际上涉及3个页面,我在每个页面上开始会话;我在最后一页,最后一页结束。

1 个答案:

答案 0 :(得分:1)

在一个完美的世界中,PHP可以检测到您想要使用会话并且只是玩得很​​好,但事实并非如此。

使用会话变量在您的页面上缺少行

session_start();

使用会话变量(以及您拥有的任何其他变量)将它直接放在两个页面上的起始<?php标记下

请参阅session_start

  

session_start()创建会话或恢复当前会话   通过GET或POST请求传递的会话标识符,或通过   cookie中。