This isn't about prepared statements. It's a single query that returns ten answers and stores each of them into an array... or ten variables if you really want.
Depends on your DB but I'll assume PDO:
PHP Code:
function getResponses(PDO $Database, $UserID){
$ResponseStatement = $Database->prepare('SELECT response FROM answer WHERE member_id = :uid');
$ResponseStatement->bindValue('uid', $UserID, PDO::PARAM_INT);
$ResponseStatement->execute();
$Responses = $ResponseStatement->fetchAll(PDO::FETCH_COLUMN, 0);
if(empty($Responses)){
return false;
}else{
return $Responses;
}
}
It's just as simple with MySQL:
PHP Code:
function getResponses($UserID){
$UserID = (int)$UserID;
$ResponseQuery = mysql_query('SELECT response FROM answer WHERE member_id = ' . $UserID);
$Responses = array();
while($Response = mysql_fetch_array($ResponseQuery)){
$Responses[] = $ResponseQuery[0];
}
if(empty($Responses)){
return false;
}else{
return $Responses;
}
}
To then turn them into variables, if you really need to (arrays are so much more suited here) you'd use something like:
PHP Code:
$Responses = getResponses($Database, 1); //assuming userid is 1
if($Responses === false){
// no responses - handle this
}else{
extract($Responses, EXTR_PREFIX_ALL, 'Response');
}
When responses are available, they'll be stored as $Response_0, $Response_1 etc. I'd really recommend keeping it as an array though.
Bookmarks