Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> проблема с кодировкой
Mawr  
 ۩  [x]    Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 27
Пользователь №: 31692
На форуме: 4 года, 8 месяцев, 24 дня
Карма:




доброго дня
проблема такова:
в базе данных есть таблица из двух столбцов: должность(первичный ключ) и соответствующий оклад. Создаю страницу с выводом содержимого этой таблицы, и тремя кнопками (изменить, удалить, добавить). Когда выбираю один radio, и хочу изменить оклад этой должности, выводит ошибку "Ошибка при выполнении запроса: Unknown column 'Стажер' in 'where clause'"
понимаю что проблема с кодировкой, но исправить не могу.
вот сам код:
<?php
$dblocation = "localhost";
$dbname = "ola";
$dbuser = "root";
$dbpasswd = "";
$dbcnx = mysql_connect($dblocation,$dbuser,$dbpasswd);
if (!$dbcnx) exit("<p>К сожалению, не доступен сервер MySQL</p>");
if (!mysql_select_db($dbname,$dbcnx)) exit("<p>К сожалению, не доступна база данных</p>");

if ($_POST['sav'])
{
$NAMED=get_post('NAMED');
$OKLAD=get_post('OKLAD');
$q1="update DOL set OKLAD='".$OKLAD."' where NAMED='".$NAMED."'";
mysql_query($q1);

}
if (($_POST['add']) && ($_POST['NAMED']!='') && ($_POST['OKLAD']!=''))
{
$OKLAD=get_post('OKLAD');
$NAMED=get_post('NAMED');
$q="insert into DOL(NAMED,OKLAD) value('".$NAMED."', '".$OKLAD."')";
mysql_query($q);
}
if (($_POST['rad']) && ($_POST['del']))
{
$q="delete from DOL where NAMED='".$_POST['rad']."'";
mysql_query($q);
}
$query ="select * from DOL order by 2";
$result=MYSQL_QUERY($query)or die ("Ошибка при выполнении запроса: " .mysql_error ());
echo "<h2 align=center> Должности </h2>";
echo "<form name=forma method='post' action='".$_SERVER['PHP_SELF']."' accept-charset='cp1251'>";
echo "<br><br>";
echo "<table border=2 width=20% align=center>";
while ($row = mysql_fetch_array ($result))
{
echo "<tr>";
echo "<td width=3% align=right><input type=radio name='rad' value='".$row['NAMED']."'>";
echo "<td width=25%>"; echo $row ["NAMED"]; echo "</td>";
echo "<td width=72%>"; echo $row ["OKLAD"]; echo "</td>";
echo "</tr>";
}
echo "</table>";

echo "<table border=0 width=30% align=center>";
echo "<tr></tr><tr></tr><tr>";
echo "<td><input type=submit name=upd value='Изменить'> </td>";
echo "<td><input type=submit name=del value='Удалить'></td>";
echo "<td><input type=submit name=add value='Добавить'></td>";
echo "</tr>";
if (($_POST['rad']) && ($_POST['upd'])) //вот тут ошибка
{
$q="select * from DOL where NAMED=".$_POST['rad'];
echo "<tr><td colspan=3 align=left>";
$res=mysql_query($q) or die ("Ошибка при выполнении запроса: " .mysql_error ());
$row = mysql_fetch_array ($res);
echo "<td><input type=submit name=sav value='Сохранить'></td></tr>";
}
echo "</table>";
$qq="Select * from DOL";
$result1=mysql_query($qq) or die ("Ошибка при выполнении запроса: " .mysql_error ());
echo "<pre>Название должности<input type=text name=NAMED value='".$row['NAMED']."'></pre>";
echo "<pre>Оклад<input type=text name=OKLAD value='".$row['OKLAD']."'></pre>";


echo "</form>";

MYSQL_CLOSE();
function get_post($var)
{
return mysql_real_escape_string($_POST[$var]);
}
?>
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
fdr  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 65
Пользователь №: 32519
На форуме: 4 года, 6 месяцев, 8 дней
Карма: 5

Трезвый :
27 лет, 5 месяцев, 11 дней


после выборки базы, попробуйте использовать
mysql_set_charset('ваша-кодировка')
при этом желательно, что бы и скрипт и база были в одной кодировке!
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Mawr  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 27
Пользователь №: 31692
На форуме: 4 года, 8 месяцев, 24 дня
Карма:




скрипт в ANSI, база в cp1251_general_ci
видимо, это не одно и тоже?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Mawr  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 27
Пользователь №: 31692
На форуме: 4 года, 8 месяцев, 24 дня
Карма:




гм, надо было вместо
$q="select * from DOL where NAMED=".$_POST['rad'];

написать
$q="Select * from DOL where NAMED='".$_POST['rad']."'";
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
fdr  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 65
Пользователь №: 32519
На форуме: 4 года, 6 месяцев, 8 дней
Карма: 5

Трезвый :
27 лет, 5 месяцев, 11 дней


Цитата (Mawr @ 23.06.2012 - 12:02)
скрипт в ANSI, база в cp1251_general_ci
видимо, это не одно и тоже?

по миому одно и тоже)))
в вашем случае...
mysql_set_charset('cp1251') будет.
а так на будущее, лучше использовать UTF-8!
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
vital  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



int main(){printf("Hello World"); return 0;"}
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2476
Пользователь №: 20247
На форуме: 6 лет, 11 месяцев, 8 дней
Карма: 63




Цитата (Mawr @ 23.06.2012 - 15:53)
гм, надо было вместо
$q="select * from DOL where NAMED=".$_POST['rad'];

написать
$q="Select * from DOL where NAMED='".$_POST['rad']."'";

надо было написать
q="Select * from DOL where NAMED='".mysql_real_escape_string($_POST['rad'],$db)."'";


--------------------
"Нужно быть готовым прислушиваться к тем, кто может тебя чему-нибудь научить. Иначе ты никогда не вырастешь."

Откровенно я никому ниразу не нагрубил. А дать подзатыльник зарвавшемуся юнцу, так это и ему на пользу, и мне в удовольствие. © AllesKlar
PMПисьмо на e-mail пользователюСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса