Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: отобразить часть ссылок: напр. с 25 по 37
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » отобразить часть ссылок: напр. с 25 по 37

Страниц (1): [1]
 

1. broshurkaplus - 16 Августа, 2011 - 16:21:41 - перейти к сообщению
здравствуйте

есть код который выводит все ссылки если они есть при выбрвной теме

PHP:
скопировать код в буфер обмена
  1.    $q_po_teme = mysql_query("SELECT * FROM xxx WHERE img_tema=$tema");
  2.    $i=1;
  3.    while($r_po_teme=mysql_fetch_array($q_po_teme)){
  4.    echo '<a class="b" href="?img='.$r_po_teme["img_id"].'&tema='.$_GET['tema'].'" alt="'.$r_po_teme["img_id"].'" align="center">'.$i.'</a>'."\n";$i=$i+1;}
  5.       }


отображаем номера, передаём ид картинки
при нажатии на сылку отображается картинка
теперь нужно:

чтобы, если передан гет, то выводились ссылки за 10 до переданной и 10 следующих


как лучше реализовать? (картинок накопилось много и теперь сылки занимаютместо )
2. OrmaJever - 16 Августа, 2011 - 16:51:43 - перейти к сообщению
обычно в GET передают ид, а у вас что в $_GET['tema'] ?
3. broshurkaplus - 16 Августа, 2011 - 17:47:50 - перейти к сообщению
у меня гетом передаётся ид картинки и тема

, а ссылки отображаются если есть тема (без или с ид), в сылке - передаваемый параметр ид картинки , а отображаемый $i- порядковый

типа так
меню
если тема не выбрана то ссылок нет
если тема выбрана(передана) то выводим ссылки на картинки - по ним отображаем.

надо

если передана картинка то не выводить все ссылки (например их 1000), а только 10 предыдущих и 10 след-х

нужно както получить отображаемый $i на который нажали чтобы отобразить картинку (не передавая его) и типа выводим эхо не менее $i-10 и не более $i+10.
или найти в массиве индекс элемента с ид=гет ид, тогда отображаем тока нужные.
(пробовал функцию поиска ($к,$r_po_teme) но типа видит что искать в $k "переданый гет" а масив не видит , надо чтобы было с кавычками и через запятую )

не палучается...
4. OrmaJever - 16 Августа, 2011 - 18:00:03 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $id = $_GET['ид_картинки'];
  2. mysql_query("SELECT * FROM table WHERE id >= ($id-10) AND id <= ($id+10)");

как вариант
5. broshurkaplus - 16 Августа, 2011 - 18:42:02 - перейти к сообщению
тока как вариант
в одной таблице по разным темам, поэтому передаём и тему в гет.
и в это случае, пропадают $i, т е если я уже на 500й странице у меня отобразит сылки с 490 по 510. но потеряюотся $i - они будут сначала - 1-20. а надо чтоб 490,491...510

поэтому мне надо как то его запомнить

может получить индекс типа

$k = array_search(" тут гет ид",$r_po_teme);

но у меня не срабатывает
ид я запихиваю а не видит масив $r_po_teme . как его сделать в виде "ид1","ид2" и т д
тогда далее смогу если $i>$k-10 и <$k+10 то вывожу сылки а если нет то не вывожу

???
может другая функция есть?
(Добавление)
да и ид при выборе по теме не попорядку (682,683,896,) если WHERE id >= ($id-10) AND id <= ($id+10)
6. OrmaJever - 16 Августа, 2011 - 18:53:41 - перейти к сообщению
во-первых в условие можно добавить ещё тему
во-вторых почему теряется $i? её никто терятся не просил, она на месте.
PHP:
скопировать код в буфер обмена
  1. $q_po_teme = mysql_query("SELECT * FROM table WHERE img_tema=$tema AND id >= ($id-10) AND id <= ($id+10)");
  2. $i=1;
  3. while($r_po_teme=mysql_fetch_array($q_po_teme)){
  4.    echo '<a class="b" href="?img='.$r_po_teme["img_id"].'&tema='.$_GET['tema'].'" alt="'.$r_po_teme["img_id"].'" align="center">'.($i++)."</a>"\n";}
  5. }
7. broshurkaplus - 16 Августа, 2011 - 19:25:49 - перейти к сообщению
сделал так

PHP:
скопировать код в буфер обмена
  1.   if($_GET['img']){$id = $_GET['img'];
  2.       $q_po_teme = mysql_query("SELECT * FROM table WHERE img_tema=$tema AND id >= ($id-10) AND id <= ($id+10)");
  3.       }
  4.       else{
  5.       $q_po_teme = mysql_query("SELECT * FROM table WHERE img_tema=$tema");}
  6.    $i=1;
  7.    while($r_po_teme=mysql_fetch_array($q_po_teme)){
  8.    echo '<a class="b" href="?img='.$r_po_teme["img_id"].'&tema='.$_GET['tema'].'" alt="'.$r_po_teme["img_id"].'" align="center">'.$i.'</a>'."\n";$i=$i+1;}


если ид карт.не передано-ок ,если нажимаем ссылку выдаёт

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in

в

while($r_po_teme=mysql_fetch_array($q_po_teme)){
(Добавление)
ид не попорядку 850, 900,950 я полагаю что -10 или+10 от их не видит
(Добавление)
подправил код
id >= ($id-10) сдесь img_id >= ($id-10)

оно срабатывает но если ид 850, 900,950 и мы на картинке 900
то отображает тока одну сылку с ид900 и видимым 1 т е $i потерялось и отсчитывает его сначала

возвращаюсь к этому - как получить индекс и переданным по гет ид из массива $r_po_teme=mysql_fetch_array($q_po_teme) тогда и по индексу -10 и +10 отображать $i
8. broshurkaplus - 16 Августа, 2011 - 22:22:20 - перейти к сообщению
всё разобрался

прогоняю цикл до этого - при совпадении фиксирую $i принимаю $i1

прогоняю 2й раз е вывожу сылки при удовл. условию $i>=$i1-5 and $i>=$i1+5

если надо код пишите

 

Powered by ExBB FM 1.0 RC1