Возникли проблемы с $ _get в Codeigniter - PullRequest
0 голосов
/ 19 августа 2011

У меня есть страница под названием list.php, которая извлекает из базы данных и показывает все имена студентов с их соответствующими идентификаторами в списке.В сыром php вот как я это сделал -

include("connect.php");
$query = "SELECT * FROM marks ";
$result = mysql_query($query);
$num = mysql_num_rows ($result);
mysql_close();

if ($num > 0 ) {
$i=0;
while ($i < $num) {
$studentname = mysql_result($result,$i,"studentname");
$studentid = mysql_result($result,$i,"studentid");  
?>
And then---

<a href="studentprofile.php?studentid=<? echo $studentid?>"><? echo $studentname ?></a>
<?
++$i; } } else { echo "No Record Found"; }

?>

Когда пользователь нажимает на любое из имен ученика, он переносит пользователя на страницу этого конкретного ученика, и на этой странице у меня появляетсякод вроде следующего -

include("connect.php");
$number = $_GET['studentid'];

$qP = "SELECT * FROM student WHERE studentid = '$number' ";
$rsP = mysql_query($qP);
$row = mysql_fetch_array($rsP);
extract($row);
$studentid = trim($studentid);
$studentname = trim($studentname);
$studentgender = trim($studentgender);

Приведенный выше код работает просто отлично.Теперь, насколько я знаю, $ _get отключен в Codeigniter.Но как сделать то же самое, что я упомянул выше в codeigniter, если $ _get отключен?Я прошел несколько уроков по альтернативному способу использования $ _get, но не очень хорошо их понял.Не могли бы вы помочь?Заранее спасибо:)

1 Ответ

1 голос
/ 19 августа 2011

Использование $_GET не рекомендуется в CI.

Самый простой способ переписать, что файлы не используют $_GET.Просто добавьте method='post' к своим формам и сообщите ajax-запросам на использование сообщений, если они у вас есть.Используйте $_POST в PHP вместо $_GET.

Если вы абсолютно уверены, что вам нужны запросы, передающие параметры, вы должны включить query strings.Вы можете сделать это в файле конфигурации вашего CI:

$config['enable_query_strings'] = TRUE;

Подробнее см. Раздел «Включение строк запроса» .Но включение query strings приведет к неправильной работе Url helper и других помощников, генерирующих URL.

Поэтому я предлагаю использовать POST-запросы.

UPDATE Replace

<a href="studentprofile.php?studentid=<? echo $studentid?>"><? echo $studentname ?></a>

С

<a href="studentprofile.php?studentid=<? echo site_url("yourcontroller/studentprofile/$studentid")?>"><? echo $studentname ?></a>

Метод создания studentprofile:

<?php
class Yourcontroller extends CI_Controller {

public function studentprofile($id)
{
        include("connect.php");
        $number = $id;

        $qP = "SELECT * FROM student WHERE studentid = '$number' ";
        $rsP = mysql_query($qP);
        $row = mysql_fetch_array($rsP);
        extract($row);
        $studentid = trim($studentid);
        $studentname = trim($studentname);
        $studentgender = trim($studentgender);
        // and so on...
}
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...