我覺得這可能是一個容易的,但只是看不到它!如果條件匹配,輸出一個結果
我已經建立了一個測試結果保存到數據庫表中。目前它爲每次測試都保存一行。測試可以採取,直到它通過。
目前它正在輸出每個結果(因爲它循環遍歷表中的每個結果)。
如果$row['pass-fail'];
的輸出爲「Pass」,我怎樣才能輸出$row['testname'];
一次?
<?php $current_user = wp_get_current_user();
$user = $current_user->user_login;
require("database.php");
// Opens a connection to a MySQL server
$con = mysql_connect("localhost", $username, $password);
if (!$con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("tester", $con);
$sql = mysql_query("SELECT * FROM test WHERE name='$user' ORDER BY Date DESC");
if (!$sql) {
die('Error: ' . mysql_error());
} ?>
<?php while($row = mysql_fetch_array($sql)) { ?>
<p><?php $testname = $row['testname']; echo get_the_title($testname); ?> - <?php echo $row['pass-fail']; ?></p>
<?php } ?>
<?php mysql_close($con); ?>
**請**,請勿使用'mysql_ *'功能獲取新代碼。他們不再被維護,社區已經開始[棄用過程](http://news.php.net/php.internals/53799),並且'mysql_ *'函數已經在PHP 7中被正式刪除。相反,你應該瞭解[已準備好的語句](https://en.wikipedia.org/wiki/Prepared_statement)並使用「PDO」或「mysqli_ *」。如果你不能決定,[這篇文章將有助於選擇你最好的選擇](http://php.net/manual/en/mysqlinfo.api.choosing.php)。 – GrumpyCrouton
*「如何只輸出$ row ['testname'];如果$ row ['pass-fail'];的輸出是」Pass「,那麼一次?」 - 添加到WHERE子句中,或者檢查if一行等於它在一個循環中。 –
[Little Bobby](http://bobby-tables.com/)說** [您有SQL注入攻擊的風險](https://stackoverflow.com/q/60174/)**。瞭解[MySQLi](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)的[Prepared Statements](準備語句)(https://en.wikipedia.org/wiki/Prepared_statement)。即使** [轉義字符串](https://stackoverflow.com/q/5741187)**是不安全的!我推薦'PDO',我[寫了一個函數](https://stackoverflow.com/a/45514591)使它非常容易**,非常乾淨**,並且更加安全** **比使用非參數化查詢。 – GrumpyCrouton