|
|
|
| Здравствуйте , вот пишу я скрипт - каталог .
Его задача выводить некую таблицу , где будет картинка , Название и цена . принажатии на любую ссылку будет появляться маленькое окно с дополнительной информацией . Ну и небольшая админочка ко всему этому .
Скринт работает следующим образом . При добавлении всех данных на сервере создаётся каталог , куда копируются файл админки ну и создаётся ещё несколько файлов ( база данных не используется ) .
И вот в результате встала проблема - этих самых товаров очень много и надо сделать постраничный вывод ( по 10 товаров , например , на страницу ) Вроде вывод по страницам я сделал , но тут встала ещё одна проблема . Если есть всего 5 записей , а не 10 или , скажем , 12 записей , то создаются 2 страницыкак и надо , но на второй ( если брать , что страниц 12 ) только 2 записи , а остальные 8 полный бред . Просто циклица таблица до 10 пунктов и всё
Index.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Камень</TITLE>
<META http-equiv=Content-Type content="text/css; charset=windows-1251">
<script language="JavaScript">
function Show(fname, width, height) {
if (screen.height<=550 && screen.width<=700) {
document.location = fname;
} else {
if(!height) height = 800;
if(!width) width = 600;
newHeight = height + 20;
PopupWin = window.open(fname, "_blank", "height="+newHeight+",width="+width+",menubar=no,status=no,titlebar=no,toolbar=no,location=no,resizable=no,scrollbars=yes"); }
return false;
}
</script>
<?
include ('config.txt');
print "<table align=\"center\" width=400 border=1>
<tr>
<td><div align=\"center\">Внешний вид </div></td>
<td><div align=\"center\">Наименование</div></td>
<td><div align=\"center\">Цена</div></td>
</tr>
<tr>
";
$i = 0;
$title=$izvest[$q] ;
$handle = opendir ('.');
while($file = readdir($handle))
{
if ($file != '.' && $file != '..' && $file != 'index.php' && $file != 'redaction.php' && $file != 'tovar_prog.php' && $file != 'admin.php' && $file != 'config.txt' && $file != 'redaction_prog.php' && $file != '2.php')
{
$func[$i] = $file; //формируем массив названий файлов с функциями
$i++;
}
}
sort ($func);
if (isset($_GET["page"])) $page = $_GET["page"];
else $page = 1;
for ($q = ($page-1)*10; $q < $page*10; $q++)
{
print "<td align=\"center\" width=100><a href=# target=_self
onclick=\"Show('$func[$q]?title=$izvest[$q]',400,300); return false;\">
<img src=$func[$q]/1.jpg alt=\"Дополнительная информация\" width=70 height=70 border=0 ></td><td align=\"center\" width=300>
<a href=# target=_self
onclick=\"Show('$func[$q]?title=$izvest[$q]',400,300); return false;\">
$izvest[$q]</td>
<td> ";
include ("$func[$q]/2.txt");
print "</td></tr></a>";
}
print " </table>";
$q = count($func);
print "Колличество элементов $q ";
if ( $q > 10 )
print "Страницы: ";
for ($i=0; $i < $q/10; $i++)
{
echo "<a href='".$_SERVER['PHP_SELF']."?page=".($i+1)."'>".($i+1)."</a> ";
}
?>
|
ну , впринципе остальные файлы никак на вывод не влияют . Если надо будет - выложу всё . Ребят , помогите , не к кому обратиться больше ! | |
|
|
|
|
|
|
|
для: OREX13
(08.09.2009 в 02:06)
| | Ошибка (краевой эффект), очевидно, здесь: for ($q = ($page-1)*10; $q < $page*10; $q++)
И чтобы подобраться к ней, стоит сперва упростить строку хотя бы так:
$q = $q = ($page-1)*10;
$r = $page*10;
for (; $q < $r; $q++)
|
| |
|
|
|
|
|
|
|
для: OREX13
(08.09.2009 в 02:06)
| | простите.
Вот тут ( include ("$func[$q]/2.txt"); ) ... хм... маленький дяденька с грустными глазами.... который, как известно, не лечится. | |
|
|
|
|
|
|
|
для: Trianon
(08.09.2009 в 02:21)
| | Извините . не понял , где там ошибка ) | |
|
|
|
|
|
|
|
для: OREX13
(08.09.2009 в 02:40)
| | $r не всегда равно $page*10 | |
|
|
|
|
|
|
|
для: OREX13
(08.09.2009 в 02:06)
| | for ($q = ($page-1)*10; $q < $page*10; $q++)
к условию $q < $page*10; вам надо еще добавить $q <count($func) (только так в цикле* не проверяйте) | |
|
|
|
|
|
|
|
для: ride
(08.09.2009 в 08:48)
| | Спасибо огромное всем , вот так выкрутился
for ($q = ($page-1)*10; $q < $page*10; $q++)
if ($q < $page*10) {
{
if ($q < count ($func)) {
print "<td align=\"center\" width=100><a href=# target=_self
onclick=\"Show('$func[$q]?title=$izvest[$q]',400,300); return false;\">
<img src=$func[$q]/1.jpg alt=\"Дополнительная информация\" width=70 height=70 border=0 ></td><td align=\"center\" width=300>
<a href=# target=_self
onclick=\"Show('$func[$q]?title=$izvest[$q]',400,300); return false;\">
$izvest[$q]</td>
<td> ";
include "$func[$q]/2.txt";
print "</td></tr></a>";
}
}}
|
Вроде всё работает , правильно ? | |
|
|
|
|
|
|
|
для: OREX13
(08.09.2009 в 13:26)
| |
<?php
$r=$page*10;
$cnt=count($func);
for ($q =$r-10; $q < $r,$q<$cnt; $q++){
print "<td align=\"center\" width=100><a href=# target=_self
onclick=\"Show('$func[$q]?title=$izvest[$q]',400,300); return false;\">
<img src=$func[$q]/1.jpg alt=\"Дополнительная информация\" width=70 height=70 border=0 ></td><td align=\"center\" width=300>
<a href=# target=_self
onclick=\"Show('$func[$q]?title=$izvest[$q]',400,300); return false;\">
$izvest[$q]</td>
<td> ";
include "$func[$q]/2.txt";
print "</td></tr></a>";
}
|
| |
|
|
|
|
|
|
|
для: ride
(08.09.2009 в 17:05)
| | $q < $r && $q<$cnt | |
|
|
|
|
|
|
|
для: Trianon
(08.09.2009 в 17:21)
| | а запятая чем плоха? | |
|
|
|
|
|
|
|
для: ride
(08.09.2009 в 17:33)
| | Проверьте.
Запятая очень хороша. Только на своем месте.
Это разные операции, и результаты вычисления выражений будут разные. | |
|
|
|
|
|
|
|
для: Trianon
(08.09.2009 в 17:48)
| | //
<?php
$j=3;
for($i=0;$i<4,$i<$j;$i++){
echo$i."<br>";
}
?>
|
<?php
$j=3;
for($i=0;$i<4&&$i<$j;$i++){
echo$i."<br>";
}
?>
|
| |
|
|
|
|
|
|
|
для: ride
(08.09.2009 в 18:37)
| | Зачем Вы это написали?
Напишите $j = 7; | |
|
|
|
|
|
|
|
для: Trianon
(08.09.2009 в 19:17)
| | согласен, был не прав. | |
|
|
|
|
автор: ! (08.09.2009 в 19:24) |
|
|
для: ride
(08.09.2009 в 18:37)
| | ride, это доказывает общий случай? бугага! | |
|
|
|