我想寫一些PHP代碼,將查詢數據庫表的最後10行(由三個字段組成),並搜索字符串/子字符串的任何實例「單詞」並對它們進行計數 - 包括單個單元格中的多次。以下是我迄今爲止:使用PHP查詢子表的字段
$query = "SELECT * from my_table WHERE column1 LIKE '%word%'
UNION ALL SELECT * from my_table WHERE column2 LIKE '%word%'";
$result = mysqli_query($mysqli, $query);
$i = 0;
while($row = mysqli_fetch_array($result))
{
$i++;
}
echo "<i>This table contains [" . $i . "] instances of the string \"word\".</i>";
mysqli_free_result($result);
mysqli_close($mysqli);
我遇到的問題是:
這是我的輪詢整個數據庫,而不只是最後10行。如果我包含「ORDER BY PID DESC LIMIT 10」,查詢不再適用於WHERE和LIKE。
它不捕獲單個單元格中字符串的多個實例。
我花了幾個小時在這 - 我會很感激任何意見。非常感謝!
/** ** UDPATE/
這裏是我結束了。本質上,我將我的查詢轉換爲一個數組,然後轉換爲一個字符串。從那裏我搜索了「單詞」的所有實例。感謝大家的幫助。
$query = "SELECT * FROM my_table ORDER BY PID DESC LIMIT 10";
$result = mysqli_query($mysqli, $query);
$j = 0;
$i = 'word';
while ($row = mysqli_fetch_array($result))
{
$intoarray = implode(",", $row);
$j += substr_count($intoarray, $i);
}
echo "<i>This table contains [" . ($j/2) . "] instances of the string \"word\".</i>";
和工作一個友好的提示 - 儘量避免mysql被淘汰,並將被折舊 - 使用PDO。它會讓你免於麻煩。 – Faron
添加了它們。結果似乎沒有任何區別。我試圖添加聲明ORDER BY PID DESC LIMIT 10後添加它們,沒有任何改變。 #fustrated! – nickm
什麼是您在SQL中定義的PID?也許這樣做:'SELECT * FROM \'members \'WHERE \'column1 \'LIKE'%word%'ORDER BY'PID \'DESC LIMIT 10' – Faron