Google과이 사이트에서 동일한 주제에 관한 많은 게시물을 보았지만 그 중 일부는 이해하지 못했습니다. (나는 아직 PHP에 익숙하지 않다.)키워드와 같은 하이라이트 SQL 결과
데이터베이스에 저장된 대통령에 대한 정보를 출력하는 코드는 다음과 같다. 결과는 테이블에 있습니다. 그러나이 표의 키워드를 강조하고 싶습니다. 예를 들어 '광고'를 검색하면 '아담스'의 '광고'가 강조 표시됩니다.
-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 {...}를 사용해야합니다. 적은 리소스를 사용하며 업데이트 후 오류가 발생할 가능성이 적습니다. –
전체 코드를 게시하고 사람들이 그것을 통과 할 것으로 예상하는 대신, 질문과 관련된 부분으로 줄일 수 있습니까? 그러면 사람들이 당신을 도와주기가 더 쉬울 것이고 더 빠른 응답을받을 것입니다 –
둘 다 감사합니다. 나는 그것을 바꿀 것입니다. – Paul