1 (изменено: Idalgos, 2012-04-03 06:15:02)

Тема: Проблема с заполнением БД.

Вообщем есть 2 вопроса:
1. Можно в таблице сделать столбец ссылками на файлы (.doc ) и потом так же вывести эти ссылки в браузере?
2. Когда заполнил таблицу на русском языке, начал просматривать ее и увидел что текст отображается в виде вопросов "?????". Вообщем можно как-нибудь сделать кодировку текста чтобы русский язык отображало?

2

Re: Проблема с заполнением БД.

1) Можно. Ссылки хранятся точно так же, как обычные строки текста.
2) Необходимо соблюсти кодировки. Пример для utf-8:
Кодировка файла скрипта UTF-8.
Кодировка метатега utf-8.
Сравнение текстовых полей таблицы БД utf8_general_ci.
Установка кодировки соединения с MySQL в скрипте, для чего после функции mysql_connect необходимо добавить строку:

mysql_query('SET NAMES utf8');

3 (изменено: Idalgos, 2012-04-06 14:27:44)

Re: Проблема с заполнением БД.

Сделал  для полей "Сравнение" = utf8_general_ci.

И после mysql_connect сделал mysql_query('SET NAMES utf8');
Когда пишу $r=mysql_query("select * from $a=о недрах;"); то появляется Unknown database '??'.

http://s019.radikal.ru/i642/1204/c6/f487dac17402t.jpg
Названин базы и таблицы на русском. вот код вообщем:

<?php 
$db_host="127.0.0.1";//localhost
$db_user="root";
$db_pass="";
$db_name="ИРиА";
$db_connect =mysql_connect($db_host, $db_user, $db_pass); 
$a=mysql_query('SET NAMES utf8');
$db_select =mysql_select_db($db_name) or die(mysql_error());

$r=mysql_query("select * from о недрах");
echo "В таблице ИРиА ".mysql_num_rows($r)." записей";
?>

4

Re: Проблема с заполнением БД.

Обратите внимание на косые кавычки. Имена таблиц и полей обязательно закрывайте в косые кавычки, иначе писать их по-русски нельзя.

$r = mysql_query("select * from `о недрах`");

5

Re: Проблема с заполнением БД.

Спасибо большое, с кодировкой разобрался и ссылками тоже.

6 (изменено: Idalgos, 2012-04-09 17:45:31)

Re: Проблема с заполнением БД.

Можно  еще вопрос один?
У меня есть список: (Это список названия таблиц моей базы)

<select name="akt" size =4>
<option value="lesnoi_kodex">Лесной кодекс</option>
<option value="vodni_kodex">Водный кодекс</option>
<option value="zemelni_kodex_rf">Земляной кодекс</option>
<option value="zragdan_kodex">Гражданский кодекс</option>
</select>

Допустим в оброботке я получил значение (имя таблицы) .

$akt=$_POST['akt'];

И когда я делаю запрос к этой таблице:

$r=mysql_query("select * from $akt") or die(mysql_error());

То выдает ошибку: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '`lesnoi_kodex`' at line 1

7

Re: Проблема с заполнением БД.

Ошибка связана со строкой. Строки всегда должны заключаться в кавычки.

$r = mysql_query('SELECT * FROM "' . mysql_real_escape_string($akt) . '"') or die(mysql_error());

Также смотрите документацию к функции mysql_real_escape_string.