>

데이터베이스에서 일부 정보를 검색하려고하는데 전체 정보가 아닌 절반의 정보 만 검색 할 수 있기 때문에 무언가 잘못하고있는 것 같습니다. 내가 잘못한 곳을 알려주세요

아래 코드에는 1st) $sql과 2nd) $result라는 두 개의 SQL 문이 있습니다.$sql 명세서

에 문제가 있습니다.

업데이트-질문이 아래에 답변되었습니다.

<?php
include "head.html";
echo '</div>';
 $search_id =  $_GET["id"]; 
   $dbhost = 'localhost';
   $dbuser = 'lemonwork';
   $dbpass = '[email protected]';
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);
   if(! $conn ) {
      die('Could not connect: ' . mysql_error());
   }
   $sql = 'SELECT * FROM lemontable where STORE_ID=';
   $val=" AND (DESCRIPTION=%'Toy'% OR TITLE=%'TOY'% OR Category=%'TOY'%)";
   $sql=$sql.$search_id.$val;
   $result='SELECT  STORE_LOGO, Lemon_COUNT FROM lemoncount where STORE_ID=';
$result=$result.$search_id;
   mysql_select_db('lemondata');
   $retval = mysql_query( $sql, $conn );
   $retval1=mysql_query($result, $conn);
   $x=0;
   if ($result) {
  $row1 = mysql_fetch_assoc($retval1);
echo'<div style="text-align: center;">';
  echo'<img src="'.$row1['STORE_LOGO'].'"style="display: block; margin-left: auto;  margin-right: auto;">';
  echo 'Total Coupons: '.$row1['COUPON_COUNT'].'<br/>';
echo'</div>';
  }
   if(! $retval ) {
      die('Could not get data: ' . mysql_error());
   }
   while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) {   
echo "<table>";
  echo '<tr><th><a href="'.$row["LINK"].'"><img src="'.$row1["STORE_LOGO"].'"></th>';
echo "<td style='padding-left: 6px !important;'><a href='".$row['LINK']."'><h1>".$row["title"]. "</h1></a>";
echo "<br/><strong>By</strong> ".$row["STORE_NAME"]."<br/><strong>Expire on:</strong> ".$row["Dates"]."<br/><strong>Category:</strong> ".$row["Category"]."<br/><strong>work:</strong> ".$row["work"]."<br/><strong>DESCRIPTION:</strong> ".$row["DESCRIPTION"]."<b style='color:Blue'> Read More"."<hr></td></tr>";
}       
echo '</table>';
   mysql_close($conn);
?>

  • 답변 # 1

    다음과 같은 기본 SQL 쿼리를 원한다고 생각합니다.

    select * from lemontable
        where store_id=1192 and (
           description like '%TOY%' or
           title like '%TOY%'
        )
    
    

    제목 또는 설명에 toy라는 단어가 포함 된 지정된 상점 내의 모든 레코드를 반환합니다.

    그러나이 구문을 수정하기 위해 코드를 약간 변경하는 대신 매개 변수화 된 쿼리를 사용하여보다 안전한 방식으로 코드를 다시 작성해야합니다. 여기에 표시된 코드는 악의적 인 사용자가 웹 양식을 조작하여 데이터를 삭제 또는 변경하거나 개인 정보를 도용하거나 사이트를 훔쳐서 온라인으로 가져 오는 등의 작업을 수행 할 수있게합니다. 간단히 말해서 : 좋지 않습니다.

    댓글에 유용한 링크가 많이 있지만이 링크는 특히 좋은 출발점 역할을하는 예제를 제공합니다.

  • 답변 # 2

    아래처럼 SQL 쿼리를 변경하십시오

    $sql = "SELECT * FROM lemontable where `STORE_ID` = ".$search_id;
    $sql .= " AND ( `DESCRIPTION` LIKE '%Toy%' OR `TITLE` LIKE '%TOY%' OR `Category` LIKE '%TOY%' ) ";
    $result = "SELECT  STORE_LOGO, Lemon_COUNT FROM lemoncount where `STORE_ID` = ".$search_id;
    
    

  • 이전 windows - 오류 429 Excel vba activex CreateObject ("SAPFunctions")
  • 다음 scala - SBT를 위해 SBT에 라이브러리 종속성 추가 (SBT에서 관리하는 프로젝트 아님)