2013-07-19 1 views
0

Я пытаюсь подключиться к базе данных и отобразить информацию на странице.Не удалось подключиться/получить результаты из базы данных с помощью PHP

Вот модель

<?php 
// model for the totals of the wreath orders 
require_once("dbconnect.php"); 

// connect to database and check errors 
@ $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); 

$connection_error = $dbc->connect_error; 
if ($connection_error != null) { 
    echo "<p>Error connectiong to database: $connection_error</p>"; 
    exit(); 
} 
?> 

Вот код со страницы, где построить строку и попытаться соединить и отображать данные на экране.

<?php 
require_once('model.php'); 

$query = "SELECT * FROM people WHERE"; 

if (isset ($_POST['fname'])) { 
    $fname = $_POST['fname']; 
    $query = $query . " fname = '" . $fname . "' AND"; 
} 
if (isset ($_POST['lname'])) { 
    $lname = $_POST['lname']; 
    $query = $query . " lname = '" . $lname . "' AND"; 
} 

if (isset ($_POST['age'])) { 
    $age = $_POST['age']; 
    $query = $query . " age = '" . $age . "' AND"; 
} 

if (isset ($_POST['city'])) { 
    $city = $_POST['city']; 
    $query = $query . " city = '" . $city . "' AND"; 
} 

$query = rtrim($query, " AND"); 
include('header.php'); 
?> 
<div id="header"> 
<h1><strong>This is the information you requested</h1></strong> 
</div> 
<div id="main"> 
<?php 
$results = $dbc->query($query); 
$row_count = $result->num_rows; 

for ($i = 0; $i < $row_count; $i++) : 
     $product = $result->fetch_assoc(); 
    echo $product['fname'] . " | " . $product['lname'] . " | " . $product['age'] . " | " . $product['city'] . ' <br />'; 
endfor; 
?> 
</div> 
<?php 
include('footer.php'); 

Здесь ошибка я получаю

Notice: Undefined variable: result in C:\Program Files\wamp\www\testwebpage\Model\getinformation.php on line 34 

Trying to get property of non-object in C:\Program Files\wamp\www\testwebpage\Model\getinformation.php on line 34 

Я могу сказать, что я очень новичок в этом, и я просто не знаю, что было бы неправильно с кодом.

+0

Уязвимости от Lovely [SQL injection attack] (http://bobby-tables.com). Наслаждайтесь наличием вашего сервера pwn3d. И как общий совет: если у вашего кода возникают проблемы, сделайте себе одолжение и STOP, используя ошибку '@' ошибки подавления. PHP может пытаться рассказать вам, что не так, но вы набиваете себе пальцы в уши и продолжаете «lalalalalalal can not hear you». –

+0

Это текстовая страница WAMP. Он не будет жить, и я буду единственным, кто его использует. Единственный человек, который будет вводить SQL в него, был бы мной, и я действительно не думаю, что сделаю это сам. Что касается подавления ошибок @, я понятия не имею, что это значит, можете ли вы уточнить? – jordankoal

ответ

0

Вы используете другое имя переменной. Он должен быть $results вместо $result.

Замените их:

$row_count = $results->num_rows; //line 34 

$product = $results->fetch_assoc(); //line 37 

Это должно исправить ошибки.

+0

Спасибо, что исправил проблему! Если бы я мог дать большие пальцы, я бы;) – jordankoal

+0

@jordankoal: вы можете отметить этот ответ как принятый, нажав на галочку :) –

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