2016-10-25 7 views
0

실행중인 스크립트가 있으며 레코드를 삭제할 페이지로 이동합니다. 레코드 수를 0으로 설정하면 페이지가 index.php 페이지로 리디렉션되도록 설정하려고합니다. 코드는 다음과 같습니다 :레코드 수가 0 일 때 리디렉션 페이지

$sql="SELECT * FROM fbi_with_invoice"; 
if ($result=mysqli_query($conn,$sql)) 
{ 
    $rowcount=mysqli_num_rows($result); 
    printf("There are %d rows remaining.\n",$rowcount); 
} 
if ($rowcount=0) { 
    header('refresh:5;url=index.php'); 
    mysqli_free_result($result); 
} 

$sql = "DELETE FROM fbi_with_invoice ORDER BY personid DESC LIMIT 1"; 

if ($conn->query($sql) === TRUE) { 
    header('refresh:5;url=index2.php'); 
} 
$conn->close(); 

현재 $rowcount은 0이지만, 페이지는 index2.php로 리디렉션됩니다.

답변

1

if ($rowcount = 0)== 비교 연산자 대신 할당 연산자를 사용했습니다.

 $sql="SELECT * FROM fbi_with_invoice"; 
    if ($result=mysqli_query($conn,$sql)) 
    { 
    $rowcount=mysqli_num_rows($result); 
    printf("There are %d rows remaining.\n",$rowcount); 
    } 
    if ($rowcount == 0) { 
    header('refresh:5;url=index.php'); 
    mysqli_free_result($result); 
    } 
    $sql = "DELETE FROM fbi_with_invoice"; 

    if ($conn->query($sql) === TRUE && $rowcount) { 
    header('refresh:5;url=index2.php'); 
    } 
    $conn->close(); 
+0

나는 그것을 시도했지만 여전히 index2.php로 되돌아 가고 index.php는 아닙니다. –

+0

또한 DELETE 쿼리가 잘못되었습니다. '$ sql = "DELETE FROM fbi_with_invoice"; ' 또한 마지막 행 if 문에 $ rowcount의 확인을 추가하십시오 : 'if ($ conn-> query ($ sql) === TRUE && $ rowcount) { header ('refresh : 5; url = index2.php'); } ' – Mistery

+0

나는 SELECT와 DELETE의 SQL 쿼리 중 일부를 혼동했다. 선택 쿼리는 다음과 같아야한다. $ sql = "SELECT * FROM fbi_with_invoice ORDER BY personid DESC LIMIT 1"; – Mistery

관련 문제