Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2012, 20:01   #11
HDMI
Пользователь
 
Регистрация: 21.09.2009
Сообщений: 48
По умолчанию

Никаких заморочек нет. Тем более первый список нормально же составился.

Код:
Variable_name 	Value 
character_set_client	utf8
character_set_connection	utf8
character_set_database	cp1251
character_set_filesystem	binary
character_set_results	utf8
character_set_server	latin1
character_set_system	utf8
При соеднинении к БД устанавливается это:
Код:
   mysql_query("set character_set_client	='cp1251'");
    mysql_query("set character_set_results	='cp1251'");
    mysql_query("set collation_connection	='cp1251_general_ci'");
HDMI вне форума Ответить с цитированием
Старый 30.03.2012, 20:25   #12
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Давайте попробуем сделать так:
- в первый select выбираем не только название предмета, но и его ID, и в option делаем так: <option value="_тут_ставим_ID_вместо_назван ия_">Название</option>
- соответственно, в запросе для второго select-a меняем predmet.name_pr='$drop_var' на predmet.ID(или как там у вас в таблице)='$drop_var' (т.к. у нас теперь передается ID, а не название)

Изменится ли теперь результат запроса, если передавать в запрос не название (с которым могут быть проблемы из-за кодировок) - а ID (число) ?
Andkorol вне форума Ответить с цитированием
Старый 30.03.2012, 20:31   #13
HDMI
Пользователь
 
Регистрация: 21.09.2009
Сообщений: 48
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Давайте попробуем сделать так:
- в первый select выбираем не только название предмета, но и его ID, и в option делаем так: <option value="_тут_ставим_ID_вместо_назван ия_">Название</option>
- соответственно, в запросе для второго select-a меняем predmet.name_pr='$drop_var' на predmet.ID(или как там у вас в таблице)='$drop_var' (т.к. у нас теперь передается ID, а не название)

Изменится ли теперь результат запроса, если передавать в запрос не название (с которым могут быть проблемы из-за кодировок) - а ID (число) ?
Сделал так, вот результат этого:



В базе для инф.сетей 2 строчки и есть как раз
HDMI вне форума Ответить с цитированием
Старый 30.03.2012, 21:08   #14
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Теперь кодировку нужно поправить.
Попробуйте разные варианты изменения кодировок (UTF-8 <-> windows-1251) при помощи iconv() - или можно попробовать такой пример. Тут можно не угадать сразу, что на что менять - потому пробуйте и обратные варианты в iconv.
Для этого лучше собрать весь вывод в одну строку - и применить к ней преобразование кодировки. А потом уже передать эту строку в echo.
Andkorol вне форума Ответить с цитированием
Старый 30.03.2012, 21:42   #15
HDMI
Пользователь
 
Регистрация: 21.09.2009
Сообщений: 48
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Теперь кодировку нужно поправить.
Попробуйте разные варианты изменения кодировок (UTF-8 <-> windows-1251) при помощи iconv() - или можно попробовать такой пример. Тут можно не угадать сразу, что на что менять - потому пробуйте и обратные варианты в iconv.
Для этого лучше собрать весь вывод в одну строку - и применить к ней преобразование кодировки. А потом уже передать эту строку в echo.

Чего смог добиться:


Причем интересно вот что, меняю кодировку для новой переменной
PHP код:
$new_result=iconv('UTF-8','windows-1251',$result[id_predmet]); 
но если указывать эту переменную здесь
PHP код:
while($drop_2 mysql_fetch_array$new_result )) 
то список пустой, емли поставить просто $result, то цифры.

Кнопка то почему косячная? Обычная такая кнопка:
PHP код:
echo '<input type="submit" name="submit" value="Кнопка" />'
Файл скрипта сохранен в windows-1251
HDMI вне форума Ответить с цитированием
Старый 30.03.2012, 21:49   #16
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от HDMI Посмотреть сообщение
Кнопка то почему косячная? Обычная такая кнопка:
PHP код:
echo '<input type="submit" name="submit" value="Кнопка" />'
Файл скрипта сохранен в windows-1251
Вот на кнопке и можно тренироваться - попробуйте изменить кодировку самого файла со скриптом на UTF-8 (without BOM), в каком-нить Notepad++.
Andkorol вне форума Ответить с цитированием
Старый 30.03.2012, 21:58   #17
HDMI
Пользователь
 
Регистрация: 21.09.2009
Сообщений: 48
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Вот на кнопке и можно тренироваться - попробуйте изменить кодировку самого файла со скриптом на UTF-8 (without BOM), в каком-нить Notepad++.
В notepad++ и программирую

Результат есть:


Но вот попробовал поменять на имя задания - пусто опять же после запроса
HDMI вне форума Ответить с цитированием
Старый 30.03.2012, 22:08   #18
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от HDMI Посмотреть сообщение
Но вот попробовал поменять на имя задания - пусто опять же после запроса
Не совсем понял, что это значит - но попробуйте обратное преобразование:
PHP код:
while($drop_2 mysql_fetch_array$result ))  

    
$name_z iconv('windows-1251''UTF-8'$drop_2['name_z']);
    echo 
'<option value="' $name_z '">' $name_z '</option>'

Andkorol вне форума Ответить с цитированием
Старый 30.03.2012, 22:13   #19
HDMI
Пользователь
 
Регистрация: 21.09.2009
Сообщений: 48
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Не совсем понял, что это значит - но попробуйте обратное преобразование:
PHP код:
while($drop_2 mysql_fetch_array$result ))  

    
$name_z iconv('windows-1251''UTF-8'$drop_2['name_z']);
    echo 
'<option value="' $name_z '">' $name_z '</option>'

Не помогает. Да и сама переменная $result пустая.
PHP код:
echo mysql_num_rows($result); 
выдает 0

PHP код:
function drop_1($drop_var)

  {  
    echo 
$drop_var// выдает нормально, социология или инф. сети
    
$result mysql_query("SELECT name_z FROM predmet,zadania WHERE predmet.name_pr='$drop_var' AND predmet.id_predmet=zadania.id_predmet"
    or die(
mysql_error());

echo 
"SELECT name_z FROM predmet,zadania WHERE predmet.name_pr='$drop_var' AND predmet.id_predmet=zadania.id_predmet"//выдает строку нормальную SELECT name_z FROM predmet,zadania WHERE predmet.name_pr='Социология' AND predmet.id_predmet=zadania.id_predmet

    
$new=mysql_fetch_array$result ); //выдает 0
    
echo $new[name_z]; //пустая переменная

.......... 

Последний раз редактировалось HDMI; 30.03.2012 в 22:20.
HDMI вне форума Ответить с цитированием
Старый 30.03.2012, 22:21   #20
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от HDMI Посмотреть сообщение
Не помогает. Да и сама переменная $result пустая.
Чего это она у вас пустая стала?
Там же число (ID) передаем в запрос?
Кодировка не должна влиять..

PS: - вы зачем опять названия передаете? Чем ID вас не устраивает?
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В каждый момент на форме отображаются только два списка с именами и фамилиями Johny91 Помощь студентам 4 08.11.2013 14:44
Программная реализация динамического списка динамических очередей Ghost1k Помощь студентам 2 30.08.2011 22:41
реализация упорядоченного динамического списка динамических стеков(Delphi) berezka Помощь студентам 3 28.12.2010 19:40
Соединить два списка в третий Иванов_ДМ Microsoft Office Excel 11 20.08.2009 08:21