PHP.SU

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

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

> Найдено сообщений: 6
Tummy Отправлено: 15 Мая, 2013 - 07:10:45 • Тема: Одна кодировка всегда неправильная • Форум: Вопросы новичков

Ответов: 4
Просмотров: 241
В своем "блокноте" настрой кодировку UTF. Далее в .htaccess напиши
CODE (htmlphp):
скопировать код в буфер обмена
  1. AddDefaultCharset UTF-8

В классе/скрипте подключения к БД, после подключения
При создании БД в phpmyadmin, принудительно выбирай utf general ci
Все заработает как нужно.

Можешь еще добавить мета
CODE (htmlphp):
скопировать код в буфер обмена
  1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Tummy Отправлено: 15 Мая, 2013 - 06:55:46 • Тема: Нужен совет по добавлению данных из <select> в БД • Форум: Вопросы новичков

Ответов: 7
Просмотров: 322
PHP:
скопировать код в буфер обмена
  1. if ($_POST['month'] === 2 OR $_POST['month'] === 4 OR $_POST['month'] === 6 OR $_POST['month'] === 9 OR $_POST['month'] === 11) {
  2.     if ($_POST['month'] === 2) {
  3.         if ($day > 29) $error_date = "Введите корректную дату рождения";
  4.         }
  5.     if ($day > 30) $error_date = "Введите корректную дату рождения";
  6.     }
Сократил =)

Проверка адреса почты, можно использовать стандартные средства php
PHP:
скопировать код в буфер обмена
  1. filter_var('bob@example.com', FILTER_VALIDATE_EMAIL)

А можно кастомную функцию, которых полно на интернет.
Tummy Отправлено: 15 Мая, 2013 - 06:44:07 • Тема: Пара непростых вопросов • Форум: Вопросы новичков

Ответов: 8
Просмотров: 266
А зачем вообще поля создавать для случайной сортировки? В запросе введи сортировку случайную. Если конечно записей в базе не миллион )
Tummy Отправлено: 15 Мая, 2013 - 06:34:14 • Тема: Обработка формы без нажатия на submit? • Форум: Вопросы новичков

Ответов: 5
Просмотров: 304
Koc пишет:
Всем доброго времени суток,

Подскажите как можно реализовать такую возможность.
Есть таблица, по умолчанию показывает все записи..
в её шапке есть фильтр (выпадающий список select)..

При выборе любого значения из списка, таблица сразу показывает нужные данные..

Например:
в таблице показывается список запчастей, при выборе марки авто из фильтра, показывается только список запчастей для этого авто.

Заранее спасибо!
Попробуй. Настрой под себя.
CODE (html):
скопировать код в буфер обмена
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2.    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head><title>Селектор выбирает инпуты</title>
  5. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
  6. <script type="text/javascript">
  7. $(document).ready(function() {
  8.  $('#myForm').change(function(){
  9. var viborElement = $('#myForm :selected').attr('id');
  10. if(viborElement=='vibor0'){
  11.  $('#inputblock span').css('display','block'); 
  12.  }
  13.  
  14. if(viborElement=='vibor1'){
  15. $('#inputblock span').css('display','none');
  16.  $('#i1,#i2').css('display','block');  
  17.  }
  18.  
  19. if(viborElement=='vibor2'){
  20. $('#inputblock span').css('display','none');
  21.  $('#i3,#i4,#i5,#i6,#i7').css('display','block');      
  22.  }
  23.  
  24. if(viborElement=='vibor3'){
  25. $('#inputblock span').css('display','none');
  26.  $('#i1,#i2,#i4,#i8').css('display','block');  
  27.  }
  28.  });    
  29. }); /*end ready*/
  30. </script>
  31. <style>
  32. #footer {
  33.         background:#CCCCCC;
  34.         height:200px;
  35. }
  36. </style>
  37. </head>
  38.  
  39. <body style="margin:200px">
  40. <form id="myForm">
  41. <select name="vibor" id="vibor">
  42. <option id="vibor0">Видны все поля </option>
  43. <option id="vibor1">Видны поля: 1, 2</option>
  44. <option id="vibor2">Видны поля: 3, 4, 5, 6, 7</option>
  45. <option id="vibor3">Видны поля: 1, 2, 4, 8</option>
  46. </form>
  47. </select><br/><br/><br/>
  48. <div id="inputblock">
  49. <span id="i1">1: <input type="text" /><br/><br/></span>
  50. <span id="i2">2: <input type="text" /><br/><br/></span>
  51. <span id="i3">3: <input type="text" /><br/><br/></span>
  52. <span id="i4">4: <input type="text" /><br/><br/></span>
  53. <span id="i5">5: <input type="text" /><br/><br/></span>
  54. <span id="i6">6: <input type="text" /><br/><br/></span>
  55. <span id="i7">7: <input type="text" /><br/><br/></span>
  56. <span id="i8">8: <input type="text" /><br/><br/></span>
  57. </div>
  58.  
  59. <div id=footer></div>
  60. </body>
  61. </html>
Tummy Отправлено: 12 Мая, 2013 - 08:50:25 • Тема: Один материал, несколько категорий. • Форум: Вопросы новичков

Ответов: 8
Просмотров: 836
Вопрос снимаю. Если кому-то понадобиться сделать одну статью/материал/товар в несколько категорий, вот код. доделаете редактирование, выборку и удаление сами.
Писал на "тяп-ляп", поэтому так "сыро".
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $dbhost = "localhost";
  3. $dbuser = "root";
  4. $dbpwd = "mysqlgfhjkm";
  5. $dbname = "blog";
  6.  
  7. if (!mysql_connect($dbhost, $dbuser, $dbpwd)) {
  8.         echo "ERROR ".mysql_errno()." ".mysql_error()."\n";
  9.         exit;
  10.         }
  11. if (mysql_select_db($dbname)) {
  12.         mysql_query("SET NAMES 'utf8'");
  13.         }
  14. if (isset($_POST['category']) AND !empty($_POST['category'])) {
  15.         $query = "INSERT INTO `categories` (`name`)
  16.                 VALUES ('$_POST[category]');";
  17.         $result = mysql_query($query);
  18.         if ($result)
  19.                 echo "Категория добавлена!";
  20.         else echo "Ошибка добавления категории";
  21.         }
  22.  
  23. if (isset($_POST['title']) AND isset($_POST['date']) AND isset($_POST['file']) AND isset($_POST['keywords']) AND isset($_POST['description']) AND isset($_POST['story']) AND isset($_POST['categories'])
  24. AND
  25. !empty($_POST['title']) AND !empty($_POST['date']) AND !empty($_POST['file']) AND !empty($_POST['keywords']) AND !empty($_POST['description']) AND !empty($_POST['story']) AND !empty($_POST['categories'])) {
  26.         extract($_POST);
  27.         $query = "INSERT INTO `posts` (`title`, `date`, `img`, `keywords`, `description`, `story`)
  28.         VALUES ('$title', '$date', '$file', '$keywords', '$description', '$story')";
  29.         $result = mysql_query($query);
  30.         if (!$result) {
  31.                 echo "<h1>данные в базу не добавились</h1>";
  32.                 }
  33.         else {
  34.                 $id = mysql_insert_id();
  35.                 foreach ($_POST['categories'] as $value)
  36.                         {
  37.                         $query = "INSERT INTO `connections` (`pid`, `cid`)
  38.                         VALUES ('$id', '$value')";
  39.                         $result = mysql_query($query);
  40.                         }
  41.                 echo "материал добавлен в таблицу POSTS.<br>";
  42.                 }
  43.         }
  44. else {
  45.         echo "Заполните все поля";
  46.         }
  47. ?>
  48. <form action="index.php" method="POST">
  49. add category: <input type="text" name="category">
  50. <input type="submit" value="add">
  51. </form>
  52.  
  53. <form action="index.php" method="POST">
  54. add post:<br>
  55. title: <input type="text" name="title"><br>
  56. date: <input type="hidden" name="date" value="<?PHP echo time();?>"><br>
  57. image: <input type="text" name="file"><br>
  58. keywords: <input type="text" name="keywords"><br>
  59. description: <input type="text" name="description"><br>
  60. story: <textarea name="story"></textarea><br>
  61. <?PHP
  62. $query = "SELECT `id`, `name` FROM `categories` ORDER BY `name` ASC";
  63. $result = mysql_query($query);
  64. $num = mysql_num_rows($result);
  65. if ($num >= 1) {
  66.         echo "Список категорий: <br>";
  67.         for ($i = 1; $i <= $num; $i++)
  68.                 {
  69.                 $data = mysql_fetch_array($result);
  70.                 echo "<input type=\"checkbox\" name=\"categories[]\" value=\"".$data['id']."\"> ".$data['name']."<br>";
  71.                 }
  72.         }
  73. ?>
  74. <input type="submit" value="add">
  75. </form>
  76. <?PHP
  77. $query = "SELECT `id`, `title` FROM `posts` ORDER BY `id` ASC";
  78. $result = mysql_query($query);
  79. $num = mysql_num_rows($result);
  80. if ($num >= 1) {
  81.         echo "<hr>Список статей: <br>";
  82.         for ($i = 1; $i <= $num; $i++)
  83.                 {
  84.                 $data = mysql_fetch_array($result);
  85.                 echo $data['0'].", ".$data['1']."<br>";
  86.                 }
  87.         }
  88. ?>

CODE (SQL):
скопировать код в буфер обмена
  1. CREATE DATABASE `blog` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
  2. USE `blog`;
  3.  
  4. CREATE TABLE IF NOT EXISTS `categories` (
  5.   `id` int(4) NOT NULL AUTO_INCREMENT,
  6.   `name` varchar(255) NOT NULL,
  7.   PRIMARY KEY  (`id`)
  8. ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
  9.  
  10. CREATE TABLE IF NOT EXISTS `comments` (
  11.   `id` int(6) NOT NULL AUTO_INCREMENT,
  12.   `pid` int(6) NOT NULL,
  13.   `text` text NOT NULL,
  14.   `date` varchar(255) NOT NULL,
  15.   `author` varchar(255) NOT NULL,
  16.   `email` varchar(255) NOT NULL,
  17.   PRIMARY KEY  (`id`)
  18. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
  19.  
  20. CREATE TABLE IF NOT EXISTS `connections` (
  21.   `pid` int(6) NOT NULL,
  22.   `cid` int(6) NOT NULL
  23. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  24.  
  25. CREATE TABLE IF NOT EXISTS `posts` (
  26.   `id` int(6) NOT NULL AUTO_INCREMENT,
  27.   `title` varchar(255) NOT NULL,
  28.   `date` varchar(255) NOT NULL,
  29.   `img` varchar(255) NOT NULL,
  30.   `keywords` text NOT NULL,
  31.   `description` text NOT NULL,
  32.   `story` text NOT NULL,
  33.   PRIMARY KEY  (`id`)
  34. ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Tummy Отправлено: 12 Мая, 2013 - 06:10:08 • Тема: Один материал, несколько категорий. • Форум: Вопросы новичков

Ответов: 8
Просмотров: 836
Привет всем. Захотелось попрактиковаться со связями таблиц. С выборкой из мускула через таблицу связей - все понятно.
Встал вопрос о том, как записывать данные?
Небольшой набросок:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $dbhost = "localhost";
  3. $dbuser = "root";
  4. $dbpwd = "mysql";
  5. $dbname = "blog";
  6.  
  7. if (!mysql_connect($dbhost, $dbuser, $dbpwd)) {
  8.         echo "ERROR ".mysql_errno()." ".mysql_error()."\n";
  9.         exit;
  10.         }
  11. if (mysql_select_db($dbname)) {
  12.         mysql_query("SET NAMES 'utf8'");
  13.         echo "соединение с базой прошло успешно, БД выбрана $dbname";
  14.         }
  15. if (isset($_POST['category']) AND !empty($_POST['category'])) {
  16.         $query = "INSERT INTO `categories` (`name`)
  17.                 VALUES ('$_POST[category]');";
  18.         $result = mysql_query($query);
  19.         if ($result)
  20.                 echo "Категория добавлена!";
  21.         else echo "Ошибка добавления категории";
  22.         }
  23.  
  24. if (isset($_POST)) {
  25.         print_r($_POST);
  26.         }
  27. ?>
  28. <form action="index.php" method="POST">
  29. add category: <input type="text" name="category">
  30. <input type="submit" value="add">
  31. </form>
  32.  
  33. <form action="index.php" method="POST">
  34. add post:<br>
  35. title: <input type="text" name="title"><br>
  36. date: <input type="text" name="date" value="<?PHP echo time();?>" disabled><br>
  37. image: <input type="text" name="file"><br>
  38. keywords: <input type="text" name="keywords"><br>
  39. description: <input type="text" name="description"><br>
  40. story: <textarea name="story"></textarea><br>
  41. <?PHP
  42. $query = "SELECT `id`, `name` FROM `categories` ORDER BY `name` ASC";
  43. $result = mysql_query($query);
  44. $num = mysql_num_rows($result);
  45. if ($num >= 1) {
  46.         echo "Список категорий: <br>";
  47.         for ($i = 1; $i <= $num; $i++)
  48.                 {
  49.                 $data = mysql_fetch_array($result);
  50.                 echo "<input type=\"checkbox\" name=\"categories[]\" value=\"".$data['0']."\"> ".$data['1']."<br>";
  51.                 }
  52.         }
  53. ?>
  54. <input type="submit" value="add">
  55. </form>
  56. <?PHP
  57. $query = "SELECT `id`, `title` FROM `posts` ORDER BY `id` ASC";
  58. $result = mysql_query($query);
  59. $num = mysql_num_rows($result);
  60. if ($num >= 1) {
  61.         echo "<hr>Список статей: <br>";
  62.         for ($i = 1; $i <= $num; $i++)
  63.                 {
  64.                 $data = mysql_fetch_array($result);
  65.                 echo $data['0'].", ".$data['1']."<br>";
  66.                 }
  67.         }
  68. ?>

Первая проблема при создании новой записи, генерируются чекбоксы из таблицы категорий, я выбираю в каких именно категориях будет размещен материал. Затем отправляю и смотрю что отдает форма через print_r. вижу что не получается массив из чекбоксов. В голове уже паутина.
Далее, когда все получится, встает вопрос, как записывать в таблицу связей строки, каждая строка, мной выделенный чекбокс категории, но перед тем как записывать строки в таблицу связей, нужно определить какой ID был выдан БД "новому материалу", то есть делать запрос на выборку добавленного материала?
Может уже есть у кого-то нечто реализованное или хотя бы часть, глянуть глазом. Спасибо!

ЗЫ. Массив из чекбоксов получил, дальше буду копать. По дальнейшим шагам, если есть готовые идеи, можете привести?

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB