因为我已经发布了这个并且有些人将我的问题作为“重复”而没有实际回答它(他们告诉我看起来不相关的页面),我仍然无法得到任何答案。它又是......
我想要一个页面显示与在前一页上随机设置的id_slogan
相对应的所有结果。因此,在第一页上,生成来自数据库liste_slogans
的随机信息,其ID保存在$_SESSION
变量中。在涉及的三个不同页面上的每一个上,我开始会话,我只在最后一个结束时销毁它。简而言之,第一页是访问者通过输入数据与网站交互的地方,第二页处理它然后重定向到最后一页,其中数据列表应该链接到第一页上的信息。这是第一个代码:
<?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
匹配的所有条目,这些条目与第一页($_SESSION['id_slogan']
)上设置的会话变量相匹配。我已尝试过这个和许多其他事情,但似乎没有任何作用:
<?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, id_slogan 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();
?>
有人可以帮我这个吗?我花了几个小时在互联网上搜索,但似乎找不到任何答案......
编辑:我想我应该展示我的所有代码......
有第一页:
<?php
// Start the session
session_start();
?>
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8/>
<link rel="stylesheet" href="Pubweb1.css"/>
<title>(re)trouver le sens</title>
<!--[if It IE9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html15.js"></script>
<![endif]-->
</head>
<div class="tout">
<body>
<!--[if IE 6]><body class="ie6 old_ie"><!--[endif]-->
<!--[if IE 7]><body class="ie7 old_ie"><!--[endif]-->
<!--[if IE 8]><body class="ie8"><!--[endif]-->
<!--[if IE 9]><body class="ie9"><!--[endif]-->
<!--[if ! IE]><body><!--><!--[endif]-->
<div class="barredef">
<?php include("barredef.php");?>
</div>
<div class="blocpage">
<header>
<?php include("menu1.php");?>
</header>
<!-- Affichage aléatoire d'une donnée de la table et enregistrement des infos ID, slogan et compagnie -->
<section>
<?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'];
}
$nbid = $_SESSION['id_slogan'];
?>
<h2 class=apparition1>(À vous de jouer...)</h2>
<!-- Il faut que le slogan qui apparaît ait une entrée au moins -->
</section>
<section>
<br/><h6>Entrez votre question, votre idée, votre doute.<br/>
Remettez en question l'énoncé publicitaire présenté.<br/>
Gardez en tête ce que les mots signifient vraiment pour vous, et exprimez-le si vous le jugez pertinent.<br/>
Pas inspiré(e)? Cliquez sur "Sélection aléatoire" dans le menu ci-haut.</h6>
<form action='redirection.php' method='POST'>
<p><input type="text" name="entree" id="entree" size="75" maxlenght="300" autofocus />
<label for='pseudo'><h6>Votre signature : </h6></label><input type="text" name="pseudo" id="pseudo" size="75" maxlenght="30" /><br/>
<input type='hidden' name="id_slogan" id="id_slogan" size="40" maxlenght="4" value="<?php echo $_SESSION['id_slogan'];?>" />
<input type='hidden' name="compagnie" id="compagnie" size="40" maxlenght="4" value="<?php echo $_SESSION['compagnie'];?>" /><br/><br/>
<input class="envoiemail" name="submit" type="submit" value="Soumettre"></p>
</form>
<?php
// Connexion à la base de données
try
{
$bdd=new PDO('mysql:host=localhost;dbname=slogans;charset=utf8', 'root', 'root');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$reponse->closeCursor();
?>
</section>
</div>
</body>
</div>
</html
有处理/重定向页面:
<?php
// Start the session
session_start();
?>
<?php
//Connexion à la base de données
try
{
$bdd = new PDO('mysql:host=localhost;dbname=slogans;charset=utf8', 'root', 'root');
}
catch(Exception $e)
{
die('Erreur : '. $e->getMessage());
}
// Insertion de l'entrée à l'aide d'une requête préparée
$req=$bdd->prepare('INSERT INTO entrees (pseudo, entree, date_entree, id_slogan) VALUES (?, ?, NOW(), ?)');
$req->execute(array($_POST['pseudo'], $_POST['entree'], $_POST['id_slogan']));
//Redirection du visiteur vers la page des résultats
header('Location: resultats.php');
?>
还有最后一个:
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="Pubweb1.css"/>
<title>(re)trouver le sens</title>
<!--[if It IE9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html15.js"></script>
<![endif]-->
</head>
<div class="tout">
<div class="blocpage">
<body>
<!--[if IE 6]><body class="ie6 old_ie"><!--[endif]-->
<!--[if IE 7]><body class="ie7 old_ie"><!--[endif]-->
<!--[if IE 8]><body class="ie8"><!--[endif]-->
<!--[if IE 9]><body class="ie9"><!--[endif]-->
<!--[if ! IE]><body><!--><!--[endif]-->
<header>
<?php include("menu1.php");?>
</header>
<section>
<h1><?php echo $_SESSION['slogan'];
$nbid = $_SESSION['id_slogan']; ?></h1>
</section>
<section>
<p class=boutonsuivant><a href=aleatoire.php>Suivant</a></p>
<p class=compagnie><?php echo $_SESSION['compagnie']; ?></p>
<p class=boutonnav><a href=slogan1.php>Naviguer</a></p>
</section>
<p>Numéro : <?php echo $_SESSION['id_slogan']; ?>.</p>
<section>
<?php
// Connexion à la base de données
try
{
$bdd=new PDO('mysql:host=localhost;dbname=slogans;charset=utf8', 'root', 'root');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
// Récupération des derniers messages
$reponse=$bdd->query('SELECT pseudo, entree, id_slogan FROM entrees WHERE id_slogan = $nbid ORDER BY ID DESC LIMIT 0, 50');
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Affichage de chaque message (toutes les données sont protégées par htmlspecialchrs)
while ($donnees=$reponse->fetch())
{
echo '<h4 class=resultats><strong>' . htmlspecialchars($donnees['entree']) . ' </strong></h4> <p class=resultats> ' . htmlspecialchars($donnees['pseudo']) . '</p>';
}
$reponse->closeCursor();
?>
<?php
session_destroy();
?>
</section>
</body>
</div>
</div>
</html
答案 0 :(得分:0)
答案是:
$nbid = isset( $_SESSION['id_slogan'] ) ? $_SESSION['id_slogan'] : NULL;
if($nbid){
$sql = "SELECT pseudo, entree, id_slogan
FROM entrees
WHERE id_slogan = $nbid
ORDER BY ID DESC
LIMIT 0, 50";
$reponse=$bdd->query($sql);
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}