Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> галерея фоток, не получается вывод 
:(
    Опции темы
PARROT
Дата 25.6.2005, 00:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



На страницу из базы, выводится 4 фотографии разной категории.
Всего категорий 4, соответственно фотографий 4 штуки.
Код

CREATE TABLE `gall` (
  `id_name` int(11) NOT NULL default '0',
  `title` varchar(50) NOT NULL default '',
  `img` varchar(50) NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

-- 
-- Дамп данных таблицы `gall`
-- 

INSERT INTO `gall` VALUES (1, 'К-700Р', 'gal/k700r/2.jpg');
INSERT INTO `gall` VALUES (2, 'К-700ТД-04', 'gal/k700td/3.jpg');
INSERT INTO `gall` VALUES (3, 'К-703МА-12-03', 'gal/k703/3.jpg');
INSERT INTO `gall` VALUES (4, 'К-703МА-12-01', 'gal/ma/1.jpg');

Вот сам код:
Код

<?php
if(empty($name)){$name=1;}
if ($name==1 or $name==2 or $name==3 or $name==4) {
         $name_str="WHERE id_name=".$name;
        }
if (!isset($s)) $s=0;
$foto=mysql_query("SELECT id_name, title, img FROM gall") or die(mysql_error());
while($far=mysql_fetch_row($foto)) {
?>
<table width=100% border>
<tr>
<td align=center><?=$far[1];?></td>
</tr>
<tr>
<td align=center><img src=<?=$far[2];?> border=1></td>
</tr>
<?
$res3=mysql_query("SELECT count( id_gal )FROM galleri WHERE id_name=$name");
$num=mysql_fetch_row($res3);

$numstr=ceil($num[0]/1);
echo "<table><tr><td>Ñòðàíèöû: ($numstr)</td>";
for($i=1; $i<=$numstr; $i++){
        $start=($i-1)*1;
        if ($start==$s OR ($s==0 AND $i==1));
        print "<td><a class=6 href=index.php?page=exhibition&name=$name&s=$start>[$i]</a></td> ";
        if ($start==$s OR ($s==0 AND $i==1));
}
echo "</tr></table>";
}
?>
</table>

Вывод работает, не правильно работает вывод ссылок соответственно категориям
Всегда пишет 1.
Вопрос: Как исправить положение?
Вот база самой галереи:
Код

CREATE TABLE `galleri` (
  `id_gal` int(11) NOT NULL auto_increment,
  `id_name` int(11) NOT NULL default '0',
  `title` text NOT NULL,
  `img` varchar(50) NOT NULL default '',
  PRIMARY KEY  (`id_gal`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=24 ;

-- 
-- Дамп данных таблицы `galleri`
-- 

INSERT INTO `galleri` VALUES (18, 4, 'К-703МА-12-01', 'gal/ma/3.jpg');
INSERT INTO `galleri` VALUES (17, 4, 'К-703МА-12-01', 'gal/ma/2.jpg');
INSERT INTO `galleri` VALUES (16, 3, 'К-703МА-12-03', 'gal/k703/7.jpg');
INSERT INTO `galleri` VALUES (15, 3, 'К-703МА-12-03', 'gal/k703/6.jpg');
INSERT INTO `galleri` VALUES (14, 3, 'К-703МА-12-03', 'gal/k703/5.jpg');
INSERT INTO `galleri` VALUES (13, 3, 'К-703МА-12-03', 'gal/k703/4.jpg');
INSERT INTO `galleri` VALUES (12, 3, 'К-703МА-12-03', 'gal/k703/2.jpg');
INSERT INTO `galleri` VALUES (11, 3, 'К-703МА-12-03', 'gal/k703/1.jpg');
INSERT INTO `galleri` VALUES (10, 2, 'К-700ТД-04', 'gal/k700td/6.jpg');
INSERT INTO `galleri` VALUES (9, 2, 'К-700ТД-04', 'gal/k700td/5.jpg');
INSERT INTO `galleri` VALUES (8, 2, 'К-700ТД-04', 'gal/k700td/4.jpg');
INSERT INTO `galleri` VALUES (7, 2, 'К-700ТД-04', 'gal/k700td/2.jpg');
INSERT INTO `galleri` VALUES (6, 2, 'К-700ТД-04', 'gal/k700td/1.jpg');
INSERT INTO `galleri` VALUES (5, 1, 'К-700Р', 'gal/k700r/6.jpg');
INSERT INTO `galleri` VALUES (4, 1, 'К-700Р', 'gal/k700r/5.jpg');
INSERT INTO `galleri` VALUES (3, 1, 'К-700Р', 'gal/k700r/4.jpg');
INSERT INTO `galleri` VALUES (2, 1, 'К-700Р', 'gal/k700r/3.jpg');
INSERT INTO `galleri` VALUES (1, 1, 'К-700Р', 'gal/k700r/1.jpg');

smile

Это сообщение отредактировал(а) PARROT - 25.6.2005, 00:37


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
o.s.a.
Дата 25.6.2005, 06:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Xo4y B MocKBy
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 16.2.2005
Где: Ташкент

Репутация: 2
Всего: 15



1)
Код

while($far=mysql_fetch_row($foto)) {
?>
<table width=100% border>
......
<? .... } ..... ?>
</table>

т.е. тег открывается столько раз, сколько работает цикл, а закрывается только один раз
2)
Код

for($i=1; $i<=$numstr; $i++){
        $start=($i-1)*1;
        if ($start==$s OR ($s==0 AND $i==1));
        print "<td><a class=6 href=index.php?page=exhibition&name=$name&s=$start>[$i]</a></td> ";
        if ($start==$s OR ($s==0 AND $i==1));
}

Что это за цикл такой???
Дважды одно и то же условие
Код

if ($start==$s OR ($s==0 AND $i==1));

причем обычно после if (условие) идет либо : либо {}, а у тебя ;



--------------------
Не могу стоять, пока другие работают, пойду полежу.
PM MAIL ICQ   Вверх
Ni@m
Дата 25.6.2005, 07:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 189
Регистрация: 11.3.2004
Где: почти Киев

Репутация: нет
Всего: 6



Цитата
Всегда пишет 1.

такое впечетление, что у тебя только в одном месте вывод(не понимать двусмысленно smile )
Код

        if ($start==$s OR ($s==0 AND $i==1));
        print "<td><a class=6 href=index.php?page=exhibition&name=$name&s=$start>[$i]</a></td> ";
        if ($start==$s OR ($s==0 AND $i==1));

Абсолютно не понял зачам тут эти if. Эни же просто проверяют, но никакой роли не играют.
могу ошибаться, ибо не пользуюсь такой схемой кодирования(php+html), обычно через накапливания вывода, или на крайняк echo, или великий smarty =),
но
Код

<?=$far[1];?>

является правильной конструкцией??
--------------------
Обучение - как переливание воды из одной чашки в другую: всегда лучше, чтоб чашка со знаниями нахордилась выше.
PM MAIL WWW ICQ   Вверх
Opik
Дата 25.6.2005, 08:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 24
Всего: 55



Цитата
<?=$far[1];?>
является правильной конструкцией

да
первый иф - рабочий,
второй нет smile
PM MAIL Skype   Вверх
o.s.a.
Дата 25.6.2005, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Xo4y B MocKBy
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 16.2.2005
Где: Ташкент

Репутация: 2
Всего: 15



Цитата
первый иф - рабочий,

как он может быть рабочий, если после него стоит точка с запятой???


--------------------
Не могу стоять, пока другие работают, пойду полежу.
PM MAIL ICQ   Вверх
PARROT
Дата 25.6.2005, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



o.s.a., объясняю смысл if, который вас смущает:
Если $start равна $s, то есть странице на которой мы стоим, или может быть равна нулю, тогда $i (страница) будет равна нулю.
Эта часть полностью рабочая, не стоит спорить по этому поводу.
Вопрос был не в этом! Читайте выше.
Добавлено @ 15:39
Код

"<td><a class=6 href=index.php?page=exhibition&name=$name&s=$start>[$i]</a></td> ";

Вот в этой ссылке должны передаваться разные имена.
Тоесть
$name=1 для первого
$name=2 для второго
$name=3 для третьего
$name=4 для четвертого

А она передает у первого 1, у второго тоже 1..........
Короче везде 1, вместо 2,3,4



--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Joes
Дата 25.6.2005, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 432
Регистрация: 15.11.2004

Репутация: -2
Всего: 7



Цитата(o @ 25.6.2005, 08:19)
1)
Код

while($far=mysql_fetch_row($foto)) {
?> // закрывается
<table width=100% border>
......
<? .... } ..... ?> // открывается
</table>


oSS, повнимательнее будь smile (сначала закрывается, видимо перед выводом таблицы он был открыт, затем закрывается, идет верстка, затем открывается снова smile))))

Это сообщение отредактировал(а) Joes - 25.6.2005, 15:47
PM MAIL   Вверх
IZ@TOP
Дата 25.6.2005, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



тебе нужно скорее всего, насколько я понял:
Код

<?php

$Sec = mysql_query("SELECT id_name, title, img FROM gall") or die(mysql_error());
// Выбор всех категорий
?>
<script>
    var photos    = new Array();
    var current    = new Array();
    function NextImage(idSec) {
        // Функция сменяющая изображения
        // все фотки категории находятся в массиве photos[ид категории] = array('foto/foto1.jpg', 'foto/foto2.jpg'); и т.п.
        if(current[idSec]) {
            if(current[idSec] == photos[idSec].length-1) {
                current[idSec] = 0;
            } else {
                current[idSec] =+1;
            }
        }
        
        var i = current[idSec];
        
        document.getElementById(idSec).src = photos[idSec][i];
        
    }
</script>
<table width="100%" border="1">
<?

while($sRow = mysql_fetch_row($Sec)) {
    
echo <<<HTML
<tr>
    <td>{$sRow[1]}<br><img id="{$sRow[0]}" src="{$sRow[2]}">
    <br>
    <a href="javascript:NextImage({$sRow[0]});">Следующая</a>
    </td>
</tr>
HTML;

$frs = mysql_query("SELECT img FROM galleri WHERE id_name={$sRow[0]}");
    echo "<script>";
    echo "var photos[{$sRow[0]}] = new Array();";
    while($img = mysql_result($res3, 0)) {
        echo "photos[{$sRow[0]}][] = '{$img}';";
        // Заполняем javascrip массив.
    }
    echo "</script>";

}
?>
</table> 



--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
o.s.a.
Дата 25.6.2005, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Xo4y B MocKBy
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 16.2.2005
Где: Ташкент

Репутация: 2
Всего: 15



2 Joes
Цитата
oSS, повнимательнее будь smile (сначала закрывается, видимо перед выводом таблицы он был открыт, затем закрывается, идет верстка, затем открывается снова smile))))

Я имел ввиду, что тег <table width=100% border> открывается 0 или более раз, т.к. находится в цикле while, а закрывается один раз после цикла.

Код

if ($start==$s OR ($s==0 AND $i==1));
     print "<td><a class=6 href=index.php?page=exhibition&name=$name&s=$start>[$i]</a></td> ";

В этом коде вывод print выполняется вне зависимости от того, что вернет if ().
Поэтому я и не вижу смысла использовать данный if.


PARROT, судя по твоему коду
Код

if(empty($name)){$name=1;}
if ($name==1 or $name==2 or $name==3 or $name==4) {
         $name_str="WHERE id_name=".$name;
        }

у тебя $name всегда равна только 1. И нигде не инкрементируется.
Поэтому в цикле у тебя выводятся ссылки с $name=1 smile


--------------------
Не могу стоять, пока другие работают, пойду полежу.
PM MAIL ICQ   Вверх
PARROT
Дата 25.6.2005, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Всем спасибо! Мы уже решили проблему вывода.


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0722 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.