2013-11-25 5 views
0

У меня есть SELECT на странице, в которой перечислены поля из базы данных. Одним из этих полей будет ссылка (название компании), которая будет перенаправляться на страницу, содержащую информацию об этом поле. Как передать эти данные? У каждой зарегистрированной компании будет страница. Мне просто нужно понять, как это работает, потому что я пытался использовать POST-методы, и у меня есть тысяча ошибок.Передача значений переменных на другую страницу

Я ценю любую помощь!

Loop и поля

<?php 
include("connect.php"); 

$query = mysql_query("SELECT * FROM table1 ORDER BY nomevaga") or die(mysql_error()); 

while($array = mysql_fetch_array($query)) 
{ 
echo '<div class="field1">'.$array['field1'].'</div> 
<div class="company"><a href="company.php">'.$array['company'].'</a></div>'; 
} 
?> 
+0

Я хотел бы предложить не использовать метод get, потому что он небезопасен. – user7789076

+1

[** Пожалуйста, не используйте 'mysql_ *' функции в новом коде **) (http://bit.ly/phpmsql). Они больше не поддерживаются [и официально устарели] (https://wiki.php.net/rfc/mysql_deprecation). См. [** красное поле **] (http://j.mp/Te9zIL)? Узнайте о [* подготовленных операторах *] (http://j.mp/T9hLWi) и используйте [PDO] (http://php.net/pdo) или [MySQLi] (http://php.net/ mysqli) - [эта статья] (http://j.mp/QEx8IB) поможет вам решить, какой из них. Если вы выберете PDO, [здесь хороший учебник] (http://j.mp/PoWehJ). – h2ooooooo

+0

@alok GET так же «безопасен», как POST/cookies/заголовки или что-либо, что пользователь отправляет на сервер. – h2ooooooo

ответ

0
<?php 
include("connect.php"); 

$query = mysql_query("SELECT * FROM table1 ORDER BY nomevaga") or die(mysql_error()); 

while($array = mysql_fetch_array($query)) 
{ 
echo '<div class="field1">'.$array['field1'].'</div> 
<div class="company"><a href="company.php?name='.$array['company'].'">'.$array['company'].'</a></div>'; 
} 
?> 

company.php 
<?php 
    $companyName='defaultName'; 
    if(isset($_GET['name']&&!empty($_GET['name'])) 
    { 
    $companyName=$_GET['name']; 
    } 
    //handle with $companyName 
?> 
+0

Ошибка анализа: синтаксическая ошибка, неожиданный 'nomevaga' (T_STRING), ожидающий ',' или ';' в *** компании-list.php on line 49 Линия:

Anna

+0

Готово! Теперь мне нужно показать информацию о компании из базы данных. Могу ли я просто использовать простую базу данных SELECT из MySQL? Понятно, что ему нужно распечатать информацию, относящуюся к компании, прошедшей через GET? – Anna

0

Вы можете передать значение через URL и использовать GET:

<?php 
include("connect.php"); 

$query = mysql_query("SELECT * FROM table1 ORDER BY nomevaga") or die(mysql_error()); 

while($array = mysql_fetch_array($query)) { 
    $company = $array['company']; 
    echo "<div class='field1'>".$array['field1']."</div><div class='company'><a href='company.php?comp=$company'>".$company."</a></div>"; 
} 
?> 

Тогда в company.php использования:

$company = $_GET['comp']; 

EDIT: Использование GET и параметры URL могут дать серьезные проблемы с безопасностью, так как любой пользователь может просто заменить значение в URL-адресе своим собственным, и в зависимости от того, используя переменную для загрузки файлов php или помешивания ее в SQL-запрос, это может привести к атакам XSS и SQL Injection.

+0

Я ценю вашу помощь, Рассел! – Anna

Смежные вопросы