Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум веб-мастеров _ Базы данных (MySQL, PostgreSQL, ODBC, ...) _ Тип данных в Mysql

Автор: satana 11.5.2007, 20:56

В Delphi есть такой тип как Autocriment, приращение, есть ли в MySQL что нибудь подобное?
Пишу гостевую и по приращению удобно бы было. Только не ругайте словами - RTFM читай, я хочу сам сделать, сам понять.


P.S. Ниче что я вам тут своими вопросами спамлю? Сначало хотел в прошлой теме открыть но вопросы разные... Я новенький на форуме и не знаю как тут у вас

Автор: gid 11.5.2007, 21:31

Да, в MySQL есть нечно подобное, называется auto_increment. Для его использования необходимо нужному полю таблицы mysql присвоить этот дополнительный параметр, при условии что поле имеет ти integer и не имеет значения поумолчанию.
Пример mysql таблицы:
CREATE TABLE `all_news` (
`url` int(11) NOT NULL auto_increment,
`title` text NOT NULL,
`text` text NOT NULL,
`short_text` text NOT NULL,
`category` varchar(150) NOT NULL,
`category_2` varchar(150) NOT NULL,
`date` int(11) NOT NULL,
`2md5` varchar(64) NOT NULL,
UNIQUE KEY `url` (`url`),
UNIQUE KEY `2md5` (`2md5`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

Автор: gid 11.5.2007, 22:21

Еще забыл добавить, что в данном случае при заполнении этой таблицы ненужно указывать значение в поле "url", вместо значения нужно использовать "", иначе будет ошибка. Запрос к таблице указанной выше будет иметь вид:
INSERT INTO all_news VALUES ( '', '$title', '$text', '$short_text', '$category', '$category_2', '$date', '$_2md5' );

Автор: satana 11.5.2007, 22:43

Все получилось - только одно но - как же без него=).

Скрипт addmsg.php записывает данные в базу данных но возращает пустое окно, можно конечно ссылку вставить, но было бы лучше если когда все данные будут занесены в таблицу автоматически перемещал на gbook.php - какую фунуцию использовать нужно?

Автор: gid 11.5.2007, 22:59

Ответ тоже достаточно прост:
Еслии ничего не выводится и не будет выводиться в браузер:

Код
Header("Status: 301 Moved Permanently");
Header("Location: http://ваш_сайт.ru/путь/gbook.php");
die();

или если Вы хотите уведомить своего посетителя о том, что его сообщение успешно добавлено:
Код
    $str = "Спасибо, ваше сообщение добавленно";
      $str .= "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL=http://ваш_сайт.ru/путь/gbook.php\">";
      echo $str;

Автор: satana 12.5.2007, 0:12

Гостевая сделана начался тест и снова проблемы... На этот раз HTML характера...

Сообщение выглядит так -

print("<table width=80%>");
print(" <tr>");
print(" <td width=35%> $name </td>");
print(" <td rowspan=4 width=65%> $msg </td>");
print(" </tr>");
print(" <tr>");
print(" <td> $site </td>");
print(" </tr>");
print(" <tr>");
print(" <td> $time </td>");
print(" </tr>");
print(" <tr>");
print(" <td> $date </td>");
print(" </tr>");

Незнаю как еще описать внешний вид но уверен что ты представляешь. И вот такая беда - Переменная $msg это сообщение, когда она короткая то все нормально(символов 20-40) а если больше то идеть сплошной строкой и выходит за экран - как сделать чтобы текст столбиком был (переносы строки были)


P.S Дата Вчера, 23:59 - так отображается у меня дата твоего ответа хотя сделан он сегодня, а до 23 еще час, да и всех ответов в теме

Автор: gid 12.5.2007, 9:18

Здесь можно поступить немного подругому. Обычно я в своих скриптах использую шаблоны для таких целей, как вывод повторяющихся фрагментов, т.е. для твого случая код будет выглядеть так:

Код
echo <<<EOF
<table width=80%>
<tr>
<td width=35%> $name </td>
<td rowspan=4 width=65%> $msg </td>
</tr>
<tr>
<td> $site </td>
</tr>
<tr>
<td> $time </td>
</tr>
<tr>
<td> $date </td>
</tr>
</table>
EOF;

Если же еще нужно что бы сообщение форматировалось автоматически, т.е. уитывались и отображались переходы строк то переменную $msg нужно подвергнуть некоторому воздействию:
$msg = str_replace("\r\n", "<br>", $msg);
или
$msg = nl2br($msg);

Invision Power Board ()
© Invision Power Services ()