2016-11-09 3 views
1

Итак, у меня есть больше запросов, содержащих значения, полученные из $keywords, которые не появляются, когда я вызывал stmt->fetch(). Мои таблицы имеют некоторую структуру (colums), поэтому я попытался найти ключевые слова (столбец), а затем показать запросы, в которых titlu (столбец) содержит конкретно ключевые слова ($keywords), но не показывает мне ничего, даже если пример, который у меня есть в значении столбца ключевых слов top другие запросы, которые имеют значение ключевых слов колонки топselect stmt-> fetch не показывает запросы после выражения переменной LIKE

$stmt = $con->prepare('SELECT keywords FROM stiinta WHERE link = ? LIMIT 1'); 
$stmt->bind_param('s', $pageid); 
$stmt->execute(); 
$stmt->bind_result($keyword);//variabla pe care o vrei inlocuita prin bind_Result in loc de get_Result 
while ($stmt->fetch()) { 
    $keyword; // faci acelasi lucru fara $row 
} 
$stmt->close(); 

тест

$stmt = $con->prepare("SELECT id, titlu, link, poza, alt, keywords, linknews FROM stiinta WHERE approved='1' AND replace(replace(replace(titlu, ',', ''), '-', ''), ' ', '') LIKE ? UNION SELECT id, titlu, link, poza, alt, keywords, linknews FROM travel WHERE approved='1' AND replace(replace(replace(titlu, ',', ''), '-', ''), ' ', '') LIKE ? UNION SELECT id, titlu, link, poza, alt, keywords, linknews FROM stiinta WHERE approved='1' AND replace(replace(replace(titlu, ',', ''), '-', ''), ' ', '') LIKE ? UNION SELECT id, titlu, link, poza, alt, keywords, linknews FROM natura WHERE approved='1' AND replace(replace(replace(titlu, ',', ''), '-', ''), ' ', '') LIKE ? UNION SELECT id, titlu, link, poza, alt, keywords, linknews FROM lifestyle WHERE approved='1' AND replace(replace(replace(titlu, ',', ''), '-', ''), ' ', '') LIKE ? LIMIT 10"); 
$stmt->bind_param("sssss", $keyword, $keyword, $keyword, $keyword, $keyword); 
$stmt->execute(); 
if(!$stmt->execute()){ 
    echo "a aparut o eroare";} 
$stmt->bind_result($id, $titluKEY, $linkKEY, $pozaKEY, $altKEY, $keywordKEY, $linknewsKEY);//variabla pe care o vrei inlocuita prin bind_Result in loc de get_Result 
$stmt->store_result(); 
if ($stmt->num_rows == 0) {// verificare daca este vrun query 
    echo "You did not have any queries to match.<br>"; 
} else { 
$stiintalist = ''; 
while ($stmt->fetch()) { 
    $id; 
    $titluKEY; 
    $linkKEY; 
    $pozaKEY; 
    $altKEY; 
    $keywordKEY; 
    $linknewsKEY; // faci acelasi lucru fara $row trb sa fie in concordanta cu ceea ce este in SELECT column pentretu teste a href="/page-stiinta.php?pid='.$linkKEY.'" 
    $stiintalist .= '<div id="articol-content-more"><a href="/'.$linknewsKEY.'"><img src="/images/'.$pozaKEY.'.jpg"class="articol-content-more-image" alt="'.$altKEY.'"><p class="articol-content-more-title">'.$titluKEY.'</p></a><span><a class="articol-content-more-afla" href="/'.$linknewsKEY.'">Citește mai multe</a></span><span class="articol-content-more-fl"><div class="fb-share-button" data-layout="button_count" data-href="http://esticurios.ro/'.$linknewsKEY.'"></div></span></div>';   
    } 
} 
$stmt->free_result(); 
$stmt->close(); 

echo $stiintalist; 

это показать мне У вас не было никаких запросов, чтобы соответствовать так, что означает $stmt->num_rows == 0 равна нулю, даже если у меня есть какие-то слова в других запросах ....

ответ

0

Может быть Вами столбец это ввести символ, то попробуйте добавить wildchar

$stmt = $con->prepare(" 

    SELECT id, titlu, link, poza, alt, keywords, linknews 
    FROM stiinta 
    WHERE approved='1' 
     AND replace(replace(replace(titlu, ',', ''), '-', ''), ' ', '') LIKE concat('%', ? , '%') 
    UNION 
    SELECT id, titlu, link, poza, alt, keywords, linknews 
    FROM travel 
    WHERE approved='1' 
     AND replace(replace(replace(titlu, ',', ''), '-', ''), ' ', '') LIKE concat('%', ? , '%') 
    UNION 
    SELECT id, titlu, link, poza, alt, keywords, linknews 
    FROM stiinta 
    WHERE approved='1' 
     AND replace(replace(replace(titlu, ',', ''), '-', ''), ' ', '') LIKE concat('%', ? , '%') 
    UNION 
    SELECT id, titlu, link, poza, alt, keywords, linknews 
    FROM natura 
    WHERE approved='1' 
     AND replace(replace(replace(titlu, ',', ''), '-', ''), ' ', '') LIKE concat('%', ? , '%') 
    UNION 
    SELECT id, titlu, link, poza, alt, keywords, linknews 
    FROM lifestyle 
    WHERE approved='1' 
     AND replace(replace(replace(titlu, ',', ''), '-', ''), ' ', '') LIKE concat('%', ? , '%') 
    LIMIT 10 
    "); 
+0

Didnot показать мне какие-либо результаты .. дает мне условие эха '$ stmt-> num_rows == 0' so значит somethings i Missed – Stefan

+0

Попробуйте только выбрать с SQL ide и убедитесь, что ваш запрос верен. в конечном итоге показать правильный образец данных и ожидаемый результат – scaisEdge

+0

Я пытаюсь использовать только «SELECT id, titlu, link, poza, alt, keywords, linknews FROM stiinta WHERE approved = '1' И заменить (заменить (заменить (заменить , ',', ''), '-', ''), '', '') LIKE concat ('%',? , '%') ', но такая же проблема ... – Stefan

0

Поскольку ваша $pageid вероятно целое (?), вы могли бы попытаться изменить вторую строку в

$stmt->bind_param('i', $pageid); 
+0

ok Я сделал это, спасибо, но не устранил проблему ... – Stefan

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

  • Нет связанных вопросов^_^