Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вопросы по MySQL

 PHP.SU

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


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

> Без описания
Felliks
Отправлено: 16 Февраля, 2010 - 15:22:10
Post Id


Новичок


Покинул форум
Сообщений всего: 16
Дата рег-ции: Янв. 2010  


Помог: 0 раз(а)




Помогите разобраться с ключами. Я вот знаю есть первичные, вторичные, внешние, primary и д.р. Но вот зачем они нужны? Как их использовать?
 
 Top
Champion Супермодератор
Отправлено: 16 Февраля, 2010 - 15:46:51
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Первичный - ключ, который уникально определяет запись в таблице. И не повторяется ни в одной строке.
Внешний - столбцы, которые имеют в себе значения первичного ключа другой таблицы. Причем эти значения во внешнем ключе могут повторяться от 0 до много-много раз. Нужен для того, чтоб запись дочерней таблицы ссылалась на запись родительской.
Primary - это первичный.

http://forum.php.su/topic.php?fo...=62&topic=24
 
 Top
Ruskat
Отправлено: 25 Февраля, 2010 - 22:52:06
Post Id



Гость


Покинул форум
Сообщений всего: 70
Дата рег-ции: Март 2008  


Помог: 0 раз(а)




Есть код записи в базу:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. if( !empty($_POST['editor1']) )
  3. {
  4.    include 'bd.php'; /*соединение с базой*/
  5.    $db = mysql_connect ($server_name, $user_name, $password);
  6.    mysql_select_db ($base_name, $db);
  7.    
  8.    $date_time = date("Y:m:d H:i:s");
  9.    $description = $_POST['editor1'];
  10.    $result = mysql_query ("INSERT INTO `top_prod` (`date_time` , `description`) VALUES  ('$date_time' , '$description')");
  11.    if($result) echo '<img src = "../img/good.png"> <font color=#green size=+2>Данные добавлены  '.$date_time.'<br></font>
  12.   <a href="fullpage.html">Ещё добавить</a>';
  13.    else echo "INSERT INTO 'top_prod' ('date_time' , 'description') VALUES  ('$date_time' , '$description')";
  14. }
  15. ?>

Кк в нём сделать фильтр, чтобы не попадали одинаковые сообщения?
 
 Top
Felliks
Отправлено: 26 Февраля, 2010 - 17:52:42
Post Id


Новичок


Покинул форум
Сообщений всего: 16
Дата рег-ции: Янв. 2010  


Помог: 0 раз(а)




Ruskat пишет:
Есть код записи в базу:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. if( !empty($_POST['editor1']) )
  3. {
  4.    include 'bd.php'; /*соединение с базой*/
  5.    $db = mysql_connect ($server_name, $user_name, $password);
  6.    mysql_select_db ($base_name, $db);
  7.    
  8.    $date_time = date("Y:m:d H:i:s");
  9.    $description = $_POST['editor1'];
  10.    $result = mysql_query ("INSERT INTO `top_prod` (`date_time` , `description`) VALUES  ('$date_time' , '$description')");
  11.    if($result) echo '<img src = "../img/good.png"> <font color=#green size=+2>Данные добавлены  '.$date_time.'<br></font>
  12.   <a href="fullpage.html">Ещё добавить</a>';
  13.    else echo "INSERT INTO 'top_prod' ('date_time' , 'description') VALUES  ('$date_time' , '$description')";
  14. }
  15. ?>

Кк в нём сделать фильтр, чтобы не попадали одинаковые сообщения?


Делай проверку перед добавлением, что-то вроде этого:

PHP:
скопировать код в буфер обмена
  1. if (mysql_num_rows(mysql_query ("SELECT * FROM `top_prod` WHERE `description` = '".$description."' LIMIT 1"))) {
  2.  echo "В БД найдена идентичная запись"; }

(Добавление)
У меня проблема с кодировкой mysql. Дело в том, что раньше мой сайт находился на бесплатном хостинге под управлением панели Direct Admin, три дня назад я перенес сайт на платный хостинг mirex.su под управлением cPanel. И теперь у mysql появились проблемы с кодировкой. Все старые записи, которые были созданы на бесплатном хосте - отображаются не коректно. Вы можете убедиться в этом перейдя по ссылке http://w1p[dot]in/news/ . Все новые записи, созданные на новом хосте - на сайте отображаются нормально, но в phpMyAdmin они имеют вид иероглифов. Все записи хранятся в кодировке utf-8_general_ci. Как мне исправить этот баг?
 
 Top
biperch
Отправлено: 26 Февраля, 2010 - 21:12:10
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 588
Дата рег-ции: Окт. 2009  
Откуда: Днепропетровск


Помог: 8 раз(а)




у тебя в админке и тд в заголовках идет кодировка не utf следовательно браузер выводит страницу в кодировку которая в заголовках а данные из базы коверканные.
 
 Top
Felliks
Отправлено: 26 Февраля, 2010 - 22:13:39
Post Id


Новичок


Покинул форум
Сообщений всего: 16
Дата рег-ции: Янв. 2010  


Помог: 0 раз(а)




biperch пишет:
у тебя в админке и тд в заголовках идет кодировка не utf следовательно браузер выводит страницу в кодировку которая в заголовках а данные из базы коверканные.


И что для utf-8_general_ci надо прописать?
 
 Top
Ruskat
Отправлено: 27 Февраля, 2010 - 23:37:43
Post Id



Гость


Покинул форум
Сообщений всего: 70
Дата рег-ции: Март 2008  


Помог: 0 раз(а)




Felliks, спасибо, но hyh мне это и без одинаковой записи выводит.
Есть вот страница, в которую поступают данные из редактора, и пишутся в базу. А так же выводится инфо из базы, и удаляются ненужные записи:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. if( !empty($_POST['editor1']) )
  3. {
  4.    include 'bd.php'; /*соединение с базой*/
  5.    $db = mysql_connect ($server_name, $user_name, $password);
  6.    mysql_select_db ($base_name, $db);
  7.    
  8.    $date_time = date("Y:m:d H:i:s");
  9.    $description = $_POST['editor1'];
  10.    $result = mysql_query ("INSERT INTO `top_prod` (`date_time` , `description`) VALUES  ('$date_time' , '$description')");
  11.    if($result) echo '<img src = "../img/good.png"> <font color=#green size=+2>Данные добавлены  '.$date_time.'<br></font>
  12.   <a href="../_samples/top-prod.html">Ещё добавить</a><br><a href="index_admin.php">В админку</a>';
  13.    else echo "INSERT INTO 'top_prod' ('date_time' , 'description') VALUES  ('$date_time' , '$description')";
  14.         {
  15.       echo "<script language=JavaScript>window.alert('Данные удачно добавлены в базу данных.');</script>";
  16.       echo '<meta http-equiv="refresh" content="2; URL=?p_id=".$_GET['.p_id.']."&mod=".$_GET['.mod.']."&lng=".$pref."">
  17.      ';
  18.       exit();
  19.   }
  20. }
  21. ?>
  22. <?PHP
  23. /*
  24. Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
  25. */
  26. $date_time = date("Сегодня d:m:Y. Времячко H:i:s.");
  27. include 'bd.php';
  28.   /* Соединяемся, выбираем базу данных */
  29.     $link = mysql_connect("$server_name", "$user_name", "$password")
  30.         or die("<img src = '../img/db_minus.png'><font color=#green size=+4>Нет связи с базой данных<br>$date_time <br></font> " . mysql_error());
  31.     print "<img src = '../img/db_plus.png'> <font color=#green size=+1>Есть связь с базой данных<br>$date_time<br></font> ";
  32.     mysql_select_db("$base_name") or die("<img src = '../img/close.png'> <font color=#red size=+4>Не выбрана таблица данных<br>$date_time <br></font>");
  33.     //удалятор данных
  34.     if( $_GET['act'] == 'del' && $_GET['id'] != '')
  35. {
  36.    $query = "DELETE  FROM top_prod WHERE id=".(int)$_GET['id'];
  37.    $result = mysql_query($query) or die("Query failed : " . mysql_error());
  38. }
  39.     /* Выполняем SQL-запрос */
  40.     $query = "SELECT * FROM top_prod";
  41.     $result = mysql_query($query) or die("Query failed : " . mysql_error());
  42.      /* Выводим результаты в html */
  43.      echo '<a href="../admin/_samples/top-prod.html">Ещё добавить</a><br><a href="index_admin.php">В админку</a>';
  44.     print "<table border='1' cols='1' rules='rows' width = 600px align = center>";
  45.     while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
  46.         print "\t<tr>\n";
  47.         print "\t<td><a href='ссылка на редактирование-редактор.html'><img src = '../img/db_edit.png'></a></td>\n";
  48.         print "\t<td><a href='?act=del&id=".$line['id']."'><img src = '../img/db_remove.png'></a></td>\n";
  49.         foreach ($line as $col_value) {
  50.             print "\t\t<td>$col_value</td>\n";
  51.         }
  52.         print "\t</tr>\n";
  53.     }
  54.     print "</table>\n";
  55.  
  56.     /* Освобождаем память от результата */
  57.     mysql_free_result($result);
  58.  
  59.     /* Закрываем соединение */
  60.     mysql_close($link);
  61. ?>

Вот где указано print "\t<td><a href='ссылка на редактирование-редактор.html'><img src = '../img/db_edit.png'></a></td>\n"; , должна быть ссылка на редактор, где нужно отредактировать существующий материал. Редактор:
CODE (html):
скопировать код в буфер обмена
  1.            <textarea cols="80" id="editor1" name="editor1" rows="10"> Напишите здесь чё-нить</textarea>
. Как осуществить редактирование существующего материала?
 
 Top
JustUserR
Отправлено: 28 Февраля, 2010 - 01:16:22
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Felliks пишет:
Помогите разобраться с ключами. Я вот знаю есть первичные, вторичные, внешние, primary и д.р. Но вот зачем они нужны? Как их использовать?
Например их можно использовать при составлении сложных вложенных запросов типа JOIN LEFT/RIGHT ведь соединение идет на основе того что есть базовые уникальные поля элементов


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
biperch
Отправлено: 28 Февраля, 2010 - 01:27:27
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 588
Дата рег-ции: Окт. 2009  
Откуда: Днепропетровск


Помог: 8 раз(а)




PHP:
скопировать код в буфер обмена
  1. $result = mysql_query ("UPDATE `top_prod`set date_time='$date_time' , description='".$_POST['editor1']."' WHERE id=".(int)$_POST['id']);


CODE (html):
скопировать код в буфер обмена
  1. <form method="post">
  2. <input type=text name="id" value="<? echo (int)$line['id']; ?>">
  3. <textarea cols="80" id="editor1" name="editor1" rows="10"> $line['description']</textarea>
  4. <input type="submit">
  5. </form>

я кажись достаточно намекнул, да JustUserR?
 
 Top
JustUserR
Отправлено: 28 Февраля, 2010 - 02:12:29
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




biperch пишет:
Я кажись достаточно намекнул, да JustUserR?
Достаточно-достаточно - только все-таки должно быть <textarea cols="80" id="editor1" name="editor1" rows="10"><?php echo $line['description']; ?></textarea>


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
biperch
Отправлено: 28 Февраля, 2010 - 02:47:36
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 588
Дата рег-ции: Окт. 2009  
Откуда: Днепропетровск


Помог: 8 раз(а)




JustUserR пишет:
biperch пишет:
Я кажись достаточно намекнул, да JustUserR?
Достаточно-достаточно - только все-таки должно быть <textarea cols="80" id="editor1" name="editor1" rows="10"><?php echo $line['description']; ?></textarea>

а может это намек
 
 Top
Ruskat
Отправлено: 28 Февраля, 2010 - 15:38:25
Post Id



Гость


Покинул форум
Сообщений всего: 70
Дата рег-ции: Март 2008  


Помог: 0 раз(а)




Спасибо. Тока как изобразить ссылку ссылка на редактирование-редактор.html?
И как отфильтровать значение, чтобы выводились данные из строки `description`, а `date_time` и `Id` не выводить.

(Отредактировано автором: 01 Марта, 2010 - 11:53:35)

 
 Top
Ruskat
Отправлено: 06 Марта, 2010 - 15:47:10
Post Id



Гость


Покинул форум
Сообщений всего: 70
Дата рег-ции: Март 2008  


Помог: 0 раз(а)




Спасибо, сделал. Такой вот вопрос: Есть папка, расположенная в: сайт.ру/папко1/папко2/моё_папко/ подпапко/ . При выгрузке файлов, создаётся "моё_папко" в корне сайта. Какой переменной определить местоположение скрипта на сайте, чтобы файлы грузились в сайт.ру/папко1/папко2/моё_папко ?
 
 Top
DimKA
Отправлено: 07 Марта, 2010 - 18:59:19
Post Id


Новичок


Покинул форум
Сообщений всего: 48
Дата рег-ции: Янв. 2010  


Помог: 0 раз(а)




помогите пожалуйста занести пароль в БД в виде MD5 и дату :

$date = date("H:i:s");
$password = md5($password);

$result = mysql_query("INSERT INTO users (login,date,mail,password) VALUES
('$login','$dade','$mail','$password')");

не работает... поле date в БД в формате date Улыбка
 
 Top
Roler
Отправлено: 07 Марта, 2010 - 19:12:32
Post Id



Посетитель


Покинул форум
Сообщений всего: 458
Дата рег-ции: Авг. 2008  
Откуда: Россия


Помог: 1 раз(а)




Блин, ну вот что значит "не работает"?
Как заносится, что даёт mysql_error(), какой запрос генерируется - ничего нет.
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB