2012-12-08 5 views
-1

저는 PHP에서 새로운 기능을 배우는 중입니다. 이제는이 문제를 해결하는 데 지쳤습니다. 나는 몇 행이 종료 mysql 데이터베이스를했습니다. Like :MySQL 쿼리가 작동하지 않습니다.

이 데이터베이스 콘텐츠를 가져 오기 위해 쿼리를 실행하면 중복 된 값 콘텐츠가 표시되지 않습니다. 예를 들면. 내 pro_no_sleep에서 행이 값은 동일합니다 1

pro_no_sleep 
1 
1 
2 
3 

처럼 내가 그것을 중복 값의 내용을 표시하지 않습니다이다 PHP로 쿼리 다음 실행할 그래서 때. 고유 한 가치 콘텐츠 만 표시합니다.

$search = mysql_query("SELECT * FROM property_step1 WHERE pro_no_sleep = '$people' OR 
pro_country = '$country' OR pro_state = '$region' OR pro_city = '$destination'"); 

이 좋아 3. 나는 select 태그에서 값을 고정 가지고 있기 때문에 HTML 양식 테이블의 내 쿼리에 % 기호를 사용하지 않았다.

의 PHP 코드 :

$num = mysql_num_rows($search); 

    if ($num == 1) { 
     echo "     " . $num . " result found."; 
     while ($result = mysql_fetch_array($search)) { 
... 

mysql_num_rows이 결과의 행 수를 반환

<?php 
if (isset($_GET['Submit']) && $_GET['Submit'] == "Search") { 
    require_once("func.php"); 
    $people  = mysql_real_escape_string(htmlspecialchars(trim($_GET['people']))); 
    $country  = mysql_real_escape_string(htmlspecialchars(trim($_GET['country']))); 
    $region  = mysql_real_escape_string(htmlspecialchars(trim($_GET['region-depart']))); 
    $destination = mysql_real_escape_string(htmlspecialchars(trim($_GET['destination']))); 
    $from  = mysql_real_escape_string(htmlspecialchars(trim($_GET['from']))); 
    $to   = mysql_real_escape_string(htmlspecialchars(trim($_GET['to']))); 
    $upload  = "user/content/uploaded"; 


    $search = mysql_query("SELECT * FROM property_step1 WHERE pro_no_sleep = '$people' OR pro_country = '$country' OR pro_state = '$region' OR pro_city = '$destination'"); 

    $num = mysql_num_rows($search); 

    if ($num == 1) { 
     echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" . $num . " result found."; 
     while ($result = mysql_fetch_array($search)) { 
      echo "<div id='rightsearch'>"; 
      $propertyid  = (int) $result['propertyid']; 
      $getimg   = mysql_query("SELECT * FROM property_step3 WHERE propertyid = 
      '$propertyid' ORDER BY imgname LIMIT 1"); 
      $protitle_d  = $result['pro_title']; 
      $country_d  = $result['pro_country']; 
      $region_d  = $result['pro_state']; 
      $destination_d = $result['pro_city']; 
      $pro_des_d  = $result['pro_des']; 
      $pro_type_d  = $result['pro_type']; 
      $pro_no_bed_d = $result['pro_no_bed']; 
      $pro_no_bath_d = $result['pro_no_bath']; 
      $pro_no_sleep_d = $result['pro_no_sleep']; 
      $getreview  = mysql_query("SELECT rating FROM property_review WHERE p_id = '$propertyid'"); 
      $num_review  = mysql_num_rows($getreview); 


      while ($reimg = mysql_fetch_array($getimg)) { 
       $img = $reimg['imgname']; 
       echo "<a href='details.php?propertyid=$propertyid'>"; 
       echo '<img src="' . $upload . '/' . $img . '" width="' . 100 . '" height=" ' . 100 . '" />'; 
       echo "</a>"; 
      } 

      echo "<h2>$protitle_d</h2>"; 
      echo "<p>$country_d, $region_d, $destination_d</p>"; 
      //echo myTruncate($pro_des_d, 100) . "<br/>";      
      echo $pro_des_d . "<br/>"; 
      echo "<h5>$pro_type_d, $pro_no_bed_d bedroom"; 
      if ($pro_no_bed_d > 1) { 
       echo $plural = "s"; 
      } 
      echo ","; 
      echo " $pro_no_bath_d bath"; 
      if ($pro_no_bath_d > 1) { 
       echo $plural2 = "s"; 
      } 
      echo ","; 
      echo " $pro_no_sleep_d sleep"; 
      if ($pro_no_sleep_d > 1) { 
       echo $plural3 = "s"; 
      } 
      echo "</h5>"; 
      echo "$num_review review"; 
      echo "</div>"; 
     } // first while statement 
    } // second if statment 
    else { 
     echo "<div id='rightsearch'>"; 
     echo "No result found"; 
     echo "</div>"; 
    } 

} 
?> 
+0

데이터를 표시하기 위해 쿼리 결과를 반복하는 방법은 무엇입니까? phpMyAdmin 또는 다른 MySQL 클라이언트와 같은 쿼리에서 쿼리를 실행하고 결과를 확인 했습니까? – sachleen

+0

네, 해냈습니다. 그것은 중복 가치를 보여주지 않습니다. – Babu

+0

제 쿼리 문제라고 생각합니다. 잘 모르겠습니다. – Babu

답변

0

여기에 귀하의 문제입니다. 따라서 결과에 행이 하나만 있는지 확인하고 모든 행을 반복합니다 (단 하나만있는 것은 기억하십시오!).

결과에 이상이 포함되어 있고 행이 적어도 인 행이 있는지 확인해야합니다.

if ($num >= 1) { 
+0

@sachleen 감사합니다. – Babu

관련 문제