相当于foreach循环只有一行[关闭]

I have a PHP function that runs a SELECT Query in SQL:

if(!function_exists("SelectQuery")) {
    function SelectQuery ($sql) {
        global $conn;
        $SelectQuery = mysql_query($sql,$conn);
        return $NumRows=mysql_num_rows($SelectQuery);
        $SelectQuery_Results=array();
        while($SelectQuery_Row = mysql_fetch_array($SelectQuery)) {
            $SelectQuery_Results[] = $SelectQuery_Row;
        }
        return $SelectQuery_Results;
    }
}

then i am calling it here:

$sql="SELECT * from tickets where ticketnumber = '".$_GET["seq"]."' ";
$ticket = SelectQuery($sql);
foreach($ticket as $ticket2) {

}

rather than using a foreach loop what else could i use as my query will only be returning one row and i dont want to put my whole page within a loop

i tried just removing the foreach loop but that didnt work

Just access your value as $ticket[0].

$ticket is an integer see :

 return $NumRows=mysql_num_rows($SelectQuery);

So you juste have to use $ticket.

If you want the row, remove this useless return in the SelectQuery function and use $ticket[0] for the first and only row.

Change the function with this :

function SelectQuery ($sql) {
    global $conn;
    $SelectQuery = mysql_query($sql,$conn);
    $NumRows=mysql_num_rows($SelectQuery);
    $SelectQuery_Results=array();
    if ($numRows>1) {
        while($SelectQuery_Row = mysql_fetch_array($SelectQuery)) {
            $SelectQuery_Results[] = $SelectQuery_Row;
        }
    }
    else $SelectQuery_Results = mysql_fetch_array($SelectQuery);
    return $SelectQuery_Results;
    }

Then use :

 $sql="SELECT * from tickets where ticketnumber = '".$_GET["seq"]."' ";
 $ticket = SelectQuery($sql);
 if (is_array($ticket)) { foreach loop; }
 else { use directly ticket['attribute'] }

A function cannot return two values for a single call. So, remove

return $NumRows=mysql_num_rows($SelectQuery);

You can check the array size for the number of rows in result.

If you want to echo out the result the following code will be ok!

if( sizeof($ticket) > 1 ){
    foreach($ticket as $ticket2){
        for($i=0; $i<sizeof($ticket2)/2; $i++)
            echo "[" . $ticket2[$i] . "]";
        echo "<br />";
    }
}