根據用戶的配置文件,我在查看他們的配置文件中是否包含某些條款,如果是,請選擇一個隨機條目從一個特定的表格。如何檢查條目是否包含單詞並從表中打印隨機條目PHP,MySQL
另外,最後,我只想打印其中一個條目。因此,如果他們的配置文件包含全部5個單詞,我希望PHP每次刷新頁面時仍然只打印一個隨機條目。
難道有人請指點我正確的方向嗎?我現在的代碼如下:
<?php
session_start();
include 'includes/Connect.php';
$username=$_SESSION['myusername'];
$query = "SELECT `CC` FROM `$username`";
$result = mysql_query($query);
$pos1 = strpos($result,'Honesty');
$pos2 = strpos($result,'Loyalty');
$pos3 = strpos($result,'Trust');
$pos4 = strpos($result,'Empathy');
$pos5 = strpos($result,'Respect');
while($Aff = mysql_fetch_array($result)){
$data = array();
if($pos1!==false){
$query1 = "SELECT Affirmation FROM `Aff CC1` ORDER BY RAND() LIMIT 1";
for ($x = 0; $x < mysql_num_rows($query1); $x++)
{
$data[] = mysql_fetch_assoc($query1);
}
}
if($pos2!==false){
$query2 = "SELECT Affirmation FROM `Aff CC2` ORDER BY RAND() LIMIT 1";
for ($x = 0; $x < mysql_num_rows($query2); $x++)
{
$data[] = mysql_fetch_assoc($query2);
}
}
if($pos3!==false){
$query3 = "SELECT Affirmation FROM `Aff CC3` ORDER BY RAND() LIMIT 1";
for ($x = 0; $x < mysql_num_rows($query3); $x++)
{
$data[] = mysql_fetch_assoc($query3);
}
}
if($pos4!==false){
$query4 = "SELECT Affirmation FROM `Aff CC4` ORDER BY RAND() LIMIT 1";
for ($x = 0; $x < mysql_num_rows($query4); $x++)
{
$data[] = mysql_fetch_assoc($query4);
}
}
if($pos5!==false){
$query5 = "SELECT Affirmation FROM `Aff CC5` ORDER BY RAND() LIMIT 1";
for ($x = 0; $x < mysql_num_rows($query5); $x++)
{
$data[] = mysql_fetch_assoc($query5);
}
}
}
?>
所以我不是這樣做,我仍然得到什麼。
session_start();
include 'includes/Connect.php';
$username=$_SESSION['myusername'];
$query = "SELECT `CC` FROM `Profile` where `Username`=`$username`";
$result = mysql_query($query);
$pos1 = strpos($result,'Honesty');
$pos2 = strpos($result,'Loyalty');
$pos3 = strpos($result,'Trust');
$pos4 = strpos($result,'Empathy');
$pos5 = strpos($result,'Respect');
$data = array();
for ($x = 0; $x < mysql_num_rows($result); $x++) {
if($pos1!==false){
$CCID=1;
}
if($pos2!==false){
$CCID=2;
}
if($pos3!==false){
$CCID=3;
}
if($pos4!==false){
$CCID=4;
}
if($pos5!==false){
$CCID=5;
}
$querymain = "SELECT `Affirmation` FROM `Affs` WHERE CCID=$CCID ORDER BY RAND() LIMIT 1";
$resultmain = mysql_query($querymain);
for ($x = 0; $x < mysql_num_rows($resultmain); $x++)
{
$data[] = mysql_fetch_assoc($resultmain);
}
}
echo json_encode($data);
mysql_close($conn);
?>
請,**不要**使用'mysql_query'在新的應用。如果您不小心[正確地轉義](http://bobby-tables.com/php)查詢中的每個值,並且將從PHP的未來版本中刪除它,那麼這種做法已被棄用,非常危險。像[PDO這樣的現代化替代品並不難學](http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/)。像[PHP The Right Way](http://www.phptherightway.com/)這樣的指南概述了推薦的最佳實踐。 – tadman