PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (2): [1] 2 »

> Найдено сообщений: 24
v.kam Отправлено: 13 Августа, 2013 - 21:55:17 • Тема: Свой просто хост • Форум: Наработки по собственным проектам

Ответов: 3
Просмотров: 1575
Хочу сказать всем большое спасибо за поддержку с этого форума и других...
Теперь после того как мы обзавелись своими DNS серверами работа пойдет быстрее.
Скоро будет доступна и почта на домене )).
Пока работа остановлена собираются средства на покупку блока /24 ip адресов.
Прорвемся. Всем спасибо.
v.kam Отправлено: 09 Августа, 2013 - 21:31:58 • Тема: Свой просто хост • Форум: Наработки по собственным проектам

Ответов: 3
Просмотров: 1575
начал проект под названием "просто хост"
пока очень сырой но уже работает )))
Цель создать полноценный хостинг сайтов стоимостью 60 руб в месяц.
Все вырученные средства пойдут на развитие проекта.
В будущем планирую поднять DNS для управлением зоной домена.
Пока даю только ip адреса.
И сам на ip сижу)))
http://phosts[dot]ru/
v.kam Отправлено: 09 Февраля, 2013 - 12:18:02 • Тема: помогите намисать класс • Форум: Работа с СУБД

Ответов: 8
Просмотров: 1709
Всётаки написал класс под свои нужды.
PHP:
скопировать код в буфер обмена
  1. <?
  2. class ClassMysql
  3. {
  4.         var $config = "";
  5.         var $request = "";
  6.         var $result = "";
  7.         var $link = "";
  8.         var $fetch_array = array();
  9.         var $prefix = "";
  10.         public function MysqlLogError($log)
  11.         {
  12.                 $file = fopen('MysqlLogError.txt', 'a');
  13.                 fwrite($file, '------------------------------ ' . date("Y-m-d H:i:s") . ' ------------------------------' . "\n" . $log . "\n");
  14.                 fclose($file);
  15.         }
  16.         function ConfigWrite($conf_value = array())
  17.         {
  18.                 if(count($conf_value) < 6)
  19.                 {
  20.                         $this->MysqlLogError("invalid number of array elements");
  21.                         return false;
  22.                 }
  23.                 else
  24.                 {
  25.                         $conf_write = "";
  26.                         $conf_var = array("host", "username", "password", "dbname", "charset", "prefix");
  27.                         $conf_array = array_combine($conf_var, $conf_value);
  28.                         foreach($conf_array as $key => $value)
  29.                         {
  30.                                 $conf_write .= "\$conf['$key'] = '$value';\n";
  31.                         }
  32.                         $config = fopen('config.php', 'w');
  33.                         if(fwrite($config, "<?\n$conf_write?>"))
  34.                         {
  35.                                 return true;
  36.                         }
  37.                         else
  38.                         {
  39.                                 $this->MysqlLogError("error writing configuration file");
  40.                                 return false;
  41.                         }
  42.                 }
  43.         }
  44.         function SetConfig($config = "")
  45.         {
  46.                 if($config != "")
  47.                 {
  48.                         $this->config = $config;
  49.                 }
  50.                 if(file_exists($this->config))
  51.                 {
  52.                         include($this->config);
  53.                         $this->prefix = $conf['prefix'];
  54.                         if($link = mysql_connect($conf['host'], $conf['username'], $conf['password']))
  55.                         {
  56.                                 if(mysql_select_db($conf['dbname'], $link))
  57.                                 {
  58.                                         if(mysql_client_encoding($link) != $conf['charset'])
  59.                                         {
  60.                                                 mysql_set_charset($conf['charset']);
  61.                                         }
  62.                                         $this->link = $link;
  63.                                 }
  64.                                 else
  65.                                 {
  66.                                         $this->MysqlLogError(mysql_error($this->link));
  67.                                         return false;
  68.                                 }
  69.                         }
  70.                         else
  71.                         {
  72.                                 $this->MysqlLogError(mysql_error($this->link));
  73.                                 return false;
  74.                         }
  75.                 }
  76.                 else
  77.                 {
  78.                         $this->MysqlLogError("Can't to open file " . $this->config . " in directory");
  79.                         return false;
  80.                 }
  81.         }
  82.         function MysqlPars($str = array())
  83.         {
  84.                 $str = array_values($str);
  85.                 foreach($str as $value)
  86.                 {
  87.                         if (is_numeric($value))
  88.                         {
  89.                                 $format_str[] = stripslashes($value);
  90.                         }
  91.                         else
  92.                         {
  93.                                 $format_str[] = "'" . mysql_real_escape_string($value, $this->link) . "'";
  94.                         }
  95.                 }
  96.                 return $format_str;
  97.         }
  98.         function MysqlQuery($request = "")
  99.         {
  100.                 if($request != "")
  101.                 {
  102.                         $str_search = array(
  103.                                 "#\FROM (.+?)#is",
  104.                                 "#\TABLE (.+?)#is"
  105.                         );
  106.                         $str_replace = array(
  107.                                 "FROM " . $this->MysqlPrefix("\\1"),
  108.                                 "TABLE " . $this->MysqlPrefix("\\1")
  109.                         );
  110.                         $request = preg_replace($str_search, $str_replace, $request);
  111.                         $this->request = $request;
  112.                 }
  113.                 if($this->result = mysql_query($this->request, $this->link))
  114.                 {
  115.                         return $this->result;
  116.                 }
  117.                 else
  118.                 {
  119.                         $this->MysqlLogError(mysql_error($this->link));
  120.                         echo '<p>invalid query</p><textarea style="width: 300px; height: 200px;">' . $this->request . '</textarea>';
  121.                         return false;
  122.                 }
  123.         }
  124.         function MysqlPrefix($table)
  125.         {
  126.                 return $this->prefix . $table;
  127.         }
  128.         function MysqlFetchArray()
  129.         {
  130.                 $this->fetch_array = mysql_fetch_array($this->result, MYSQL_ASSOC);
  131.                 return $this->fetch_array;
  132.         }
  133.         function MysqlNumRows()
  134.         {
  135.                 return mysql_num_rows($this->result);
  136.         }
  137.         function MysqlInsertInto($table, $insert = array())
  138.         {
  139.                 $table = $this->MysqlPrefix($table);
  140.                 $fnames = implode("`, `", array_keys($insert));
  141.                 $fvalues = implode(", ", $this->MysqlPars($insert));
  142.                 $this->request = sprintf("INSERT INTO `$table` (`$fnames`) VALUES($fvalues)");
  143.                 $this->MysqlQuery();
  144.         }
  145.         function MysqlDelete($table, $where = array())
  146.         {
  147.                 $table = $this->MysqlPrefix($table);
  148.                 $value = $this->MysqlPars($where);
  149.                 $where_array = array_combine(array_keys($where), $value);
  150.                 foreach($where_array as $key => $value)
  151.                 {
  152.                         $str_format[] = "`$key` = $value";
  153.                 }
  154.                 $str_format = implode(" AND ", $str_format);
  155.                 $this->request = sprintf("DELETE FROM `$table` WHERE $str_format");
  156.                 $this->MysqlQuery();
  157.         }
  158.         function MysqlUpdate($table, $update = array(), $where = array())
  159.         {
  160.                 $table = $this->MysqlPrefix($table);
  161.                 $update_value = $this->MysqlPars($update);
  162.                 $update_array = array_combine(array_keys($update), $update_value);
  163.                 foreach($update_array as $key => $value)
  164.                 {
  165.                         $update_format[] = "`$key` = $value";
  166.                 }
  167.                 $update_format = $update_format = implode(", ", $update_format);
  168.                 if($where == null)
  169.                 {
  170.                         $where_format = "";
  171.                 }
  172.                 else
  173.                 {
  174.                         $where_value = $this->MysqlPars($where);
  175.                         $where_array = array_combine(array_keys($where), $where_value);
  176.                         foreach($where_array as $key => $value)
  177.                         {
  178.                                 $where_format[] = "`$key` = $value";
  179.                         }
  180.                         $where_format = ' WHERE ' . implode(" AND ", $where_format);
  181.                 }
  182.                 $this->request = sprintf("UPDATE `$table` SET $update_format $where_format");
  183.                 $this->MysqlQuery();
  184.         }
  185.         function MysqlClose()
  186.         {
  187.                 mysql_close($this->link);
  188.         }
  189. }
  190. $ClassMysql = new ClassMysql();
  191. ?>


использование:
PHP:
скопировать код в буфер обмена
  1.  
  2. //запись файла конфигурации
  3. $ClassMysql->ConfigWrite(array(
  4.                         'localhost', //адрес сервера
  5.                         'user', //пользователь
  6.                         'password', //пароль
  7.                         'dbname', //имя базы
  8.                         'utf8', //кодировка
  9.                         'prefix_' //префикс таблиц
  10.                         ));
  11. //подключение файла конфигурации и установка соединение
  12. $ClassMysql->SetConfig($root_path . 'config.php');
  13. //добавление записи
  14. $ClassMysql->MysqlInsertInto('table_name', array(
  15.                         'field_name1' => 'value1',
  16.                         'field_neme2' => 'value2'
  17.                         ));
  18. //обновление записи
  19. //второй параметр можно убрать (ну мало ли) ошибок не будет
  20. $ClassMysql->MysqlUpdate('table_name',
  21.                         array(
  22.                                 'field_name1' => 'value1',
  23.                                 'field_neme2' => 'value2'                                                              
  24.                                 ),
  25.                         array(
  26.                                 'where1' =>     'criterion1'
  27.                                 'where2' =>     'criterion2'
  28.                                 )
  29.                         );
  30. //удаление записи
  31. $ClassMysql->MysqlDelete('table_name', array(
  32.                         'where1' =>     'criterion1'
  33.                         'where2' =>     'criterion2'
  34.                         ));
  35. //вывод из базы
  36. $ClassMysql->MysqlQuery("SELECT * FROM table_name");
  37. while($row = $ClassMysql->MysqlFetchArray())
  38. {
  39.         echo $row['field_name1'];
  40. }
  41. //закрываем сосединение
  42. $ClassMysql->MysqlClose();
  43.  
v.kam Отправлено: 13 Января, 2013 - 11:20:40 • Тема: помогите намисать класс • Форум: Работа с СУБД

Ответов: 8
Просмотров: 1709
написал метод удаления записи(ей).
PHP:
скопировать код в буфер обмена
  1.         public function MysqlDelete($table, $where = array())
  2.         {
  3.                 foreach($where as $key => $value)
  4.                 {
  5.                         $ar[] = "`$key` = '$value'";
  6.                 }
  7.                 $a = implode(" AND ", array_values($ar));
  8.                 $this->request = sprintf("DELETE FROM `$table` WHERE  $a");
  9.                 $this->MysqlQuery();
  10.         }

использование
PHP:
скопировать код в буфер обмена
  1. $db->MysqlDelete('table_name', array(
  2.         'field1' => 'parameter1',
  3.         'field2' => 'parameter2'
  4.         ));
v.kam Отправлено: 11 Января, 2013 - 22:53:42 • Тема: помогите намисать класс • Форум: Работа с СУБД

Ответов: 8
Просмотров: 1709
spsu СПАСИБО!!! очень благодарен.
v.kam Отправлено: 11 Января, 2013 - 21:55:42 • Тема: помогите намисать класс • Форум: Работа с СУБД

Ответов: 8
Просмотров: 1709
вот начал писать класс для работы с mysql в небольших проектах.

листинг файла class_mysql.php
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. class db
  4. {
  5.         var $config = array();
  6.         var $request;
  7.         var $result;
  8.         var $link;
  9.         private function MysqlLogError($log) //ведение лога ошибок
  10.         {
  11.                 $file = fopen('MysqlLogError.txt', 'a');
  12.                 fwrite($file, '------------------------------ ' . date("Y-m-d H:i:s") . ' ------------------------------' . "\n" . $log . "\n");
  13.                 fclose($file);
  14.         }
  15.         private function SetConfig()
  16.         {
  17.                 if(file_exists($this->config['file']))
  18.                 {
  19.                         return $this->config['file'];
  20.                 }
  21.                 else
  22.                 {
  23.                         $this->MysqlLogError("Can't to open file " . $this->config['file'] . " in directory");
  24.                         exit;
  25.                 }
  26.         }
  27.         private function MysqlQuery()
  28.         {
  29.                 include($this->SetConfig());
  30.                 if($this->link = @mysql_connect(@$sql_host, @$sql_user, @$sql_pass))
  31.                 {
  32.                         if(@mysql_select_db($sql_name, $this->link))
  33.                         {
  34.                                 if(mysql_client_encoding($this->link) != $this->config['charset'])
  35.                                 {
  36.                                         mysql_set_charset($this->config['charset']);
  37.                                 }
  38.                                 if($this->result = mysql_query($this->request, $this->link))
  39.                                 {
  40.                                         return;
  41.                                 }
  42.                                 else
  43.                                 {
  44.                                         $this->MysqlLogError(mysql_error($this->link));
  45.                                         exit;
  46.                                 }
  47.                         }
  48.                         else
  49.                         {
  50.                                 $this->MysqlLogError(mysql_error($this->link));
  51.                                 exit;
  52.                         }
  53.                 }
  54.                 else
  55.                 {
  56.                         $this->MysqlLogError(mysql_error($this->link));
  57.                         exit;
  58.                 }
  59.         }
  60.         function MysqlFetchArray()
  61.         {
  62.                 $this->MysqlQuery();
  63.                 while($row = mysql_fetch_array($this->result))
  64.                 {
  65.                         $data[] = $row;
  66.                 }
  67.                 mysql_close($this->link);
  68.                 return $data;
  69.         }
  70.         function MysqlNumRows()
  71.         {
  72.                 $this->MysqlQuery();
  73.                 mysql_close($this->link);
  74.                 return mysql_num_rows($this->result);
  75.         }
  76.         function MysqlInsertInto($table, $field = array())
  77.         {
  78.                 $sql = array('field' => null, 'value' => null);
  79.                 foreach($field as $key => $value)
  80.                 {
  81.                         $sql['field'] .= $key . ', ';
  82.                         $sql['value'] .= "'" . $value . "', ";
  83.                 }
  84.                 $this->request = 'INSERT INTO ' . $table . ' (' . substr($sql['field'], 0, -2) . ') VALUE(' . substr($sql['value'], 0, -2) .')';
  85.                 $this->MysqlQuery();
  86.                 mysql_close($this->link);
  87.         }
  88. }
  89. $db = new db;
  90. ?>
  91.  


листинг файла config.php
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. $sql_host = 'localhost';
  4. $sql_user = 'dbuser';
  5. $sql_pass = 'dbpass';
  6. $sql_name = 'dbname';
  7. ?>
  8.  

использование
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. //подключаем файл
  4. include('class_mysql.php');
  5.  
  6. //устанавливаем файл конфигурации, и кодировку
  7. $db->config = array('file' => 'config.php', 'charset' => 'utf8');
  8.  
  9. //вывод из базы циклом
  10. $db->request = "SELECT * FROM table_name";
  11. foreach($db->MysqlFetchArray() as $key => $value)
  12. {
  13.         echo $value['field_name'] . '<br>';
  14. }
  15.  
  16. //вывод кокичества записей
  17. $db->request = "SELECT * FROM table_name";
  18. echo $db->MysqlNumRows();
  19.  
  20.  
  21. //добовление записи
  22. $db->MysqlInsertInto('table_name', array(
  23.         'field_name1' => 'value1',
  24.         'field_name2' => 'value2',
  25.         'field_name3' => 'value3',
  26.         ));
  27. ?>
  28.  

как видите пока только четыре основных метода.
нужно добавить обновление записей.
какие будут идеи?
v.kam Отправлено: 04 Сентября, 2012 - 23:01:08 • Тема: Метод GET и его вывод в DIV без перезагрузки страницы • Форум: Вопросы новичков

Ответов: 4
Просмотров: 201
PHP:
скопировать код в буфер обмена
  1.  
  2. $result = mysql_query("SELECT * FROM table_name WHERE id = '" . $_GET['id'] . "'");
  3. $db = mysql_fetch_assoc($result);
  4. echo '<div>' . $db['id'] . '</div>';
  5.  
v.kam Отправлено: 28 Июля, 2012 - 19:54:01 • Тема: Удаление строки из файла • Форум: Вопросы новичков

Ответов: 38
Просмотров: 1359
PHP:
скопировать код в буфер обмена
  1.  
  2. $file_name = 'имя файла';
  3. $id = 'номер строки';
  4. $file=file("$file");
  5. for($i=0;$i<sizeof($file);$i++)
  6. if($i==$id) unset($file[$i]);
  7. $fp=fopen("$file_name","w");
  8. if (fputs($fp,implode("" ,$file))) {
  9.         fclose($fp);
  10.         echo 'строка удалена!';
  11. }
  12.  
v.kam Отправлено: 23 Июля, 2012 - 19:59:25 • Тема: Проблемы с кодировкой, прошу помощи у знающих людей) • Форум: Администрирование БД

Ответов: 5
Просмотров: 2851
после выбора бд
PHP:
скопировать код в буфер обмена
  1. mysql_query("SET NAMES 'utf8'");
  2. mysql_query("SET collation_connection='utf8_general_ci'");
  3. mysql_query("SET collation_server='utf8_general_ci'");
  4. mysql_query("SET character_set_client='utf8'");
  5. mysql_query("SET character_set_connection='utf8'");
  6. mysql_query("SET character_set_results='utf8'");
  7. mysql_query("SET character_set_server='utf8'");

ну и есно кодировка таблиц
CODE (SQL):
скопировать код в буфер обмена
  1. CHARACTER SET utf8 COLLATE utf8_general_ci

а так же указать кодировку html документа
CODE (html):
скопировать код в буфер обмена
  1. <meta content="text/html; charset=utf-8" http-equiv="content-type">

ну и все файлы сохранить в UTF-8
v.kam Отправлено: 22 Июля, 2012 - 18:30:57 • Тема: Вывод всех изображений, через 1 тег. • Форум: Вопросы новичков

Ответов: 8
Просмотров: 320
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. $dir = "image/";
  4. if(is_dir($dir)) {
  5.         print '<table>';
  6.         $files = scandir($dir);
  7.         array_shift($files);
  8.         for($i=0; $i<sizeof($files); $i++) echo '<tr><td><img src="'.$dir.$files[$i].'"></td></tr>';
  9.         print '</table>';
  10. }
  11. else {
  12.         echo $dir.'такой директории нет;<br>';
  13. }
  14. ?>
  15.  
v.kam Отправлено: 20 Июля, 2012 - 22:55:08 • Тема: Работа с Mysql • Форум: Вопросы новичков

Ответов: 28
Просмотров: 905
щас напишу пример
v.kam Отправлено: 20 Июля, 2012 - 22:49:24 • Тема: Работа с Mysql • Форум: Вопросы новичков

Ответов: 28
Просмотров: 905
а тебе приятно каждый раз добавлять в ручную???
вот у тебя 20 полей которые тебе надо записать в таблицу, вот и делай запись для всех полей. потом напиши скрипт для редактирования, и остальное заполнишь при редактировании, через те-же поля, а не ковырянием в phpmyadmin
v.kam Отправлено: 20 Июля, 2012 - 22:39:24 • Тема: Работа с Mysql • Форум: Вопросы новичков

Ответов: 28
Просмотров: 905
PATCH пишет:
при создании сайта вообще нельзя никакие ошибки отрубать, обычно создают конфиг файл в котором есть error_repoting(E_ALL) - для отладки или
error_repoting(0); что бы никакие ошибки не выдавало.

отладкой я занимаюсь на стадии разработки...
что ты выведешь в случае ошибки???
PATCH пишет:
данное условие может разделено быть на 2 таблицы или же в 1 таблицы и не факт что id,user,pass,email будут идти первыми.

там так то скрин прилагался ))).
v.kam Отправлено: 20 Июля, 2012 - 22:24:52 • Тема: Работа с Mysql • Форум: Вопросы новичков

Ответов: 28
Просмотров: 905
PATCH это черная магия пхп
PATCH пишет:
отрубать вывод ошибки при sql запросе?

чтоб при ошибке клиенту не выводились пугающие, непонятные ему слова )))
это мы поймём что такое
Цитата:
Warning: mysql_query() [function.mysql-query]: Can't connect to MySQL server on 'localhost' (10061) in W:\html\mysql\www\index.php on line 2

а клиенту будет приятней вот так:
PHP:
скопировать код в буфер обмена
  1.  
  2. if (@mysql_query(".....  ")) {
  3.         echo 'yes!!!'; //выполняем
  4. }
  5. else {
  6.         echo 'error'; //выводим ошибку
  7. }
  8.  

Страниц (2): [1] 2 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB