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

Форум PHP

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

 

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

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

тема: Алфавитная навигация a | b | c | d....
 
 автор: Athlum   (27.02.2006 в 16:25)   письмо автору
 
 

Здравствуйте.
Есть постраничный вывод из базы пипа 1 | 2 | 3, тут все понятно.
Нужно сделать постраничный вывод по алфавиту: типа a | b | c | d....
при нажатии на букву отображается все записи, начинающиеся на эту букву.
И тут я попал :(
Если кто может - помогите, очень нужно...

   
 
 автор: elenaki   (27.02.2006 в 16:43)   письмо автору
 
   для: Athlum   (27.02.2006 в 16:25)
 

<a href=search.php?letter=a>a</a>
...
...
...
<a href=search.php?letter=z>z</a>


a B search.php:

$sql = "select * from your_table where your_field LIKE '".$letter."%'";

   
 
 автор: Loki   (27.02.2006 в 17:13)   письмо автору
 
   для: Athlum   (27.02.2006 в 16:25)
 

а где записи храняться?

   
 
 автор: Athlum   (27.02.2006 в 18:06)   письмо автору
 
   для: Loki   (27.02.2006 в 17:13)
 

Все равно не работает :(
Плиз, подскажите, что не так:
итак есть 2 файла:
1.php

<?php
echo "<a href=search.php?letter=a>a</a>
...
...
...
<a href=search.php?letter=z>z</a>";
?>

и search.php

<?php
// Connecting, selecting database
$link = mysql_connect('localhost', 'root', '') or die('Could not connect: ' . mysql_error());
//echo 'Connected successfully';
mysql_select_db('total") or die('Could not select database');
// Performing SQL query

$query = 'SELECT name FROM prices WHERE MID(name,1,1) = \'$letter\'';
// выбираем данные столбца name, если первая буква = букве из 1.php
$result = mysql_query($query) or die('Query failed: ' . mysql_error());

if (!$result)
echo "Ошибка базы данных. MySQL пишет:", mysql_error();
else

{
while ($row = mysql_fetch_array($result))
{
echo "<br>", $row["name"], "<br>";
// выводим данные, начинающиеся с выбранной буквы
}
};

// Free resultset
mysql_free_result($result);

// Closing connection
mysql_close($link);

?>

Если вместо
$query = 'SELECT name FROM prices WHERE MID(name,1,1) = \'$letter\'';

поставить
$query = 'SELECT name FROM prices WHERE MID(name,1,1) = \'b\'';

записи с буквой b вначале выводятся нормально..

Видимо проблема - как взять эту самую букву из 1.php и вставить ее вместо $letter.

   
 
 автор: Ressfourt   (27.02.2006 в 19:25)   письмо автору
 
   для: Athlum   (27.02.2006 в 18:06)
 

это пример поможет тебе составить алфавитное меню
а уж запрос к Базе Данных тебе показала elenaki
для русского меню а для английского поиграй с начальными цифрами от 1 до 100 там уже разберешься где начинаются а где кончаются

for($x=192;$x<=223;$x++)
{
$a[] .= "<a href=\"?letter=".chr($x)."\">".chr($x)."</a>";
}
echo $a = implode("|",$a);


показывает А|Б|В|Г|Д|Е|Ж|З|И|Й|К|Л|М|Н|О|П|Р|С|Т|У|Ф|Х|Ц|Ч|Ш|Щ|Ъ|Ы|Ь|Э|Ю|Я

   
 
 автор: Athlum   (27.02.2006 в 21:22)   письмо автору
 
   для: Ressfourt   (27.02.2006 в 19:25)
 

Спасибо всем!
Буду разбираться.

   
 
 автор: cheops   (28.02.2006 в 00:19)   письмо автору
 
   для: Athlum   (27.02.2006 в 16:25)
 

Алфавитная навигация также обсуждалась в темах
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=9547
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=9261
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=7939

   
 
 автор: Athlum   (28.02.2006 в 16:35)   письмо автору
 
   для: cheops   (28.02.2006 в 00:19)
 

В таком виде заработало:

<?php
// Connecting, selecting database
$link mysql_connect('localhost''root''') or die('Could not connect: ' mysql_error());
//echo 'Connected successfully';
mysql_select_db('prices') or die('Could not select database');

$a""

for(
$x=65;$x<=90;$x++) 

$a [] .= " <a href=\"?letter=".chr($x)."\">".chr($x)."</a> "

echo 
"<center>"$a implode("|",$a);

// Performing SQL query

$sql "select * from prices where name LIKE '".$letter."%' AND type=\"video\" ORDER BY name ASC";
$result mysql_query($sql) or die('Query failed: ' mysql_error());
if (!
$result)
echo 
"Ошибка базы данных. MySQL пишет:"mysql_error();
else 

while (
$row mysql_fetch_array($result))
        { 
echo 
"<tr><td><b>"$row["name"], "</b></td><td>"$row["language"], "</td><td>"$row["description"], "</td></tr><tr><td colspan=3 bgColor=#6699cc></td></tr>"
// выводим данные, начинающиеся с выбранной буквы
        

};
// Free resultset
mysql_free_result($result);

// Closing connection
mysql_close($link);
?>


но постоянно выдает
Notice: Undefined variable: letter in c:\www\elitis\docs\letters.php on line 17

   
 
 автор: elenaki   (28.02.2006 в 16:59)   письмо автору
 
   для: Athlum   (28.02.2006 в 16:35)
 

у меня не ругается... но можно ему прописать значение "А" по умолчанию:

if (!isset($letter)) $letter = chr(65);

   
 
 автор: Athlum   (28.02.2006 в 17:12)   письмо автору
 
   для: elenaki   (28.02.2006 в 16:59)
 

Ага :) спасибо.

   
 
 автор: Ressfourt   (28.02.2006 в 18:04)   письмо автору
 
   для: Athlum   (28.02.2006 в 17:12)
 

у тебя ругаеться потому что в настройках PHP.ini указаны или все ошибки или стоит E~NOTICE

   
Rambler's Top100
вверх

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