Как получить данные из MySQL в PHP на основе URL? - PullRequest
2 голосов
/ 16 апреля 2011

у меня есть таблица страниц в базе данных mysql с полями 'page_name', 'title', content, 'author'.Я хочу получить его с php, как http://www.domain.com/index.php?page=page_name.Как мне это сделать ?Просьба помочь

Ответы [ 3 ]

4 голосов
/ 16 апреля 2011

Доступ к параметру GET с помощью суперглобального массива $ _GET:

$pagename = $_GET['page'];

Затем напишите запрос для базы данных.Обратите внимание, что вам нужно экранировать все данные, поступающие извне:

$sql = "SELECT * FROM page_table WHERE page_name = '%s' LIMIT 1";
$sql = sprintf(%sql, mysql_real_escape_string($pagename));

Затем выполните запрос и убедитесь, что он работает.

$result = mysql_query($sql);
if(!$result) {
    // error occured
}

Используйте функцию mysql_fetch_assoc для доступаданные:

$data = mysql_fetch_assoc($result);

Теперь вы можете получить доступ ко всем данным в этом ассоциативном массиве:

echo $data["title"]; 
1 голос
/ 16 апреля 2011

Вы можете сделать что-то вроде этого:

<?php
   // get page
   $page_name = $_GET["page"];

   // Do the query
   $q = mysql_query("SELECT * FROM `pages_table` WHERE `page_name` LIKE '$page_name'");
   // loop the get the results
   while($result = mysql_fetch_assoc($q){
       $db_title = $result["title"];
       $db_content = $result["content"];
       $db_author = $result["author"];
   }

   //put the data together and echo
   echo "
      <h1>$db_title</h1>
      <p>$db_content</p>
      <h3>Author: $db_author</h3>
   ";

?>

Не забудьте сначала подключиться к БД!И сделать некоторые проверки на $_GET[] для инъекций sql !!

EDIT Зависит от вашей установки PHP.Если у вас не включены магические кавычки, вы можете сделать что-то вроде $page_nameClean = addslashes($page_name); при выполнении запроса или если вы знаете, что для получения страницы будете использовать только цифры (например: domain.com?page=1232), вы можете выполнить проверку:

if(is_numeric($page_name)){
   // get the page out of the DB
}else{
   // Show an error message
}

Или взгляните на это: избегайте инъекций кода

1 голос
/ 16 апреля 2011
  1. Соединиться с сервером базы данных и выбрать базу данных (например, используя mysql_connect и mysql_select_db )
  2. Создать запрос SQL, используя значения из $_GET array
  3. Отправить запрос в базу данных (например, с помощью mysql_query )
  4. Получить результат (например, с помощью mysql_fetch_array )
  5. Отображение данных из результата (например, с использованием echo )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...