Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Искажение кодировки при выводе в HTML

Сообщения:  [1-10]    [11-20]  [21-22] 

 
 автор: Сквиртел13   (01.06.2006 в 14:54)   письмо автору
 
   для: Trianon   (31.05.2006 в 21:03)
 

Спасибо за пример. Я сейчас его попробую.

   
 
 автор: noob   (31.05.2006 в 22:14)   письмо автору
 
   для: Trianon   (31.05.2006 в 22:09)
 

а никто не спорит что у тебя он рабочий) проблема как раз в том что у нас(почему то мне кажется что у сквиртел13 то же самое будет) не работает). и мы не знаем че делать.. :(

   
 
 автор: Trianon   (31.05.2006 в 22:09)   письмо автору
 
   для: noob   (31.05.2006 в 21:43)
 

Насчет mysql_query() - спасибо, я исправил. Там было штук пять таких.
А что касается русского, то виноват не скрипт . Все настройки соединения выполняются в конфиг-файле:
У меня там ничего необычного нет. Только
mysql_connect($server, $user, $password);
mysql_select_db($database);
Естественно с проверкой ошибок.
Даже пресловутые
// mysql_query ("set character_set_client='cp1251'");
// mysql_query ("set character_set_results='cp1251'");
// mysql_query ("set collation_connection='cp1251_general_ci'");
и то закомментарены.
Единственное, что, вероятно, играет роль, так это то, что $user у меня не равно 'root'
Рутовый пользователь в некоторых версиях MySQL требует настройки кодовой таблицы.
Скрипт абсолютно рабочий, я проверил все ветки.

   
 
 автор: noob   (31.05.2006 в 21:43)   письмо автору
 
   для: Trianon   (31.05.2006 в 21:03)
 

в 44 строке помоему ошибка.
вместо

exit("Error in $sql : <br>". mysql_query());

надо

exit("Error in $sql : <br>". mysql_error());

но это не важно конечно.... важно следующее.
С английскими буквами скрипт работает отлично. Но если вводить русские слова, то ошибка опять:

Error in INSERT INTO adr (name,msg) VALUES ('sdf','фыва') :
Data too long for column 'msg' at row 1

   
 
 автор: Trianon   (31.05.2006 в 21:03)   письмо автору
 
   для: Сквиртел13   (31.05.2006 в 19:02)
 

Вот тот минимум, который я смог придумать.

<?
include 'config.inc.php';
    
$self $_SERVER['PHP_SELF'];
    
$table 'adr';  // имя таблицы
    
if (0) {}
    else if(isset(
$_REQUEST['update']) ) // если запрос на обновление записи
    
{
        
$name=$_REQUEST['name'];
        
$msg=$_REQUEST['msg'];
        if(
get_magic_quotes_gpc())
        {
            
$name stripslashes($name);
            
$msg  stripslashes($msg);
        }

        
$id intval($_REQUEST['update']);

        
$name mysql_escape_string($name);
        
$msg mysql_escape_string($msg);

        
$sql "UPDATE $table SET name='$name', msg = '$msg' WHERE id = $id";
        if(!(
$res mysql_query($sql)))
            exit(
"Error in $sql : <br>"mysql_error());
        if(!
mysql_affected_rows())
            exit(
"No record (id = $id)");

        echo 
"Record $id succesfully updated<br>\r\n";
    }
    else if(isset(
$_REQUEST['insert']) ) // если запрос на добавление записи
    
{
        
$name=$_REQUEST['name'];
        
$msg=$_REQUEST['msg'];
        if(
get_magic_quotes_gpc())
        {
            
$name stripslashes($name);
            
$msg  stripslashes($msg);
        }

        
$name mysql_escape_string($name);
        
$msg mysql_escape_string($msg);

        
$sql "INSERT INTO $table (name,msg) VALUES ('$name','$msg')";
        if(!(
$res mysql_query($sql)))
            exit(
"Error in $sql : <br>"mysql_error());
        
$id mysql_insert_id();
        echo 
"Record succesfully inserted with id = $id<br>\r\n";
    }
    else if(isset(
$_REQUEST['delete']) ) // если запрос на удаление записей
    
{
        
$del $_REQUEST['delete'];
        if(
is_array($del))
           foreach(
$del as $k => $v$del[$k] = intval($v);
        else
           
$del = array(intval($del));
        
$del implode(',',$del);
        
$sql "DELETE FROM $table WHERE id IN ($del)";
        if(!(
$res mysql_query($sql)))
            exit(
"Error in $sql : <br>"mysql_error());
        
$num mysql_affected_rows();
        echo 
"$num record(s) deleted: $del<br>\r\n";
    }else if(isset(
$_REQUEST['edit']) ) // если запрос на редактирование строки
    
{
        
$id intval($_REQUEST['edit']);
        
$sql "SELECT * FROM $table WHERE id = $id";
        if(!(
$res mysql_query($sql)))
            exit(
"Error in $sql : <br>"mysql_error());
        if(!(
$row mysql_fetch_assoc($res)))
            exit(
"No record (id = $id)");
        { 
// формируем запрос на обновление записи
           
?>
              <table border=1><form action=<?=$self?> method=post>
              <tr><td> id </td>
              <input type=hidden name=update value=<?= $row['id']?> >
              <td><?= $row['id']?></td></tr>
              <tr><td> Name </td><td>
              <input size=5 name=name value=<?=
                  
'"'.htmlspecialchars($row['name']).'"';?> ></td></tr>
              <tr><td> Message </td><td>
              <input size=60 name=msg value=<?=
                  
'"'.htmlspecialchars($row['msg']).'"';?> ></td></tr>
              <tr><td> </td><td>
              <input type=submit value=Update></td></tr>
              </form></table>
           <?
           
exit();
        }
    }

    
//---- вывод таблицы ---- общая часть
    
{
        
$sql "SELECT * FROM $table";
        if(!(
$res mysql_query($sql)))
            exit(
"Error in $sql : <br>"mysql_error());
        {  
?>
              <table border=1><form method=post><tr>
              <td>  </td>
              <td> id </td>
              <td> Name </td>
              <td> Message </td>
              </tr>
           <?
        
}
        while(
$row mysql_fetch_assoc($res))
        {
           
?>
              <tr>
              <td>
                <input type=checkbox name=delete[] value=<?= $row['id']?> >
              </td>
              <td><a href=?edit=<?= $row['id']?> alt=edit ><?= $row['id']?> </a>
              </td>
              <td><?=
                  
'"'.htmlspecialchars($row['name']).'"';?> </td>
              <td><?=
                  
'"'.htmlspecialchars($row['msg']).'"';?> </td>
              </tr>
            <?
        
}
        {
            
?>
              <tr><td colspan=4>
              <input type =submit value='delete selected rows'>
              </td></tr>
              </form></table> <hr>
              Insert new record there:<br>
              <table border=1><form method=post>
              <tr><td> Name </td><td>
              <input size=5 name=name ></td></tr>
              <tr><td> Message </td><td>
              <input size=60 name=msg ></td></tr>
              <tr><td>  </td><td>
              <input type=submit name=insert value=insert ></td></tr>
              </form></table>

            <?
        
}
    }


?>


Таблица создается так:

CREATE TABLE adr (
  id int(11) NOT NULL auto_increment,
  name varchar(20) default NULL,
  msg tinytext,
  PRIMARY KEY  (id)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

   
 
 автор: Сквиртел13   (31.05.2006 в 19:07)   письмо автору
 
   для: noob   (31.05.2006 в 19:06)
 

Понятно)) Давай так как найдешь ответ сообщи мне я тоже когда найду обязательно сообщу!)))

   
 
 автор: noob   (31.05.2006 в 19:06)   письмо автору
 
   для: Сквиртел13   (31.05.2006 в 18:52)
 

просто у меня такая же хрень =)
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=18286&page=1

   
 
 автор: Сквиртел13   (31.05.2006 в 19:02)   письмо автору
 
   для: Trianon   (31.05.2006 в 18:58)
 

Любая таблица с любыми данными. Мне просто нужно понять сам смысл как это делается, а дальше я сама.

   
 
 автор: Trianon   (31.05.2006 в 18:58)   письмо автору
 
   для: Сквиртел13   (31.05.2006 в 18:55)
 

какая у Вас структура таблицы, и что туда нужно вводить?
проще на примере показать.

   
 
 автор: Сквиртел13   (31.05.2006 в 18:55)   письмо автору
 
   для: Trianon   (31.05.2006 в 18:49)
 

А как вводить данные со своей html странички.
А на счет phpMyAdmin я помню что Вы советовали, но мне надо научиться сначало так делать.

   

Сообщения:  [1-10]    [11-20]  [21-22] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования