Автор Тема: Q: Как да запазя $id за следващият скрипт?  (Прочетена 2268 пъти)

steady

  • Напреднали
  • *****
  • Публикации: 266
  • Distribution: Maemo / Ubuntu
  • Window Manager: Gnome
    • Профил
Здравейте на всички !
Въпроса ми сигурно е елементарен, но аз забих лошо и моля за помощ.

Ето какво правя:
Генерирам листа ( с редове ) от таблица на mysql чрез функцията mysql_fetch_array()
Примерен код
$sql = mysql_query("SELECT `id`,`head` FROM `table1`");
while( $red=mysql_fetch_array($sql) )
{
echo("<a href=\"take.php?id=".$red["id"].">".$red["head"]."</a>");
}

Примерно:
Примерен код
<a href="take.php?id=183">Проба1</a>
<a href="take.php?id=184">Проба2</a>
<a href="take.php?id=185">Проба3</a>


Въпроса ми е как да запазя съответното ID за следващият скрипт -> "take.php" след като кликна на линка -> "take.php?id=183"?

Пробвах с <? $_SESSION['id']=$red['id']; ?> но нестава, защото са много редовете (или може би скрипта не разбира кой ред съм кликнал).

Надявам се да сте ме разбрали и дано да можете да ми помогнете.
Благодаря!
Активен

Tablet: Nokia N900; Maemo 5.
Server: HP; Intel Pentium 4 3.2GHz; 2GB DDR2; Ubuntu Server 9.10.
Laptop: Acer Aspire 5738ZG; Intel Core 2 Duo 2GHz; 3GB DDR3; Nvidia GeForce G105M; Ubuntu 10.10.
Desktop: ASRock ConRoeXFire-eSATA2; Intel Core 2 Duo 1.6GHz; 3GB DDR2; Nvidia GeForce G210; Ubuntu 10.10.

Hapkoc

  • Напреднали
  • *****
  • Публикации: 2117
    • Профил
Q: Как да запазя $id за следващият скрипт?
« Отговор #1 -: Mar 24, 2006, 13:39 »
Ако правилно съм разбрал искаш в take.php да знаеш на кое id е кликнато. Както виждам, предаваш id на take.php като GET параметър, така че в take.php можеш да го вземеш с $_GET['id'].

Ако нещо не съм разбрал моля да поясниш.
Активен

steady

  • Напреднали
  • *****
  • Публикации: 266
  • Distribution: Maemo / Ubuntu
  • Window Manager: Gnome
    • Профил
Q: Как да запазя $id за следващият скрипт?
« Отговор #2 -: Mar 24, 2006, 13:56 »
Точно това искам да направя само, че още не съм предал id на take.php като GET параметър (защото сега чувам за GET функцията), a само посочвам желания път на "<a href>".
Сега ще я разуча GET ... Благодаря ти Hapkoc !

edit:
Между другото какъв е синтаксиса на $_GET...

Примерен код
$id=$_GET['id'];
echo $id or die("нестава");


С това ми изкарва $id=1  '<img'>
Активен

Tablet: Nokia N900; Maemo 5.
Server: HP; Intel Pentium 4 3.2GHz; 2GB DDR2; Ubuntu Server 9.10.
Laptop: Acer Aspire 5738ZG; Intel Core 2 Duo 2GHz; 3GB DDR3; Nvidia GeForce G105M; Ubuntu 10.10.
Desktop: ASRock ConRoeXFire-eSATA2; Intel Core 2 Duo 1.6GHz; 3GB DDR2; Nvidia GeForce G210; Ubuntu 10.10.

Hapkoc

  • Напреднали
  • *****
  • Публикации: 2117
    • Профил
Q: Как да запазя $id за следващият скрипт?
« Отговор #3 -: Mar 24, 2006, 14:43 »
Относно GET: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html

Цитат
още не съм предал id на take.php като GET параметър

Напротив, предал си го, въпреки че сега чуваш за GET параметри.

Иначе странна работа, нещо не стоплям що така изкарва 1...

Можеш ли да пуснеш цялото take.php тук?
Активен

rat

  • Напреднали
  • *****
  • Публикации: 266
    • Профил
Q: Как да запазя $id за следващият скрипт?
« Отговор #4 -: Mar 24, 2006, 16:00 »
.. и аз не стоплям но ми се струва странно това :
echo $id or die("нестава");
echo връща void ...

Ако искаш да провериш за няква стойност можеш да ползваш нещо такова :

$id=intval($_GET['id']);
if (!$id) die ('No such ID''<img'>;
else{
...
}

steady

  • Напреднали
  • *****
  • Публикации: 266
  • Distribution: Maemo / Ubuntu
  • Window Manager: Gnome
    • Профил
Q: Как да запазя $id за следващият скрипт?
« Отговор #5 -: Mar 24, 2006, 17:41 »
Цитат (rat @ Март 24 2006,17:00)
Ако искаш да провериш за няква стойност можеш да ползваш нещо такова :

$id=intval($_GET['id']);
if (!$id) die ('No such ID''<img'>;
else{ echo $id }

Готово ! Получи се  '<img'>
Незнам как скрипта разбира на кое ID кликвам, но стана.
Сега като насисна на съответния линк ми искарва точното $id ,
и => ще мога да "SELECT"-ирам точните данни които ми трябат WHERE id=$id.
Благодаря ви много хора. Страхотни сте !
Активен

Tablet: Nokia N900; Maemo 5.
Server: HP; Intel Pentium 4 3.2GHz; 2GB DDR2; Ubuntu Server 9.10.
Laptop: Acer Aspire 5738ZG; Intel Core 2 Duo 2GHz; 3GB DDR3; Nvidia GeForce G105M; Ubuntu 10.10.
Desktop: ASRock ConRoeXFire-eSATA2; Intel Core 2 Duo 1.6GHz; 3GB DDR2; Nvidia GeForce G210; Ubuntu 10.10.

Hapkoc

  • Напреднали
  • *****
  • Публикации: 2117
    • Профил
Q: Как да запазя $id за следващият скрипт?
« Отговор #6 -: Mar 25, 2006, 14:43 »
Цитат
Незнам как скрипта разбира на кое ID кликвам, но стана.


<a href="take.php?id=123">blabla</a>
                             ^^^^^--- това се нарича предаване на параметри, чрез HTTP GET метода или още през querystring-а

В асоциативния масив $_GET в PHP се събират всичко параметри от заявката, които можеш да достъпиш по име. Т.е. ако връзката ти е например:

<a href="take.php?id=123&param1=value1&param2=value2">blabla</a>

тогава масива $_GET ще съдържа следното:

$_GET = array(
  'id' => '123',
  'param1' => 'value1',
  'param2' => 'value2'
);

Имаш аналогичен масив $_POST, който съдържа данните, които идват от HTML форми.

айде, че много се разприказвах
Активен

karaman

  • Напреднали
  • *****
  • Публикации: 351
    • Профил
    • WWW
Q: Как да запазя $id за следващият скрипт?
« Отговор #7 -: Mar 25, 2006, 15:06 »
за HTML формите трябва да имате
<form ... method="POST" .. >
иначе ще работи като GET '<img'>

  • Гост
Q: Как да запазя $id за следващият скрипт?
« Отговор #8 -: Mar 25, 2006, 15:53 »
session_start();
Активен