関数を使用してデータベースから複数の行をプルするにはどうすればよいですか?
私が持っている機能は次のとおりです。
function search($subject, $table) {
$query = "SELECT {$subject} ";
$query .= "FROM {$table} ";
$content = mysql_query($query);
return $content;
}
私が持っている関数を呼び出しているページで:
if (isset($_POST['search'])){
$search = $_POST['search'];
}
$content = search($subjectName, $tableName);
while ($results = mysql_fetch_assoc($content)){
$phrase = $results[$subjectName];
//if phrase exists in database
if (strpos($search,$phrase) !== false) {
echo $phrase;
//if phrase does not exist in database
} else {
echo 'fail';
}
この設定は機能しませんが、すべてを関数に入れると機能します。
function search($subject, $table, $where = 0, $is = 0) {
global $search;
$query = "SELECT {$subject} ";
$query .= "FROM {$table} ";
if ($where > 0) {
$query .= "WHERE {$where} = '{$is}' ";
}
$content = mysql_query($query);
while ($results = mysql_fetch_assoc($content)){
$phrase = $results[$subject];
//if phrase exists in database
if (strpos($search,$phrase) !== false) {
echo $phrase;
//if phrase does not exist in database
} else {
echo 'fail';
}
}
return $content;
}
ページ上:
search('main_subject', 'main_search');
問題は、ifステートメントでその関数を再度呼び出して、別のフレーズを検索するようにすることです。これを行う簡単な方法はありますか?
編集:現在の設定では、最初のアイテムが無限ループになります。