если еще условие не проверяется для запроса mysql в php mysql

Привет, у меня небольшая проблема с выполнением запроса с использованием условия if else. У меня есть 2 таблицы, т.е. dashboard_widget и dashboard_widget_users, и в обеих этих таблицах я храню свою несериализованную конфигурацию. Пользователи всегда будут получать конфигурацию из таблицы dashboard_widget_users. если еще условие, и я пытался это сделать, но не смог выполнить его должным образом. Условие для if(!empty($empty_config)) выполняется, но если оно пустое, я не получаю никакого результата. Спасибо.

таблица dashboard_widget_users введите здесь описание изображения

таблица dashboard_widget введите здесь описание изображения

Вот мой php-код:

$query = "SELECT dashboard_widget_users.configuration
    FROM dashboard_widget_users
    INNER JOIN yw_user ON dashboard_widget_users.dsnr_yw_user = yw_user.intern
    INNER JOIN dashboard_widget ON dashboard_widget_users.dsnr_dashboard_widget = dashboard_widget.id
    WHERE dashboard_widget_users.dsnr_yw_user =10 AND dashboard_widget.id =1 ";  
$result = mysql_query($query, $myConnection);
if ($row = mysql_fetch_assoc($result)) 
{
    $empty_config=$row['configuration'];
    if (empty($empty_config)) {
        $sql="SELECT dashboard_widget.configuration FROM dashboard_widget WHERE Id =1";
        $sql_result = mysql_query($sql, $myConnection);
        $results = mysql_fetch_assoc($sql_result);  
        $config= unserialize($results['configuration']);
    }
    if (!empty($empty_config)) {
        $config = unserialize($row['configuration']);

        foreach($config as $val)
        {
            //Here is my further things.....                
     }
   }
}

person user3702602    schedule 27.06.2014    source источник
comment
Каков ваш вопрос точно?   -  person u_mulder    schedule 27.06.2014
comment
Если вы не найдете результата, вы не пройдете if(empty($empty_config)) тест. Проверьте количество строк. Подробности см. в документации и обязательно прочитайте это предупреждение об устаревании... дни, в течение которых ваш код будет работать все пронумерованы.   -  person    schedule 27.06.2014
comment
это выглядит завершенным, что я написал, но это просто. Если в таблице dashboard_widget_users, как показано, конфигурация пуста, тогда должна отображаться конфигурация из таблицы dashboard_widget...   -  person user3702602    schedule 27.06.2014
comment
пожалуйста, проверьте обновленный вопрос.. теперь он выглядит просто.. я удалил дальнейшую часть.... условие для !empty($empty_config) выполняется, но условие empty($empty_config) не выполняется...i я делаю ошибку в моем условии if else, я думаю...   -  person user3702602    schedule 27.06.2014


Ответы (1)


Вы должны проверить, есть ли найденные строки, если да, отобразить информацию, если нет, отобразить информацию по умолчанию:

<?php
$query = "SELECT dashboard_widget_users.configuration
    FROM dashboard_widget_users
    INNER JOIN yw_user ON dashboard_widget_users.dsnr_yw_user = yw_user.intern
    INNER JOIN dashboard_widget ON dashboard_widget_users.dsnr_dashboard_widget = dashboard_widget.id
    WHERE dashboard_widget_users.dsnr_yw_user =10 AND dashboard_widget.id =1 ";  
$result = mysql_query($query, $myConnection);

if( mysql_num_rows( $result ) > 0 ) {
    // row found, display it
}
else {
    // row not found, display default
}
?>

Примечание: вам следует изучить mysqli_* функции, mysql_* функции устарели. Также проверьте эту ссылку.

person LinkinTED    schedule 27.06.2014
comment
нет, проблема в том, что у меня возникает проблема foreach ($ config as $ val), если я обнаружил, что конфигурация пуста из таблицы dashboard_widget_users ... - person user3702602; 27.06.2014
comment
Что вы получаете, когда делаете var_dump($row); и var_dump($empty_config);?? - person LinkinTED; 27.06.2014
comment
спасибо, чувак, я смог определить очень маленькую ошибку :) - person user3702602; 27.06.2014