我已經看到在谷歌和本網站上的許多職位關於相同的主題,但我不明白他們中的任何人。 (我不熟悉php)如何突出顯示的結果,就像關鍵字
我有下面的代碼輸出保存在數據庫中的總統信息。結果在一張表格中。但我想突出顯示此表中的關鍵字。例如,如果您搜索「廣告」,則會突出顯示「adams」中的「廣告」。
-Name- -Birth- -years president- -died-
Adams J Q 1767 4 80
正如我之前所說,我不是很熟練,所以我希望有人能告訴我該怎麼做。 謝謝!
代碼:
extract($_POST, EXTR_SKIP);
pdo()->prepare($qry); // wat is de query
pdo()->bindParam(':zoekTerm', "%$zoekTerm%", PDO::PARAM_STR); // vul parameter in; let op het '' en "" verschil
pdo()->execute(); // uitvoeren van de query met params
function getData($qry, Array $bindParameters) // haal data uit de query
{
pdo()->prepare($qry);
foreach($bindParameters as $k => &$v) {
pdo()->bindParam($k, $v, PDO::PARAM_STR);
}
pdo()->execute();
return pdo()->fetchAll(); // dus een array (associatief)
}
//print the data from an array
function prData(Array $data) {
foreach($data as $k => $v) {
//print_r($v);
echo implode(', ', $v);
}
}
function prDataOp1Regel(Array $data) {
foreach($data as $r) {
$d = array();
foreach($r as $v) {
$d[] = $v;
}
print implode('</td><td>', $d); tr();
}
}
function prDataKeys(Array $data) {
foreach($data as $v) {
$r = array();
foreach($v as $k => $dummy) {
$lk = strtolower($k);
// even iets geks. Omdat het kan.
if($lk === "gebjaar") $lk = "Geboorte jaar" ;
$r[] = Ucfirst($lk);
}
echo implode ('</th><th>', $r); //nl();
break;
}
}
$qry = "
SELECT
presnaam AS 'Naam President'
,Gebjaar
,Jaarpres AS 'Aantal jaren president'
,Sterfleeftijd
,Partij
,Staatgeboren AS 'Geboren in'
FROM president
WHERE presnaam
LIKE :zoekTerm
";
$d = getData($qry, array(':zoekTerm' => "%$zoekTerm%"));
echo '<table id="outputtable"><tr>';
echo '<th>';
prDataKeys($d);
echo '</th>';
echo '<tr>';
echo '<td>';
prDataOp1Regel($d);
echo '</td>';
echo '</td>';
echo '</tr></table>';
我沒看完代碼細節,但有一件事我注意到,與問題無關,是否使用了:if(preg_match(X,Y)){...} if(!preg_match(X,Y)){...}。相反,你應該使用:if(preg_match(X,Y)){...} else {...}。它使用更少的資源,更新後不太可能出現錯誤。 – 2014-10-12 08:01:01
而不是發佈完整的代碼,並期望人們通過它,你能把它縮減到與你的問題相關的部分嗎?這會讓人們更容易幫助你,並且你會得到更快的回覆 – 2014-10-12 08:02:37
謝謝你們,我會改變它。 – Paul 2014-10-12 08:13:08