Linux за българи: Форуми

Програмиране => Web development => Темата е започната от: steady в Mar 24, 2006, 13:19



Титла: Q: Как да запазя $id за следващият скрипт?
Публикувано от: steady в Mar 24, 2006, 13:19
Здравейте на всички !
Въпроса ми сигурно е елементарен, но аз забих лошо и моля за помощ.

Ето какво правя:
Генерирам листа ( с редове ) от таблица на 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']; ?> но нестава, защото са много редовете (или може би скрипта не разбира кой ред съм кликнал).

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


Титла: Q: Как да запазя $id за следващият скрипт?
Публикувано от: Hapkoc в Mar 24, 2006, 13:39
Ако правилно съм разбрал искаш в take.php да знаеш на кое id е кликнато. Както виждам, предаваш id на take.php като GET параметър, така че в take.php можеш да го вземеш с $_GET['id'].

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


Титла: Q: Как да запазя $id за следващият скрипт?
Публикувано от: steady в 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  ???


Титла: Q: Как да запазя $id за следващият скрипт?
Публикувано от: Hapkoc в Mar 24, 2006, 14:43
Относно GET: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html

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

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

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

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


Титла: Q: Как да запазя $id за следващият скрипт?
Публикувано от: rat в Mar 24, 2006, 16:00
.. и аз не стоплям но ми се струва странно това :
echo $id or die("нестава");
echo връща void ...

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

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


Титла: Q: Как да запазя $id за следващият скрипт?
Публикувано от: steady в Mar 24, 2006, 17:41
Цитат (rat @ Март 24 2006,17:00)
Ако искаш да провериш за няква стойност можеш да ползваш нещо такова :

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

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


Титла: Q: Как да запазя $id за следващият скрипт?
Публикувано от: Hapkoc в 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 форми.

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


Титла: Q: Как да запазя $id за следващият скрипт?
Публикувано от: karaman в Mar 25, 2006, 15:06
за HTML формите трябва да имате
<form ... method="POST" .. >
иначе ще работи като GET :)


Титла: Q: Как да запазя $id за следващият скрипт?
Публикувано от: в Mar 25, 2006, 15:53
session_start();