Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Сайт на php + MySQL

Ответить
Настройки темы
Сайт на php + MySQL

Пользователь


Сообщения: 98
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Счас использую такой код
Код: Выделить весь код
$config['host'] = 'localhost';
 *$config['user'] = 'root';
 *$config['pass'] = '';
 *$config['db'] = 'tradeuk';

 *$start = '&nbsp; Приветствуем, Вас уважаемые посетители!<br>';

 *$t = '
 * <table border="0" width="480" class=man>
 * *<tr>
 * * <td width="480" height="20" class=menu>
 * * <font color="#FFFFFF">&#9658;</font> %a</td>
 * *</tr>
 * *<tr>
 * * <td width="480" class="men">
 * * %n <a href="%s">перейти</a></td>
</tr>
 * </table>
 *';

 *echo $start;

 *mysql_connect($config['host'], $config['user'], $config['pass']) or die('Неверный хост');
 *mysql_select_db($config['db']) or die('Сайт не доступен, нет связи с базой данных');

 *$max = mysql_fetch_array(mysql_query('SELECT MAX(id) FROM news_index'));
 *$max = $max['MAX(id)']+1;

 *while($result = mysql_fetch_array(mysql_query('SELECT * FROM news_index WHERE id<' . $max . ' ORDER BY id DESC;')))
{
echo str_replace(Array('%a', '%n', '%s'), Array($result['name'], $result['message'], $result['subject']), $t);
$max = $result['id'];
}
он вполне устраивает, и хорошо работает,
как можно ограничить вывод скажем до 10 сообщений? или точней id

[s]Исправлено: tradeukraine, 19:52 8-12-2003[/s]

-------
Каталог предприятий Украины http://www.tradeukraine.com


Отправлено: 20:45, 08-12-2003

 

Аватара для vadimiron

Ветеран


Сообщения: 1864
Благодарности: 120

Профиль | Отправить PM | Цитировать


Просто в запрос mysql_query после всех данных дописываешь
limit x,y , где x,y числа
x-с какого элемента начинать выводить записи
y-сколько записей выводить

то есть если нужно вывести 10 записей с первого, удовлетворяющего условию where или like, нужно написать
limit 0,10

-------
Fortes fortuna adiuvat


Отправлено: 23:14, 08-12-2003 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 98
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


vadimiron
Пробовал - менять что то не пошло,
или ошибка или показывает все записи,
как можно поменять в этом коде?

-------
Каталог предприятий Украины http://www.tradeukraine.com


Отправлено: 13:00, 09-12-2003 | #3


Пользователь


Сообщения: 98
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


немогу понять, как вывисти скажем 1 и 8 запись?

-------
Каталог предприятий Украины http://www.tradeukraine.com


Отправлено: 20:07, 09-12-2003 | #4


Пользователь


Сообщения: 98
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Народ!
Поможить,
Очень нужно!!!

-------
Каталог предприятий Украины http://www.tradeukraine.com


Отправлено: 20:29, 11-12-2003 | #5


Аватара для Prisoner

Engrossed by the Void


Сообщения: 2229
Благодарности: 60

Профиль | Отправить PM | Цитировать


Цитата:
SELECT [STRAIGHT_JOIN]
      [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
      [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] [HIGH_PRIORITY]
      [DISTINCT | DISTINCTROW | ALL]
   select_expression,...
   [INTO {OUTFILE | DUMPFILE} 'file_name' export_options]
   [FROM table_references
     [WHERE where_definition]
     [GROUP BY {unsigned_integer | col_name | formula} [ASC | DESC], ...
     [HAVING where_definition]
     [ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] ,...]
     [LIMIT [offset,] rows]
     [PROCEDURE procedure_name]
     [FOR UPDATE | LOCK IN SHARE MODE]]
А вот по самой феньке LIMIT:
Цитата:
The LIMIT clause can be used to constrain the number of rows returned by the SELECT statement. LIMIT takes one or two numeric arguments. The arguments must be integer constants. If two arguments are given, the first specifies the offset of the first row to return, the second specifies the maximum number of rows to return. The offset of the initial row is 0 (not 1):
mysql> SELECT * FROM table LIMIT 5,10;  # Retrieve rows 6-15

To retrieve all rows from a certain offset upto the end of the result set, you can use -1 for the second parameter:
mysql> SELECT * FROM table LIMIT 95,-1; # Retrieve rows 96-last.

If one argument is given, it indicates the maximum number of rows to return:
mysql> SELECT * FROM table LIMIT 5;     # Retrieve first 5 rows
Надеюсь разберетесь.

-------
Не могу дать более дельный совет - не хватает системных ресурсов...


Отправлено: 03:11, 12-12-2003 | #6


Пользователь


Сообщения: 98
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Prisoner
сапасибо тебе, но старый я учится,
блин тыкал тыкал так и ненатыкал
Если можно поправь верхний код,
Мне нужно вывисти с 1 по 15 записть
Заранее спасибо - огромное!

-------
Каталог предприятий Украины http://www.tradeukraine.com


Отправлено: 14:41, 12-12-2003 | #7


Аватара для vadimiron

Ветеран


Сообщения: 1864
Благодарности: 120

Профиль | Отправить PM | Цитировать


Насколько я понимаю надо подправить только строку while:

while($result = mysql_fetch_array(mysql_query("SELECT * FROM news_index WHERE id<'$max' ORDER BY id DESC LIMIT 0,15"))


У меня к Вам и ко всем остальным один вопрос - в скобках цикла while вроде должно стоять условие выполнения этого цикла, а у Вас стоит присвоение значений переменной $result, в этом случае я не понимаю, в чём заключается условте???

Я бы написал бы данный кусок кода вот так:

$sql=mysql_query("SELECT * FROM news_index WHERE id<'$max' ORDER BY id DESC LIMIT 0,15";
for($i=0;$i<$sql;$i++)
{
$result=mysql_fetch_array($sql);
//и далее всё, что нужно при каждом выполнении цикла  
}  

Добавлено:

УПС
написал глупость
вот правильный код:

Я бы написал бы данный кусок кода вот так:

$sql=mysql_query("SELECT * FROM news_index WHERE id<'$max' ORDER BY id DESC LIMIT 0,15";
for($i=0;$i<mysql_num_rows($sql);$i++)
{
$result=mysql_fetch_array($sql);
//и далее всё, что нужно при каждом выполнении цикла  
}

-------
Fortes fortuna adiuvat


Отправлено: 14:59, 12-12-2003 | #8


Аватара для Prisoner

Engrossed by the Void


Сообщения: 2229
Благодарности: 60

Профиль | Отправить PM | Цитировать


vadimiron
Цитата:
Краеугольный камень PHP - выражения.
mysql_fetch_array - построчно загоняет в массив результаты запроса и как только они кончились, вернет FALSE, что будет являться окончанием обработки.

Имхо, вариант с WHILE более читабелен и лаконичен, но вы конечно же можете быть со мной не согласны

tradeukraine,  мне кажется, что vadimiron ответил на вопрос, надо исправить лишь запросик к базе данных.

"Ну и запросы у вас" - сказала база данных и повисла.

-------
Не могу дать более дельный совет - не хватает системных ресурсов...


Отправлено: 03:06, 13-12-2003 | #9


Пользователь


Сообщения: 98
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Люди добрые спасибо Вам огромное!

-------
Каталог предприятий Украины http://www.tradeukraine.com


Отправлено: 12:59, 13-12-2003 | #10



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Сайт на php + MySQL

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Apache 2.2.8 + Php 5.2.6 + MySQL 5.0.51b (win) - не работает php v0f41k Вебмастеру 4 11-05-2008 22:08
PHP+MYSQL pauluss Вебмастеру 6 09-07-2004 22:46
Сайт на php tradeukraine Вебмастеру 90 01-04-2004 08:27
PHP+MySQL GhostBuster Программирование и базы данных 7 21-08-2003 21:07
Сайт на php tradeukraine Вебмастеру 6 30-07-2003 04:34




 
Переход