>

PHP OOP를 사용하여 온라인 스토어 프로젝트를 진행하고 있습니다. 기본적으로이 프로젝트에서 모든 제품은 제품 공급 업체와 연결됩니다. 공급 업체 목록을 작성하기 위해 suppliers 라는 내 테이블에 테이블을 만들었습니다. . 그런 다음 이것을 코딩했습니다 :

$supplierSet = new Products();
$suppliers = $supplierSet->NumSupplier();
if(isset($_GET['page'])){
    $page = $_GET['page'];
    if($page == 1){
        $supplierShow = $supplierSet->GetSupplierp(0,10);
    }
    if(!empty($suppliers)){
        foreach($supplierShow as $supplier){ 
           $nums = $supplierSet->NumSupplierProduct($supplier['supplier_title']);
           echo "
           <tr>
               <td>".$supplier['table_id']."</td>
               <td>".$supplier['supplier_title']." ($nums)</td>
               <td><a href='supplierdelete.php?supplier_id=".$supplier['supplier_id']."'><span class='label label-danger'>REMOVE</span></a></td>
          </tr>";
        }
    }
}

여기 Products() 클래스가 있습니다.  내가 사용한 두 가지 방법은 다음과 같습니다.

public function GetSupplierp($id_number,$result_num)
{
    if(($id_number>=0)&&!empty($result_num))
    {
        $sup = $this->db->prepare("SELECT * FROM products LIMIT " . $id_number . ", " . $result_num);
        $sup->execute();
        $sup_array = array();
        while($row = $sup->fetch())
        {
            $sup_array[] = $row;
        }
        return $sup_array;
    }
}
public function NumSupplierProduct($supplier)
{
        $uuu = $this->db->prepare("SELECT * FROM products WHERE product_supplier = ?");
        $uuu->bindParam(1,$supplier);
        $uuu->execute();
        $row_sup = $uuu->rowCount();
        return $row_sup;
}

좋아 보이고 깨끗해 보이지만 이것을 실행할 때마다 다음과 같은 오류가 발생합니다 :

Notice: Undefined index: supplier_title (on this line down below):

$nums = $supplierSet->NumSupplierProduct($supplier['supplier_title']);

Notice: Undefined index: supplier_title (on this line down below):

<td>".$supplier['supplier_title']." ($nums)</td>

Notice: Undefined index: supplier_id (on this line down below):

<td><a href='supplierdelete.php?supplier_id=".$supplier['supplier_id']."'><span class='label label-danger'>REMOVE</span></a></td>

이러한 유형의 질문은 중복 된 것 같지만이정의되지 않은 색인오류와 관련된 모든 질문을 읽었으며 문제를 해결할 수 없습니다.

따라서이 문제를 해결하는 방법에 대한 아이디어가 있으면 알려주십시오 .. 반드시 감사하겠습니다!

미리 감사합니다.

  • 답변 # 1

    데이터베이스 쿼리가 해당 인덱스가없는 결과 집합을 반환하기 때문에 오류가 발생했습니다.

    와이즈 비즈   print_r($supplier) 의 바로 내부  루프 후 foreach  프로그램. 출력을보고 확인하십시오. 출력을 더 읽기 쉽게하려면 exit 를 에코하십시오.   "<pre>" 전에  더 읽기 쉬운 방식으로 표시하기 위해

    print_r()
    
    

    이는 프로그램의 특정 지점에서 배열에 포함 된 내용을 확인하는 매우 일반적인 문제 해결 방법입니다.

    또한 변경할 수 있습니다

    echo "<pre>";
    print_r($supplier);
    exit;
    
    

    to

    while($row = $sup->fetch())
        {
            $sup_array[] = $row;
        }
        return $sup_array;
    
    

    또는 문제 해결

    return $sup->fetchAll();
    
    

    print_r($sup->fetchAll()); exit;

관련 자료

  • 이전 image - JavaScript에서 createObjectURL 사용을위한 Blob 객체를 올바르게 작성하고 있습니까?
  • 다음 Java에서 문자를 단어로 바꾸는 방법