Folks,
I am not killing the script flow, before the CONDITION, with
““
die();
And so, one of the 2 should trigger:
IF
ELSE
But they don’t.
““
if(!$result_2)
{
echo __LINE__; echo “<br>”; //LINE 92: THIS LINE IN ‘IF’ DOES NOT TRIGGER. NEITHER THE LINE IN THE ‘ELSE’. WHY ?
die(“Fetching Error”);
}
while($row = mysqli_fetch_array($result_2,MYSQLI_ASSOC))
{
echo __LINE__; echo “<br>”;//LINE 98: THIS LINE IS LIKE AN ‘ELSE’. IT DOES NOT TRIGGER. NEITHER THE LINE IN THE ‘IF’. WHY ?
Either Line 92 (IF) should trigger or Line 98 (which is like the ELSE).
Do notice the comments in the code to understand where the script is ending the flow without any reason.
““
<?php
$query_2 = “SELECT id,page_url,link_anchor_text,page_description,keyphrases,keywords FROM links WHERE keywords = ? ORDER by id LIMIT $offset,$limit”;
$stmt_2 = mysqli_stmt_init($conn);
if(mysqli_stmt_prepare($stmt_2,$query_2))
{
echo __LINE__; echo “<br>”;//LINE 84: THIS LINE GETS TRIGGERED AND ECHOED IN TEST. LAST LINE THAT GETS ECHOED.
mysqli_stmt_bind_param($stmt_2,’s’,$keywords);
mysqli_stmt_execute($stmt_2);
$result_2 = mysqli_stmt_get_result($stmt_2);
if(!$result_2)
{
echo __LINE__; echo “<br>”; //LINE 92: THIS LINE IN ‘ELSE’ DOES NOT TRIGGER. NEITHER THE LINE IN THE ‘IF’. WHY ?
die(“Fetching Error”);
}
What is killing the script flow ?
Context:
““
<?php
echo __LINE__; echo “<br>”; //LINE 16: THIS LINE GETS TRIGGERED AND ECHOED IN TEST
if(!ISSET($_GET[‘keywords’]))
{
echo __LINE__; echo “<br>”;
die(“Type your keywords”);
}
$keyword = $_GET[‘keywords’];
//Check if the PAGE NUMBER is specified or not and if it’s a numer or not. If not, return the default: 1.
$page = ISSET($_GET[‘page’]) && is_numeric($_GET[‘page’]) ? $_GET[‘page’] : 1;
//Check if the PAGE RESULT LIMIT is specified or not and if it’s a numer or not. If not, return the default: 1.
$limit = ISSET($_GET[‘limit’]) && is_numeric($_GET[‘limit’]) ? $_GET[‘limit’] : 1;
$query_1 = “SELECT COUNT(id) FROM links WHERE keywords = ?”;
$stmt_1 = mysqli_stmt_init($conn);
if(mysqli_stmt_prepare($stmt_1,$query_1))
{
echo __LINE__; echo “<br>”;//LINE 57: THIS LINE GETS TRIGGERED AND ECHOED IN TEST. BUT WHY SCRIPT FLOW DOES NOT GO BEYOND THIS LINE ?
mysqli_stmt_bind_param($stmt_1,’s’,$keywords);
mysqli_stmt_execute($stmt_1);
$result_1 = mysqli_stmt_bind_result($stmt_1,$row_count);
mysqli_stmt_fetch($stmt_1);
}
else
{
echo __LINE__; echo “<br>”; //LINE 67
printf(“Error: %s.n”, mysqli_stmt_error($stmt_1));
printf(“Error: %d.n”, mysqli_stmt_errno($stmt_1));
die(“A. Prepare failed!”);
}
mysqli_stmt_close($stmt_1);
//$total_pages = ceil($result_1/$limit); //SHOULD I KEEP THIS LINE OR THE ONE BELOW THIS ONE ?
$total_pages = ceil($row_count/$limit); //SHOULD I KEEP THIS LINE OR THE ONE ABOVE THIS ONE ?
$offset = (($page * $limit) – $limit);
$query_2 = “SELECT id,page_url,link_anchor_text,page_description,keyphrases,keywords FROM links WHERE keywords = ? ORDER by id LIMIT $offset,$limit”;
$stmt_2 = mysqli_stmt_init($conn);
if(mysqli_stmt_prepare($stmt_2,$query_2))
{
echo __LINE__; echo “<br>”;//LINE 84: THIS LINE GETS TRIGGERED AND ECHOED IN TEST. LAST LINE THAT GETS ECHOED.
mysqli_stmt_bind_param($stmt_2,’s’,$keywords);
mysqli_stmt_execute($stmt_2);
$result_2 = mysqli_stmt_get_result($stmt_2);
if(!$result_2)
{
echo __LINE__; echo “<br>”; //LINE 92: THIS LINE IN ‘IF’ DOES NOT TRIGGER. NEITHER THE LINE IN THE ‘ELSE’. WHY ?
die(“Fetching Error”);
}
while($row = mysqli_fetch_array($result_2,MYSQLI_ASSOC))
{
echo __LINE__; echo “<br>”;//LINE 98: THIS LINE IS LIKE AN ‘ELSE’. IT DOES NOT TRIGGER. NEITHER THE LINE IN THE ‘IF’. WHY ?
echo “LIMIT: $limit<br>”;
echo “ROW COUNT: $row_count<br><br>”;
echo “TOTAL PAGES: $total_pages<br><br>”;
//Retrieve Values.
$id = $row[“id”];
$page_url = $row[“page_url”];
$link_anchor_text = $row[“link_anchor_text”];
$page_description = $row[“page_description”];
$keyphrases= $row[“keyphrases”];
$keywords = $row[“keywords”];
echo “Id: $id<br>”;
echo “Page Url: $page_url<br>”;
echo “Link Anchor Text: $link_anchor_text<br>”;
echo “Page Description: $page_description<br>”;
echo “Keyphrases: $keyphrases<br>”;
echo “Keywords: $keywords<br>”;
echo “<br>”;
echo “<br>”;
}
}
else
{
echo __LINE__; echo “<br>”;//Line 124
printf(“Error: %s.n”, mysqli_stmt_error($stmt_2));
printf(“Error: %d.n”, mysqli_stmt_errno($stmt_2));
die(“B. Prepare failed!”);
}
Also, out of these 2, which one is correct ?
““
$total_pages = ceil($result_1/$limit); //SHOULD I KEEP THIS LINE OR THE ONE BELOW THIS ONE ?
““
$total_pages = ceil($row_count/$limit); //SHOULD I KEEP THIS LINE OR THE ONE ABOVE THIS ONE ?