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

Форум MySQL

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Строка в конец таблицы.
 
 автор: Kreg-Heg   (26.04.2007 в 10:40)   письмо автору
 
 

Вот запись в таблицу базы данных. В таблице один столбец login. Нужно чтобы каждая новая запись вставлялась в самый конец таблицы.


<?php
$mas 
= array();
$i 0;
$login $_POST['nick'];
$dbname 'mybaza'
$dbtable 'mytable'
$dbcnx mysql_connect('localhost','root','*******');
if (!
mysql_select_db($dbname$dbcnx)){ 
 echo( 
'' ); exit();

if (
mysql_select_db($dbname$dbcnx)){ 
 echo(
'');

$ss="insert into $dbtable (login) values ('$login')";
$ssgo mysql_query ($ss$dbcnx);
if(
$ssgo)echo('');
if(!
$ssgo) exit();
$sql=mysql_query("select count(login) from $dbtable;"); 
$str=mysql_result($sql,0);

$query "SELECT * FROM $dbtable"
$ath mysql_query($query); 
if(!
$ath) exit("<p>Ошибка в запросе к таблице сессий</p>"); 
if(
mysql_num_rows($ath)>0) { 
 while(
$author mysql_fetch_array($ath)) 
   { 
    
$mas[$i] = $author['login']; 
    
$i $i+1;
    } 

?>


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

   
 
 автор: Trianon   (26.04.2007 в 10:45)   письмо автору
 
   для: Kreg-Heg   (26.04.2007 в 10:40)
 

У таблицы нет конца. И начала нет.
Сервер не обязан держать строки в определенном порядке, и не пытается этот порядок обеспечивать нигде, кроме как на выходе, да и то - по явному требованию.

   
 
 автор: ZuArt   (26.04.2007 в 10:46)   письмо автору
 
   для: Kreg-Heg   (26.04.2007 в 10:40)
 

В БД в таблицах НЕТ понятие первая-последняя... есть только понятие ПРАВИЛО СОРТИРОВКИ...

Вариант в данном случае вижу ТОЛЬКО один (имею в виду максимально безболезненный) - в таблицу добавить поле Id... задать ему ключевое + автоинкремент...

И в запросе при выборке делать доп условие в SELECT * FROM $dbtable ORDER BY Id - тогда выборка будет происходить в соответствии с порядком появления записей в таблице

   
 
 автор: zerocool   (26.04.2007 в 10:47)   письмо автору
 
   для: Kreg-Heg   (26.04.2007 в 10:40)
 

Если у вас есть поле скажем id с auto_increment
То можно при выводе записей из базы сортировать по этому id

ORDER BY id

   
 
 автор: Kreg-Heg   (26.04.2007 в 22:18)   письмо автору
 
   для: zerocool   (26.04.2007 в 10:47)
 

чета я даже этого поля не могу создать, вот смотрите
поле -> id
тип -> int
длинна -> 50
сравнение -> cp1251_general_cs
атрибуты -> тут ничего не пишу
ноль -> not null
по умолчанию -> тут ничего не пишу
дополнительно -> auto_increment

Ошибка вот такая:
ALTER TABLE ADD `id` INT( 50 ) NOT NULL AUTO_INCREMENT FIRST

Ответ MySQL:
#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key

   
 
 автор: Trianon   (27.04.2007 в 10:00)   письмо автору
 
   для: Kreg-Heg   (26.04.2007 в 22:18)
 

автонаращиваемое поле должно быть единственным в таблице и должно являться первичным ключом:

ALTER TABLE ADD `id` INT( 50 ) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST

   
 
 автор: Kreg-Heg   (27.04.2007 в 21:19)   письмо автору
 
   для: Trianon   (27.04.2007 в 10:00)
 

Спасибо! Всё сделал, всё работает!!!

   
Rambler's Top100
вверх

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