2017-02-09 2 views
0

У меня есть этот

require('checker.php'); 
require('mysql_connect.php'); 

$username = $_GET['username']; 
// add-ons 
$addonid = $_GET['addonid']; 
// --------------------------------------------------------------------------------- 

$query1 = "SELECT * FROM `data_addons` WHERE `username` = ".$username; 
$result = $mysqliconn->query($query1); 

и таблица «data_addons» не будет иметь только только 1 столбец, содержащие те же $ имя пользователя, так что это будет похоже, что на моем столе:

|username|   |addonid| 
test    1 
test    7 
test    8 
dux    1 
etc    etc 

Вы видите? «Тест» будет несколько раз.

Как использовать что-то вроде этого:

if($result->num_rows > 0) { 
    // output data of each row 
    while($row = $result->fetch_assoc()) { 
     if($addonid == $row["addonid"]) { 
      echo "The user have access to the addon!"; 
     } 
    } 
} 

Я не могу использовать код выше, потому что $ строки [ «addonid»] есть много значений, которые являются 1,7,8, но я хочу $ addonid - «7», например.

+0

почему 7 и не 1 или 8 ..? – scaisEdge

+1

** ПРЕДУПРЕЖДЕНИЕ **: при использовании 'mysqli' вы должны использовать [параметризованные запросы] (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php) и [' bind_param'] (http://php.net/manual/en/mysqli-stmt.bind-param.php), чтобы добавить данные пользователя в ваш запрос. ** НЕ используйте ** интерполирование строк или конкатенацию для выполнения этого, потому что вы создали серьезную [SQL-инъекцию] (http://bobby-tables.com/). ** НИКОГДА не ставьте данные '$ _POST' или' $ _GET' непосредственно в запрос, это может быть очень вредно, если кто-то пытается использовать вашу ошибку. – tadman

+0

@scaisEdge - потому что посетитель получит доступ к http://example.com/?user=test&addonid=7, чтобы проверить, есть ли у пользователя 'test' доступ к идентификатору аддона '7' – Jacksweet

ответ

0

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

$query = "SELECT * FROM mytable WHERE Usernames='test' AND Id='7'"; 
+0

Я думал сделать это, я сейчас тестирую. – Jacksweet

+0

Так просто и полезно. Благодаря! – Jacksweet

0

Проверьте, работает ли это для вас.

foreach($result as $key=>$value){ 
      if("addonid" == $key && $value == $addonid) { 
       echo "The user have access to the addon!"; 
      } 
    } 
Смежные вопросы