текст слева и справа

Обсуждение вопросов, проблем связанных с обучением CSS

текст слева и справа

Сообщение Nikel097 » 10 июн 2014, 10:26

Такая ситуация: есть меню, там кол-во новых сообщений, но у некоторых пользователей выводится не корректно.
HTML:
Код: Выделить всё
<a class="menu" href="http://smodels.kz/forum/index.php">Форум <span><b>+3</b></span></a>


CSS:
Код: Выделить всё
div.menu a.menu{color:#000; display:block; background: url(http://smodels.kz/img/strelka.png) no-repeat left center; background-position-x:10px; padding-left: 17px; margin: 0px; border:0; text-decoration:none;}
div.menu a.menu:hover{background: url(http://smodels.kz/img/strelka.png) no-repeat left center #CDD3D8; background-position-x:10px; text-decoration:none;}
div.menu a.menu span{
  background:CDD3D8;
  -webkit-border-radius: 2px;
  -khtml-border-radius: 2px;
  -moz-border-radius: 2px;
  padding:0 5px; margin:0 5px; float:right;


То, что должно быть и то, что у меня показывает:
Безымянный.png
Безымянный.png (7.71 КБ) Просмотров: 4417

Но уже у двух пользователей показывает так:
20f8c88eb0d9c76f6b7f631277baa211(1).jpeg
20f8c88eb0d9c76f6b7f631277baa211(1).jpeg (18.4 КБ) Просмотров: 4417


Подскажите в чем дело. И как исправить.
Аватара пользователя
Nikel097
 
Сообщения: 276
Зарегистрирован: 04 июн 2012, 12:27
Откуда: Казахстан, Алматы

Re: текст слева и справа

Сообщение Encoder » 10 июн 2014, 10:36

Тут надо код анализировать через отладчик, может вы ошиблись и случайно не тому полю вывод прописали для пользователей? А еще зачем писать еще тег <b>
Можно ведь тегу span написать css свойство font-weight: bold; и текст станет жирным. И еще попробуйте добавить
Код: Выделить всё
div.menu a.menu {overflow: hidden;}
Аватара пользователя
Encoder
Модератор
 
Сообщения: 360
Зарегистрирован: 21 фев 2011, 11:15

Re: текст слева и справа

Сообщение Nikel097 » 10 июн 2014, 11:00

Дело точно не в выводе:
Код: Выделить всё
if ($type=='forum') {$write.='<a class="menu" href="http://smodels.kz/catalog/index.php">Каталог</a>';
                             $write.='<a class="menu" href="http://smodels.kz/forum/index.php">';
                             $new_or_last=mysql_query("SELECT * FROM forum_answer ",$db);
                             $count_mes_forum=0;
                             $count_answers=mysql_num_rows($new_or_last);
                                    if (empty($login)) {$count_answers=0;}
                            for($i=1; $i<=$count_answers; $i++)
                                {$answer = mysql_fetch_array($new_or_last);
                                $who_see=unserialize($answer['who_see']);
                                $new_message=false;
                            if (!empty($who_see)) {
                                    foreach($who_see as $val)
                                        {if (strtolower($val)==strtolower($login)) {$new_message=true; break;}}
                                if (($new_message==false)and(!empty($login))) {$count_mes_forum++;}
                                                              }    
                                
}

                            if ($count_mes_forum>999) {$count_mes_forum=999;}
                            if ($count_mes_forum>0) {$write.='Форум <span>+'.$count_mes_forum.'</span></a>';}
                                                else {$write.='Форум</a>';}
                            }

die(
$write); 

Ошибок точно быть не может. + Ссылки "каталог и форум" я оборачиваю дополнительным div, чтобы в него записывать результат.

P.S. насчет <b> это я сглупил. ;))?
Аватара пользователя
Nikel097
 
Сообщения: 276
Зарегистрирован: 04 июн 2012, 12:27
Откуда: Казахстан, Алматы

Re: текст слева и справа

Сообщение Encoder » 10 июн 2014, 20:53

Да не понятно. Замечание на счет кода, он не очень понятен, форматируйте его по лучше, позже когда вернетесь к нему есть вероятность что ничего не поймете.
Дальше вот смотрите вы проверяйте существует ли пользователь я правильно понял?
if (empty($login)) {$count_answers=0;} если да, то зачем вы проверку там вызывайте? Получается вы сначала дергайте БД а потом проверяйте а если ли пользователь вообще, лишний раз ее дергайте. Лучше сделать проверку в самом начале, если есть дергаем базу, а если нету пользователя то зачем ее трогать.

Код: Выделить всё
if ($type=='forum') {
    $write.='<a class="menu" href="http://smodels.kz/catalog/index.php">Каталог</a>';
    $write.='<a class="menu" href="http://smodels.kz/forum/index.php">';
    // Если пользователя не существует
    if (empty($login)) {
        $write.='Форум</a>'; // Добавлем просто текст "Форум"
        die($write); // и убиваем скрипт.
    }
    
    
// Если же пользователь существует мы считаем количество новых сообщений
    $new_or_last=mysql_query("SELECT * FROM forum_answer ",$db);
    $count_mes_forum=0;
    $count_answers=mysql_num_rows($new_or_last);
    
    for
($i=1; $i<=$count_answers; $i++) {
        $answer = mysql_fetch_array($new_or_last);
        $who_see=unserialize($answer['who_see']);
        $new_message=false;
        if (!empty($who_see)) {
            foreach($who_see as $val) {
                if (strtolower($val)==strtolower($login)) 
                    $new_message
=true; break;
            }
            if (($new_message==false)and(!empty($login))) 
                $count_mes_forum
++;
        }
    }

    if ($count_mes_forum>999) 
        $count_mes_forum
=999;
    
    if 
($count_mes_forum>0) 
        $write
.='Форум <span>+'.$count_mes_forum.'</span></a>';
}

die(
$write);
Аватара пользователя
Encoder
Модератор
 
Сообщения: 360
Зарегистрирован: 21 фев 2011, 11:15

Re: текст слева и справа

Сообщение Nikel097 » 11 июн 2014, 06:20

Спасибо. Так удобней.
Я проверяю не существование пользователя, а переменную. Перед этим я беру информацию из куки и сессий.

Насчет съезжания, у меня есть одна идейка. Когда вновь попаду домой, попытаюсь попробовать.
Аватара пользователя
Nikel097
 
Сообщения: 276
Зарегистрирован: 04 июн 2012, 12:27
Откуда: Казахстан, Алматы

Re: текст слева и справа

Сообщение Encoder » 11 июн 2014, 10:25

Зачем вы проверяйте переменную $login? Что в ней должно быть?
Аватара пользователя
Encoder
Модератор
 
Сообщения: 360
Зарегистрирован: 21 фев 2011, 11:15

Re: текст слева и справа

Сообщение Nikel097 » 11 июн 2014, 11:17

там хранится логин авторизированного пользователя.
Аватара пользователя
Nikel097
 
Сообщения: 276
Зарегистрирован: 04 июн 2012, 12:27
Откуда: Казахстан, Алматы

Re: текст слева и справа

Сообщение Nikel097 » 11 июн 2014, 19:03

Все получилось. :-D :-D :-D
Я ссылке прописал свойство: white-space:nowrap;
Аватара пользователя
Nikel097
 
Сообщения: 276
Зарегистрирован: 04 июн 2012, 12:27
Откуда: Казахстан, Алматы

Re: текст слева и справа

Сообщение Encoder » 11 июн 2014, 21:03

Окей попробую объяснить по другому

Код: Выделить всё
 $new_or_last=mysql_query("SELECT * FROM forum_answer ",$db);
                  $count_mes_forum=0;
                  $count_answers=mysql_num_rows($new_or_last);
                  if (empty($login)) {
                      $count_answers=0;
                  


Вы делайте запрос к БД не зависимо от присутствия или отсутствия логина в переменной $login. После того как запрос в БД сделан вы проверяйте, а не пуста ли переменная $login, если пуста ставите 0 сообщений, и в конце скрипта, добавляйте просто строчку "форум"
Код: Выделить всё
if ($count_mes_forum>0) {
             $write.='Форум <span>+'.$count_mes_forum.'</span></a>';
         } else {
               $write.='Форум</a>';
         


А не логичней было бы проверить $login в начале скрипта? И если переменная $login пуста, значит там нету пользователя и смотреть есть ли для него сообщения пустая трата ресурсов.

Код: Выделить всё
if (empty($login)) {
     $write.='Форум</a>';
     die($write);
Аватара пользователя
Encoder
Модератор
 
Сообщения: 360
Зарегистрирован: 21 фев 2011, 11:15

Re: текст слева и справа

Сообщение Nikel097 » 12 июн 2014, 10:08

Теперь понял, действительно глупо.
Спасибо за помощь.
Аватара пользователя
Nikel097
 
Сообщения: 276
Зарегистрирован: 04 июн 2012, 12:27
Откуда: Казахстан, Алматы

След.

Вернуться в CSS

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

cron
Рейтинг@Mail.ru