PHP ID сайта ID, пожалуйста, помогите! - PullRequest
2 голосов
/ 01 июня 2011

Пожалуйста, кто-нибудь может помочь мне создать мой первый веб-сайт, который извлекает информацию из таблицы MySQL, но пока мне удалось подключиться к базе данных и получить нужную мне информацию.

мой веб-сайт настроен на отображение одной записи из таблицы, что он и делает, однако мне нужен какой-то способ изменения URL-адреса для каждой записи, чтобы я мог связывать страницы с конкретными записями. Я видел на веб-сайтах, таких как Facebook каждый профиль заканчивается уникальным номером. например http://www.facebook.com/profile.php?id=793636552

Я бы хотел, чтобы мой идентификатор основывался на первичном ключе моей таблицы, например. LOCATION_ID

я уже включил свой php-код,

<?php
require "connect.php";
$query =  "select * from location limit 1";
$result = @mysql_query($query, $connection) 
or die ("Unable to perform query<br>$query");
?>

<?php
while($row= mysql_fetch_array($result))
{
?>

<?php echo $row['image'] ?>

<?php
}
?>

Спасибо

Ответы [ 6 ]

3 голосов
/ 01 июня 2011

Используйте $ _GET для извлечения вещей из запроса скрипта (иначе говоря, из командной строки):

<?php

$id = (intval)$_GET['id'];  // force this query parameter to be treated as an integer

$query = "SELECT * FROM location WHERE id={$id};";
$result = mysql_query($query) or die(mysql_error());

if (mysql_num_rows($result) == 0) {
   echo 'nothing found';
} else {
   $row = mysql_fetch_assoc($result);
   echo $row['image'];
}
1 голос
/ 01 июня 2011

Есть много вещей, на которые стоит обратить внимание, если это ваш первый опыт разработки MsSQL.

SQL-инъекция

Кто-то может ВСТАВИТЬ / УДАЛИТЬ и т. Д., Используя ваш идентификатор из вашего URL (будьте осторожны! Очистите свой ввод)

Утечка данных

Кто-то может запросить id = 1234924, а вы ожидаете id = 12134 (поэтому могут быть показаны некоторые конфиденциальные данные и т. Д .;).

Используйте легкий каркас

Если вы еще не смотрели раньше, я бы предложил что-то вроде фреймворка ( CodeIgniter или CakePHP), вызовы mysql, соединения, проверки - все это стандартный код (всегда должен их делать). Лучше всего сэкономить время и заняться созданием приложения, а не изобретать велосипед.

0 голосов
/ 01 июня 2011

переменных можно легко извлечь из URL:

www.site.com / index.php? Id = 12345

мы можем получить доступ к номеру после id с помощью $ _GET ['id ']

echo $_GET['id'];

выводит:

12345

, поэтому, если у вас есть список записей (или изображений, в вашем случае), вы можете ссылаться на них еще проще:

$query = mysql_query(...);
$numrows = mysql_num_rows($query);
for ($num=0;$num<=$numrows;$num++) {
    $array = mysql_fetch_array($query);
    echo "<a href=\"./index.php?id=". $row['id'] ."\" />Image #". $row['id'] ."</a>";
}

, который будет отображать все ваши записи следующим образом:

Image #1 (links to: http://www.site.com/index.php?id=1)
Image #2 (links to: http://www.site.com/index.php?id=2)
Image #3 (links to: http://www.site.com/index.php?id=3)
...
0 голосов
/ 01 июня 2011

То, что вы ищете, это строка запроса или get variables. Вы можете получить доступ к переменной get через php с помощью $_GET['name']. Например: http://www.facebook.com/profile.php?id=793636552 все после ? является строкой запроса. Имя переменной id, поэтому для доступа к ней через ваш php вы должны использовать $_GET['id']. Вы можете построить на них это & между переменными. Например: http://www.facebook.com/profile.php?id=793636552&photo=12345 И вот мы имеем $_GET['id'] и $_GET['photo'].

0 голосов
/ 01 июня 2011

Вам потребуется создать ссылку на ту же (или новую страницу) с URL-адресом, который вы хотите, а затем логику, чтобы проверить параметр для извлечения определенного изображения ...

, если выПеречислив все из них, вы могли бы:

echo "<a href=samepage.php?id=" . $row['location_id'] . ">" . $row['name'] . "</a>"

Это сделало бы ссылку .. теперь, когда они щелкают по ней, в samepage.php вы захотите ее найти:

if (isset($_GET['id']) && is_numeric($_GET['id'])) {
   //query the db and pull that image..
}
0 голосов
/ 01 июня 2011

После того, как вы выбрали запись из базы данных, вы можете перенаправить пользователя на другой URL-адрес, используя функцию header(). Пример:

header('Location: <a href="http://yoursite.com/page.php?id=123" rel="nofollow">http://yoursite.com/page.php?id=123</a>');

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...