2017-02-14 1 views
0

입력 필드에 쓰는 것으로 데이터베이스에 일치하는 항목이 있는지 찾기 위해 사용하는 PHP 코드에 문제가 있습니다. 결과가있는 경우 HTML 요소에 인쇄하십시오. 그래서PHP는 SQL 결과를 출력하지 않으려 고합니다. 빈 div 만 인쇄합니다.

if(!empty($_POST['fsearch'])) { 
    $fsearch = $_POST['fsearch']; 
    $req = $connect->prepare("SELECT title FROM food_data_bg WHERE title LIKE ?"); 
    $value = '%'.$fsearch.'%'; 
    $req->bind_param('s', $value); 
    $req->execute(); 
    $req->store_result(); 
    if ($req->num_rows == 0){ 
     echo 'Няма резултати'; 
    } else{ 
     while($row = $req->fetch()){ 
    ?> 
    <div class="search-result"> 
    <span class="result-title"><?php echo $row['title'] ;?></span> 
    </div> 
    <?php 
    } 
} 
} 

: 코드가 CLICK !

enter image description here

그리고 :

하지만 그 대신 결과 값을 반환하는, 그것은 단지 HTML 요소처럼 보이는 방법이 인쇄가되어 내가 fetch_assoc 및 다른 메서드에 대한 플러그인을 설치하지 않은 경우 mysqli에서만 가져 오기를 지원하는 어딘가에 읽을 때까지 다른 가져 오기 방법을 시도했다. 1 값으로, 그것은 같은 결과, 아무것도 안쪽에 아무것도 설치 나는 정말로 그걸 작동시킬 수있는 것으로 $ 행을 선언해야하는지 잘 모르겠다. 나는 실수 일 수있는 모든 것에 대해 혼란 스럽다. 왜냐하면 나는 여기서 도움을 구하고 있기 때문에 내가 여기서 묻고있는 이유이다. 매번

+0

''페이지 위에 페이지를 추가 한 다음 확인하십시오. 어떤 오류가 발생할 수 있습니다 –

+0

[while] 문 다음에 var_dump ($ row)를 수행하고 $ row 객체에 포함 된 내용을 알려주십시오. – acriel

+1

당신의 질문에 당신은 단지 '제목'만을 선택하고 루프에서는 'fimage'와 'calories_total'도 표시합니다. 이것을 먼저 고친다 –

답변

0

그냥 내 두 센트,하지만 $req->store_result();없이 이것을 실행 해 보았습니까?

편집 :

당신이 맞아요. arkascha의 의견을 바탕으로,이 코드는 작동합니다 :

if(!empty($_POST['fsearch'])) { 
    $fsearch = $_POST['fsearch']; 
    $req = $connect->prepare("SELECT title FROM food_data_bg WHERE title LIKE ?"); 
    $value = '%'.$fsearch.'%'; 
    $req->bind_param('s', $value); 
    $req->execute(); 
    $req->store_result(); 
    if ($req->num_rows == 0){ 
     echo 'Няма резултати'; 
    } else{ 
     $req->bind_result($title); 
     while($req->fetch()){ 
      ?> 
      <div class="search-result"> 
       <span class="result-title"><?php echo $title;?></span> 
      </div> 
      <?php 
     } 
    } 
} 
+0

Yap 그리고 32 행에 정의되지 않은 변수 행을 주겠다. 그래서이 코드는 다음과 같다. while ($ row = $ req-> fetch()) {...}' –

+0

구문 오류 : 구문 오류, 예상치 못한 'while (T_WHILE) –

0

당신은 $ 행 인 경우 값이나 뭔가 잘못를 제공 있는지 확인하려면 내가 그것을 해결 한

0

난 그냥 bind_result 필요 (" 그리고 여기서 SQL을 사용하여 내 param ") 바인딩 된 결과를 인쇄 할 수 있지만 store_result(); 그리고 만약의에서, 다른 문 그렇지 않으면 여기

코드 모양을 최종 LOL 노력하고 8 시간 후에 내가 이해, 작동하지 않습니다 같은 : 지금

if(!empty($_POST['fsearch'])) { 
 
$fsearch = $_POST['fsearch']; 
 

 
$req = $connect->prepare("SELECT title FROM food_data_bg WHERE title LIKE ?"); 
 
$value = '%'.$fsearch.'%'; 
 
$req->bind_param('s', $value); 
 
$req->execute(); 
 
$req->store_result(); 
 
$num_of_rows = $req->num_rows; 
 
$req->bind_result($title); 
 
if ($req->num_rows == 0){ 
 

 
echo 'Няма резултати'; 
 
} 
 
else{ 
 
while($data=$req->fetch()){ 
 
    ?> 
 
     <div class="search-result"> 
 
      <span class="result-title"><?php echo $title; ?></span> 
 
     </div> 
 
     <?php 
 
     } 
 
$req->free_result(); 
 
    } 
 
}

문제는 당신이 키릴 문자에 뭔가를 입력 할 때 결과를 반환하지 않는다는 것입니다. 그러나 내가 그것을 고칠 수 없다면 또 다른 질문이 될 것입니다. 감사합니다 너희들 < 3 다시!

관련 문제