|
|
|
| Здравствуйте.
Есть постраничный вывод из базы пипа 1 | 2 | 3, тут все понятно.
Нужно сделать постраничный вывод по алфавиту: типа a | b | c | d....
при нажатии на букву отображается все записи, начинающиеся на эту букву.
И тут я попал :(
Если кто может - помогите, очень нужно... | |
|
|
|
|
|
|
|
для: 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."%'"; | |
|
|
|
|
|
|
|
для: Athlum
(27.02.2006 в 16:25)
| | а где записи храняться? | |
|
|
|
|
|
|
|
для: 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. | |
|
|
|
|
|
|
|
для: 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);
|
показывает А|Б|В|Г|Д|Е|Ж|З|И|Й|К|Л|М|Н|О|П|Р|С|Т|У|Ф|Х|Ц|Ч|Ш|Щ|Ъ|Ы|Ь|Э|Ю|Я | |
|
|
|
|
|
|
|
для: Ressfourt
(27.02.2006 в 19:25)
| | Спасибо всем!
Буду разбираться. | |
|
|
|
|
|
|
|
|
для: 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 | |
|
|
|
|
|
|
|
для: Athlum
(28.02.2006 в 16:35)
| | у меня не ругается... но можно ему прописать значение "А" по умолчанию:
if (!isset($letter)) $letter = chr(65);
|
| |
|
|
|
|
|
|
|
для: elenaki
(28.02.2006 в 16:59)
| | Ага :) спасибо. | |
|
|
|
|
|
|
|
для: Athlum
(28.02.2006 в 17:12)
| | у тебя ругаеться потому что в настройках PHP.ini указаны или все ошибки или стоит E~NOTICE | |
|
|
|