2016-12-22 5 views
1

Я не могу настроить эхо в PHP с помощью css. Независимо от того, что я делаю, это не сработает. Функция php - это панель поиска, которая будет отображать результаты из базы данных mysql. Вот CSS:Не удается создать PHP echo

.php { 
font-family: montserrat, sans-serif; 
font-style: normal; 
font-weight: 200; 
text-align: justify; 
color: rgba(200,200,200,1.00); 
} 

PHP:

<!DOCTYPE html> 
<html> 
<head> 
<link rel="stylesheet" href="style.css" type="text/css"> 
</head> 
<body> 
<form method="GET" action="index.php" id="searchform"> 
<input type="text" name="query" placeholder="Enter keyword..."> 
<input style="width:30%;height:24px;" type="submit" name="submit" value="Search"> 
</form> 
<?php 

$hostname = "localhost"; 
$username = "user123"; 
$password = "pass123"; 

mysql_connect($hostname, $username, $password); 
mysql_select_db("tehdatabase") or die(mysql_error()); 

$query = $_GET['query']; 
// gets value sent over search form 

$min_length = 1; 
// you can set minimum length of the query if you want 

if(strlen($query) >= $min_length){ // if query length is more or equal minimum length then 

    $query = htmlspecialchars($query); 
    // changes characters used in html to their equivalents, for example: < to &gt; 

    $query = mysql_real_escape_string($query); 
    // makes sure nobody uses SQL injection 

    $raw_results = mysql_query("SELECT * FROM env 
     WHERE (`id` LIKE '%".$query."%') OR (`name` LIKE '%".$query."%') OR (`short` LIKE '%".$query."%') OR (`short_withtag` LIKE '%".$query."%')") or die(mysql_error()); 

    // * means that it selects all fields, you can also write: `id`, `title`, `text` 
    // articles is the name of our table 

    // '%$query%' is what we're looking for, % means anything, for example if $query is Hello 
    // it will match "hello", "Hello man", "gogohello", if you want exact match use `title`='$query' 
    // or if you want to match just full word so "gogohello" is out use '% $query %' ...OR ... '$query %' ... OR ... '% $query' 

    if(mysql_num_rows($raw_results) > 0){ // if one or more rows are returned do following 

     while($results = mysql_fetch_array($raw_results)){ 
     // $results = mysql_fetch_array($raw_results) puts data from database into array, while it's valid it does the loop 

      echo "<p><h3>".$results['id']."</h3>".$results['name'].$results['short'].$results['short_withtag']."</p>"; 
      // posts results gotten from database(title and text) you can also show id ($results['id']) 
     } 

    } 
    else{ // if there is no matching rows do following 
     echo "No results"; 
    } 

} 
else{ // if query length is less than minimum 
    echo "Please enter at least one character"; 
} 
?> 
<div class="php"> 
<?php 
echo("$output"); 
?> 
</div> 
</body> 
</html> 

Я нашел в Интернете, и она прекрасно работает, за исключением одной вещи. php класса div, который должен стилизовать вывод, не работает. эхо черное, раз новый римский текст. Как мне обойти это?

+2

Вы не «создаете эхо PHP». Стилизация происходит полностью на стороне клиента. Какой простой минимальный итоговый HTML здесь? – David

+0

Как сказал Дэвид, ваш PHP-код не имеет к этому никакого отношения. Либо все, что он возвращает, переопределяет ваш стиль CSS, или вы что-то упускаете в разметке – TheValyreanGroup

ответ

2

Вы не эхом ничего в блоке div.php. $output никогда не определяется в вашем коде. Вы эхом много раз перед блоком div.php.

Мне кажется, вы хотите определить, или добавить, $output вместо эхо в различных разделах как:

echo "No results"; 

Или просто поставить <div class="php"> до PHP блока, так что эхо-сигналы будут находиться внутри него ,

+0

Отладочный совет для OP: эта проблема была бы * сразу же очевидной при анализе фактического HTML (и видя пустой 'div'). Когда есть проблема с дизайном, * всегда * сначала смотрите на разметку и CSS. – David

+1

Да, или не подавление ошибок, потому что PHP опубликовал бы уведомление о том, что $ output не определено. – Devon