2015-11-30 1 views
3
require_once 'C:/wamp/www/FirstWebsite/CommonFunctions.php'; 

function SelectRowByIncrementFunc(){ 
    $dbhose = DB_Connect(); 
    $SelectRowByIncrementQuery = "SELECT * FROM trialtable2 ORDER BY ID ASC LIMIT 1"; 
    $result = mysqli_query($dbhose, $SelectRowByIncrementQuery); 
    $SelectedRow = mysqli_fetch_assoc($result); 
    return $SelectRowByIncrementQuery; 
    return $SelectedRow; //HERE is the error <------------------------------- 
    return $result; 
} 

$row = $SelectedRow; 
echo $row; 



if ($row['Id'] === max(mysqli_fetch_assoc($Id))){ 
    $row['Id']=$row['Id'] === min(mysqli_fetch_assoc($Id));#TODO check === operator 
} 
else if($row['Id']=== min(mysqli_fetch_assoc($Id))){ 
    $row['Id']=max(mysqli_fetch_assoc($Id));#TODO check === operator //This logic is important. DONT use = 1! 

Хорошо, я пытаюсь написать программу для конца моего веб-сайта с помощью PHP. Использование Netbeans в качестве моей IDE для выбора Я столкнулся с ошибкой при попытке написать функцию, которая будет хранить одну строку в ассоциативном массиве. Проблема возникает, когда я пытаюсь вернуть переменную $ SelectedRow. Это вызывает предупреждение «Недостижимое положение». Это приводит к тому, что программа падает на лицо. Я могу заставить этот код работать, не будучи включенным в функцию. Тем не менее, я действительно не чувствую, что это способ решить мои проблемы, когда я научусь писать программы.Недоступное заявление в PHP

Примечания: Это первый вопрос, который я опубликовал на SO, поэтому конструктивная критика и советы очень ценятся. Я рад опубликовать любые спецификации, которые помогут ответить или что-нибудь еще. Я не верю, что это так называемый «реплик», потому что пока я не нашел другого вопроса SO, который касается той же проблемы в PHP. Если у кого-нибудь есть предложения по поводу моего кода, в общем, я был бы готов услышать, так как я только что начал всю эту вещь CS.

+1

Создать массив значений вернуть его. Попробуйте следующее: 'return array ($ SelectRowByIncrementQuery, $ SelectedRow, $ result);' –

+0

Cheers. Работает хорошо. –

ответ

1

Команда return отменяет остальную функцию, так как как только вы ее используете, она выполнила свою задачу.

Ключом к этому является передача всей вашей информации в массив и возврат ее в конце функции, таким образом вы можете получить доступ ко всей информации.

Так попробуйте изменить код следующим образом:

require_once 'C:/wamp/www/FirstWebsite/CommonFunctions.php'; 

function SelectRowByIncrementFunc(){ 
    $dbhose = DB_Connect(); 
    $SelectRowByIncrementQuery = "SELECT * FROM trialtable2 ORDER BY ID ASC LIMIT 1"; 
    $result = mysqli_query($dbhose, $SelectRowByIncrementQuery); 
    $SelectedRow = mysqli_fetch_assoc($result); 
    $returnArray = array(); 
    $returnArray["SelectRowByIncrementQuery"] = $SelectRowByIncrementQuery; 
    $returnArray["SelectedRow"] = $SelectedRow; 
    $returnArray["result"] = $result; 
    return $returnArray; 
} 

И тогда вы можете получить доступ к информации, например, так:

$selectedArray = SelectRowByIncrementFunc(); 

$row = $selectedArray["SelectedRow"] 

и так далее ...

+0

Большое вам спасибо. Простое и умное исправление. –

3

Вы можете только return один раз. Все после первого return недоступно.

Мне не совсем ясно, что вы хотите, чтобы вернуться от этой функции, но вы можете вернуть только одно значение.

 Смежные вопросы

  • Нет связанных вопросов^_^