Я хочу получить содержимое из переменных mysql для использования в php-коде, на самом деле это имя (из игры), url (игры) и alt (игры). URL-адрес изображения и поиск базы данных работают. Я ценю любую помощь в кодировании. Я не знаю, как написать указатель на имя, url и alt.mysql php получение переменных
search_site.php
<link rel="shortcut icon" href="catchamouse3.png">
<link rel="stylesheet" type="text/css" href="homestyles2.css">
<link rel="stylesheet" type="text/css" href="submit.css">
<link rel="stylesheet" type="text/css" href="allflashgames(3).css">
<link rel="stylesheet" type="text/css" href="searchbar.css">
<link rel="stylesheet" type="text/css" href="styles2.css">
<?php
include('func.php');
if(isset($_POST['keywords'])){
$suffix = "";
$keywords = mysql_real_escape_string(htmlentities(trim($_POST['keywords'])));
$errors = array();
if(search_results($keywords) === false){
$errors[] ='<h1>We didn\'t find anything for "'.$keywords.'"</h1>';
}
if(empty($errors)){
$results = search_results($keywords);
$results_num = count($results);
$suffix = ($results_num!=1)?'s':'';
echo '<h1>',$results_num,' item',$suffix,' For "',$keywords,'"</h1>';
foreach($results as $result){
echo '
<span class="overimage">
<a href="$game_url" target="_blank">
<span class="hoverimage">
<span class="hovertext1line-home">',$result['name'],'</span><img class="onlinegameimage-home" src="',
$result['image_url'],'" alt=',$result['alt'],'>
</span>
</a>
</span>
';
}
}
else{
foreach($errors as $error){
echo $error,'<br>';
}
}
}
?>
func.php
<?php
$con = mysql_connect('localhost','root','');
mysql_select_db("my_search_test",$con);
function search_results($keywords){
$returned_results = array();
$where ="";
$keywords = preg_split('/[\s]+/',$keywords);
$total_keywords = count($keywords);
foreach($keywords as $key=>$keyword){
$where .= "`keywords` LIKE '%$keyword%'";
if($key != ($total_keywords -1)){
$where .=" AND ";
}
}
$results = "SELECT name, image_url, game_url, alt FROM search_games WHERE $where";
$results_num = ($results =mysql_query($results))? mysql_num_rows($results):0;
if($results_num === 0){
return false;
}
else{
while($results_row = mysql_fetch_assoc($results)){
$returned_results[] = array(
'image_url' => $results_row['image_url']
);
}
return $returned_results;
}
}
?>
Вы запускаете 'search_results ($ keywords)' здесь дважды. Сначала проверяйте флажок '=== false' и второй в блоке' if (empty ($ errors)). Это избыточно. Сделайте вызов 'search_results ($ keywords)' один раз, сохраните результат и используйте результат там, где это необходимо. – Marcus
** ПРЕДУПРЕЖДЕНИЕ **: Если вы просто изучаете PHP, не изучайте устаревший интерфейс ['mysql_query'] (http://php.net/manual/en/function.mysql-query.php). Это ужасно и было удалено в PHP 7. Замена, такая как [PDO, не трудно учиться] (http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo- for-database-access /) и руководство, подобное [PHP The Right Way] (http://www.phptherightway.com/), помогает объяснить лучшие практики. Использование 'htmlspecialchars' приведет к повреждению пользовательских данных и ** ** не будет использоваться при вставке в базу данных. Вместо этого используйте это, когда вы показываете значения в HTML. – tadman