Вот код:
<?
function det_l($ch)
{
$rus_c = array("а","б","в","г","д","е","ё","ж","з","и","й","к","л","м", "н","о","п","р","с","т","у","ф","х","ц","ч","ш","щ","ъ"," ы","ь","э","ю","я","А","Б","В","Г","Д","Е","Ё","Ж","З","И","Й","К","Л","М","Н","О","П","Р","С","Т","У","Ф","Х","Ц","Ч","Ш","Щ","Ъ","Ы","Ь","Э","Ю ","Я");
$eng_c = array("a","b","c","d","e","f","h","i","j","k","l","m","n", "o","p","q","r","s","t","u","v","w","x","y","z","A","B"," C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
$eng_len=count($eng_c);
$rus_len=count($rus_c);
for($i=0;$i<$eng_len;$i++)
if($eng_c[$i]==$ch)
$lang = 1;
for($i=0;$i<$rus_len;$i++)
if($rus_c[$i]==$ch)
$lang = 2;
if ($lang == 1)
return 1;
else
return 2;
}
function in_arr($ch)
{
$rus_c = array("а","б","в","г","д","е","ё","ж","з","и","й","к","л","м","н","о","п","р","с","т","у","ф","х","ц","ч","ш","щ","ъ"," ы","ь","э","ю","я","А","Б","В","Г","Д","Е","Ё","Ж","З","И","Й","К","Л","М","Н","О","П","Р","С","Т","У","Ф","Х","Ц",& ;quo t;Ч","Ш","Щ","Ъ","Ы","Ь","Э","Ю ","Я");
$eng_c = array("a","b","c","d","e","f",","h","i","j","k","l","m","n", "o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q" ,"R","S","T","U","V","W","X","Y","Z");
$eng_len=count($eng_c);
$rus_len=count($rus_c);
for($i=0;$i<$eng_len;$i++)
if($eng_c[$i]==$ch)
$yn = 1;
for($i=0;$i<$rus_len;$i++)
if($rus_c[$i]==$ch)
$yn = 1;
if ($yn == 1)
return 1;
else
return 0;
}
$db_host = 'localhost';
$db_user = 'root';
$db_pass = '1';
$db_database = 'word';
$link = mysql_connect($db_host,$db_user,$db_pass);
mysql_select_db($db_database,$link);
$max_theme = 0;
$max_word = 0;
$query = ("SELECT * FROM themes");
$result = mysql_query($query);
while($res = mysql_fetch_row($result))
{
if($max_theme<$res[0])
$max_theme=$res[0];
}
$query = ("SELECT * FROM words");
$result = mysql_query($query);
while($res = mysql_fetch_row($result))
{
if($max_word<$res[0])
$max_word=$res[0];
}
$max_word++;
$max_theme++;
$num_insert = 0;
$less_num = 1;
$f = fopen("base.txt","r");
while(!feof($f))
{
$str = fgets($f);
$str_len = strlen($str);
unset($e_f);
unset($e_l);
unset($r_f);
unset($r_l);
$e_w="";
$r_w="";
for($i=0;$i<$str_len;$i++)
{
if(in_arr($str[$i])==1)
{
if(det_l($str[$i])==1)
if(isset($e_f)==false)
{
$e_f = $i;
$e_l = $i;
}
else
$e_l = $i;
if(det_l($str[$i])==2)
if(isset($r_f)==false)
{
$r_f = $i;
$r_l = $i;
}
else
$r_l = $i;
}
}
for($i=$e_f;$i<=$e_l;$i++)
$e_w = $e_w.$str[$i];
for($i=$r_f;$i<=$r_l;$i++)
$r_w = $r_w.$str[$i];
[color=red]mysql_query("insert into words values($max_word,'$e_w','$r_w',$max_theme)");[/color]
$max_word++;
}
?>
Обьясните пожалуйста кто-нибудь, почему не работает строка выделенная красным.Вроде все правильно, проблема какая-то в переменных $e_w,$r_w.
когда присваиваю значения вручную, допустим $e_w = "string" и $r_w = "строка",то все ок,добавляет,а так нет(Help me please...
Спустя 3 минуты, 17 секунд (23.01.2011 - 18:41) inpost написал(а):
Загляни ко мне в подписи, особенно последнюю, там как правильно делать записи в запросах. У тебя в БД сейчас заносится такой текст: "$r_w", а вывод переменных надо обрамлять.
Спустя 3 минуты, 17 секунд (23.01.2011 - 18:45) Xpund написал(а):
'".$r_w."'
Что то в этом роде должно быть =)
Что то в этом роде должно быть =)
Спустя 7 минут, 1 секунда (23.01.2011 - 18:52) mixer написал(а):
Изменил на
mysql_query("insert into words values($max_word,".$ew.",".$rw.",$max_theme)");
ничего не добавляет(Не пойму в чем дело.
mysql_query("insert into words values($max_word,".$ew.",".$rw.",$max_theme)");
ничего не добавляет(Не пойму в чем дело.
Спустя 2 минуты, 55 секунд (23.01.2011 - 18:55) mixer написал(а):
Хотя если изменить на такое:
$e_w = "gfd";
$r_w = "fds";
mysql_query("insert into words values($max_word,'$e_w','$r_w',$max_theme)");
то добавляет в базу.Такое ощущение, что проблема в $e_w и $r_w, хотя какая там проблема может быть не пойму, строка и строка.
$e_w = "gfd";
$r_w = "fds";
mysql_query("insert into words values($max_word,'$e_w','$r_w',$max_theme)");
то добавляет в базу.Такое ощущение, что проблема в $e_w и $r_w, хотя какая там проблема может быть не пойму, строка и строка.
Спустя 6 минут, 23 секунды (23.01.2011 - 19:01) inpost написал(а):
mixer
Текст надо брать в одинарные кавычки дополнительно!
Текст надо брать в одинарные кавычки дополнительно!
Спустя 6 минут, 1 секунда (23.01.2011 - 19:07) mixer написал(а):
Если я правильно понял то так:
Так тоже не работает(
mysql_query("insert into words values($max_word,".'$e_w'.",".'$r_w'.",$max_theme)");
Так тоже не работает(
Спустя 1 минута, 36 секунд (23.01.2011 - 19:09) inpost написал(а):
Спустя 7 минут, 47 секунд (23.01.2011 - 19:16) mixer написал(а):
mysql_query("insert into words values(".$max_word.",'".$e_w."','".$r_w."',".$max_theme.")");
Не работает тоже, все как в инструкции
Спустя 6 минут, 31 секунда (23.01.2011 - 19:23) inpost написал(а):
mysql_query("
INSERT INTO `words` SET
`text` = '".$text."'
");
вот так сделай
Спустя 11 минут, 39 секунд (23.01.2011 - 19:35) mixer написал(а):
mysql_query("insert into `words` SET
`word_code` = '".$max_word."',
`e_word` = '".$e_w."',
`r_word` = '".$r_w."',
`theme_code` = '".$max_theme."'");
И так не хочет(
Спустя 1 минута, 12 секунд (23.01.2011 - 19:36) inpost написал(а):
mysql_query("insert into `words` SET
`word_code` = '".$max_word."',
`e_word` = '".$e_w."',
`r_word` = '".$r_w."',
`theme_code` = '".$max_theme."'") or die(mysql_error());
пишется ошибка?
Спустя 11 минут, 7 секунд (23.01.2011 - 19:47) mixer написал(а):
Выдает следующее:
Incorrect string value: '\xE3\xEB\xE0\xE2\xED\xFB...' for column 'r_word' at row 1
Ничего не пойму, там буквы должны быть
Incorrect string value: '\xE3\xEB\xE0\xE2\xED\xFB...' for column 'r_word' at row 1
Ничего не пойму, там буквы должны быть

Спустя 3 минуты, 28 секунд (23.01.2011 - 19:50) inpost написал(а):
mysql_real_escape_string($text) - попробуй так.
или просто выведи содержимое: echo $r_w, и посмотри, что внутри.
или просто выведи содержимое: echo $r_w, и посмотри, что внутри.
Спустя 7 минут, 58 секунд (23.01.2011 - 19:58) mixer написал(а):
echo $r_w и echo $e_w выводит все правильно все слова.При желании можно вывести их в таблицу и все правильно отображается.
Кстати если написать такую строчку
то он вводит английское слово хранящееся в $e_w, а вместо русского f
Кстати если написать такую строчку
mysql_query("insert into words values($max_word,'".$e_w."','f',$max_theme)");
то он вводит английское слово хранящееся в $e_w, а вместо русского f
Спустя 4 минуты, 35 секунд (23.01.2011 - 20:03) mixer написал(а):
Так работает:
А так нет:
$r_w='gffd';
mysql_query("insert into words values($max_word,'".$e_w."','".$r_w."',$max_theme)");
А так нет:
$r_w='авы';
mysql_query("insert into words values($max_word,'".$e_w."','".$r_w."',$max_theme)");
Спустя 7 минут, 10 секунд (23.01.2011 - 20:10) Xpund написал(а):
А с кодировкой в базе у вас всё в порядке?
Спустя 8 минут, 44 секунды (23.01.2011 - 20:19) mixer написал(а):
В базе utf-8.
я еще эту строчку добавил, все тоже самое, безрезультатно.Может что то другое сделать нужно?)
Страница тоже теперь в utf-8,была в latin1.Но все безрезультатно.
mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'");
я еще эту строчку добавил, все тоже самое, безрезультатно.Может что то другое сделать нужно?)
Страница тоже теперь в utf-8,была в latin1.Но все безрезультатно.
Спустя 2 часа, 20 минут, 26 секунд (23.01.2011 - 22:39) mixer написал(а):
Помогите кто знает что не так с кодировкой(
Если в консоли ввести
то там везде utf-8, страница в utf-8
в скрипте добавил эти строки
Но все не так(Вместо русского Евгений, ромбики,цифры какие-то, ужас(
Если в консоли ввести
show variables like ‘char%’
то там везде utf-8, страница в utf-8
в скрипте добавил эти строки
mysql_query ("SET CHARACTER SET 'utf8'", $link);
mysql_query ("set character_set_client='utf8'");
mysql_query ("set character_set_results='utf8'");
mysql_query ("set collation_connection='utf8_general_ci'");
mysql_query ("SET NAMES utf8");
setlocale (LC_CTYPE, 'ru_RU.utf8');
Но все не так(Вместо русского Евгений, ромбики,цифры какие-то, ужас(
Спустя 6 минут, 5 секунд (23.01.2011 - 22:45) inpost написал(а):
В документе кодировку пишешь через header, прописываешь в meta, потом открываешь через Дримвейвер - правой кнопкой по центру экрана - свойства страницы - кодировки - ЮТФ-8 - RELOAD & ok.
Спустя 14 минут, 22 секунды (23.01.2011 - 23:00) mixer написал(а):
Спасибо всем, дело было в кодировке, без вашей помощи еще очень долго бы сидел:)СПАСИБО:)