Page 1 of 1

Results Display

Posted: Thu Dec 18, 2003 3:28 am
by Arulraj
Hello,

I am facing peculiar problem.

When I am executing the query in the DB2 environment it gives the correct row count. But when I am executing from PHP it gives one row less. If there the query is having only one row, it gives empty row.

Anyone has faced this problem? I have tried all possible ways but of no solution.

Any solution.

thanks in advance

Posted: Thu Dec 18, 2003 4:06 am
by igoy
Can you Please post some Code ?

Posted: Thu Dec 18, 2003 7:46 am
by Arulraj
there are Four Input hence 16 conditions, I am giving first eight condition
if(($RNO=="") and ($CNAME=="") and ($DOB=="") and ($FATHER==""))
{
echo "<p align =\"center\">Select the search criteria correctly.</p>";
}

elseif(($RNO!="") and (($CNAME=="") or ($DOB=="") or ($FATHER=="")))
{
$Query = "SELECT RNO as RegNo,DOB as BirthDate,NAME as ChildName ,F_NAME as FatherName,M_NAME as MotherName FROM $council WHERE RNO='$RNO'";
}
elseif(($CNAME!="") and (($RNO=="") or ($DOB=="") or ($FATHER=="")))
{
$Query = "SELECT RNO as RegNo,DOB as BirthDate,NAME as ChildName ,F_NAME as FatherName,M_NAME as MotherName FROM $council WHERE NAME like '%$CNAME%' ORDER BY DOB";
}
elseif(($DOB!="") and (($CNAME=="") or ($RNO=="") or ($FATHER=="")))
{
$Query = "SELECT RNO as RegNo,DOB as BirthDate,NAME as ChildName ,F_NAME as FatherName,M_NAME as MotherName FROM $council WHERE DOB='$DOB' ORDER BY RDATE";
}
elseif(($FATHER!="") and (($CNAME=="") or ($RNO=="") or ($DOB=="")))
{
$Query = "SELECT RNO as RegNo,DOB as BirthDate,NAME as ChildName ,F_NAME as FatherName,M_NAME as MotherName FROM $council WHERE F_NAME like '%$FATHER%' ORDER BY RDATE";
}

elseif((($RNO!="") and ($CNAME!=="")) and (($DOB=="") or ($FATHER=="")))
{
$Query = "SELECT RNO as RegNo,DOB as BirthDate,NAME as ChildName ,F_NAME as FatherName,M_NAME as MotherName FROM $council WHERE RNO='$RNO' and NAME like '%$CNAME%' ORDER BY RDATE";
}
elseif((($RNO!="") and ($DOB==!"")) and (($CNAME=="") or ($FATHER=="")))
{
$Query = "SELECT RNO as RegNo,DOB as BirthDate,NAME as ChildName ,F_NAME as FatherName,M_NAME as MotherName FROM $council WHERE RNO='$RNO' and DOB='$DOB ORDER BY RDATE";
}
elseif((($RNO!="") and ($FATHER!=="")) and (($DOB=="") or ($NAME=="")))
{
$Query = "SELECT RNO as RegNo,DOB as BirthDate,NAME as ChildName ,F_NAME as FatherName,M_NAME as MotherName FROM $council WHERE RNO='$RNO' and FATHER like '%$FATHER%' ORDER BY RDATE";
}

elseif((($CNAME!="") and ($DOB==!"")) and (($RNO=="") or ($FATHER=="")))
{
$Query = "SELECT RNO as RegNo,DOB as BirthDate,NAME as ChildName ,F_NAME as FatherName,M_NAME as MotherName FROM $council WHERE DOB='$DOB' and NAME like '%$CNAME%' ORDER BY RDATE";

Posted: Thu Dec 18, 2003 8:07 am
by Saethyr
no change just making easier to read

Code: Select all

<?php
if(($RNO=="") and ($CNAME=="") and ($DOB=="") and ($FATHER=="")) 
{ 
echo "<p align ="center">Select the search criteria correctly.</p>"; 
} 

elseif(($RNO!="") and (($CNAME=="") or ($DOB=="") or ($FATHER==""))) 
{ 
$Query = "SELECT RNO as RegNo,DOB as BirthDate,NAME as ChildName ,F_NAME as FatherName,M_NAME as MotherName FROM $council WHERE RNO='$RNO'"; 
} 
elseif(($CNAME!="") and (($RNO=="") or ($DOB=="") or ($FATHER==""))) 
{ 
$Query = "SELECT RNO as RegNo,DOB as BirthDate,NAME as ChildName ,F_NAME as FatherName,M_NAME as MotherName FROM $council WHERE NAME like '%$CNAME%' ORDER BY DOB"; 
} 
elseif(($DOB!="") and (($CNAME=="") or ($RNO=="") or ($FATHER==""))) 
{ 
$Query = "SELECT RNO as RegNo,DOB as BirthDate,NAME as ChildName ,F_NAME as FatherName,M_NAME as MotherName FROM $council WHERE DOB='$DOB' ORDER BY RDATE"; 
} 
elseif(($FATHER!="") and (($CNAME=="") or ($RNO=="") or ($DOB==""))) 
{ 
$Query = "SELECT RNO as RegNo,DOB as BirthDate,NAME as ChildName ,F_NAME as FatherName,M_NAME as MotherName FROM $council WHERE F_NAME like '%$FATHER%' ORDER BY RDATE"; 
} 

elseif((($RNO!="") and ($CNAME!=="")) and (($DOB=="") or ($FATHER==""))) 
{ 
$Query = "SELECT RNO as RegNo,DOB as BirthDate,NAME as ChildName ,F_NAME as FatherName,M_NAME as MotherName FROM $council WHERE RNO='$RNO' and NAME like '%$CNAME%' ORDER BY RDATE"; 
} 
elseif((($RNO!="") and ($DOB==!"")) and (($CNAME=="") or ($FATHER==""))) 
{ 
$Query = "SELECT RNO as RegNo,DOB as BirthDate,NAME as ChildName ,F_NAME as FatherName,M_NAME as MotherName FROM $council WHERE RNO='$RNO' and DOB='$DOB ORDER BY RDATE"; 
} 
elseif((($RNO!="") and ($FATHER!=="")) and (($DOB=="") or ($NAME==""))) 
{ 
$Query = "SELECT RNO as RegNo,DOB as BirthDate,NAME as ChildName ,F_NAME as FatherName,M_NAME as MotherName FROM $council WHERE RNO='$RNO' and FATHER like '%$FATHER%' ORDER BY RDATE"; 
} 

elseif((($CNAME!="") and ($DOB==!"")) and (($RNO=="") or ($FATHER==""))) 
{ 
$Query = "SELECT RNO as RegNo,DOB as BirthDate,NAME as ChildName ,F_NAME as FatherName,M_NAME as MotherName FROM $council WHERE DOB='$DOB' and NAME like '%$CNAME%' ORDER BY RDATE";
?>

Posted: Thu Dec 18, 2003 8:28 am
by Arulraj
I am using only notepad thatswhy. The syntax is correct.

I want to know why the rows are not getting populated as it should be.

If there is only one recoed then php reports no record found and if there are 8 records it shows only 7 records on the table display.

If anyone gets any clue, please clarify the doubt

Posted: Thu Dec 18, 2003 3:02 pm
by DuFF
#1. ($RNO=="") and ($RNO!="") should be replaced with: (isset($RNO)) or (!isset($RNO)) or (empty($RNO)).

#2. I don't think the queries are the problem, could you please post the rest of the code where you echo the rows.

Posted: Thu Dec 18, 2003 4:05 pm
by Paddy
Damn those else ifs make it hard to read. You can build the query one the fly using seven ifs if you like.

Code: Select all

<?php
$Query = "SELECT RNO as RegNo,DOB as BirthDate,NAME as ChildName ,F_NAME as FatherName,M_NAME as MotherName FROM $council";
if ($RNO!="")
{
    $Query = $Query." WHERE RNO='".$RNO."'";
    $ifused = "true";
}
if ($CNAME!="")
{
     if ($ifused != "")
    {
         $Query = $Query." AND ";
    }
    $Query = $Query." WHERE NAME like '%".$CNAME."%' ORDER BY DOB";
    $ifused = "true";
}
if ($DOB!="")
{
     if ($ifused != "")
    {
         $Query = $Query." AND ";
    }
    $Query = $Query." WHERE DOB='".$DOB."' ORDER BY RDATE";
    $ifused = "true";
}
if ($FATHER!="")
{
     if ($ifused != "")
    {
         $Query = $Query." AND ";
    }
    $Query = $Query." WHERE F_NAME like '%".$FATHER."%' ORDER BY RDATE";
    $ifused = "true";
}
?>
If you can understand what Duff said about isset then put that in the code. I did it this way in case you didn't. His was is better though. I haven't tested this code by the way but you can see what I am trying to do.

Posted: Mon Jan 05, 2004 3:58 am
by Arulraj
Thanks Duffy and Paddy,

I could solve the problem. I have misused the if condition.

Anyhow thanks for your valuable suggestion.

thanks