2014-09-02 2 views
0

У меня есть база данных mysql, которая используется скриптом php для отображения данных ... проблема, которая у меня есть, при каждых случайных появлениях она пропускает результаты, и я не вижу шаблон чтобы установить, почему это возможно ...отсутствующих данных из базы данных mysql

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

вот моя начальная страница поиска

<?php 
include 'connect.php'; 

//set variable 
$option = ''; 

// Get the county names from database - no duplicates - Order A-Z 
$query = "SELECT DISTINCT tradingCounty FROM offers ORDER BY tradingCounty ASC"; 

// execute the query, $result will hold all of the Counties in an array 
$result = mysqli_query($con,$query); 


while($row = mysqli_fetch_array($result)) { 
    $option .="<option>" . $row['tradingCounty'] . "</option>"; 
} 




echo "<html xmlns='http://www.w3.org/1999/xhtml'>"; 
echo "<title>HSB - Latest Offers</title>"; 
echo "<style type='text/css'>; 
body { 
    background-color: #FFF; 
} 
#wrapper { 
    background-color: #FFF; 
    height: auto; 
    width: 1000px; 
    margin-right: auto; 
    margin-left: auto; 
    font-family: 'Trebuchet MS', Arial, Helvetica, sans-serif; 
} 
</style> 
</head> 

<body> 
<div id='wrapper'> 
    <p><img src='images/header.jpg' width='400' height='100' alt='header' /></p> 
    <HR/> 
    Select an area from the menu below to view any offers in that area. 
    <form id='filter' name='filter' method='post' action='resultssimple.php'> 
     <p><label>County</label></p> 
     <select name='result' id='result'>' . $option . '</select> 
     <input name='' type='submit' /> 
     </form> 
</div> 
</body> 
</html>"; 



?> 

и вот моя страница результатов

<? 
include 'connect.php'; 

//Get the details from previous page 
$SelectedCounty = $_POST["result"]; 

// Select offers linked to selected county from form 
$result = mysqli_query($con,"SELECT * FROM offers WHERE tradingCounty ='" . $SelectedCounty . "'ORDER BY categoryIdName ASC;"); 

// PREVIOUS ATTEMPTS - ALL WRONG - GGGGRRRRRRRRRRRR !!!!!!!! 
//------------------------------------------------------------ 
//$result = mysqli_query($con,"SELECT * FROM offers WHERE tradingCounty LIKE" . $SelectedCounty); 
//$result = mysql_query("SELECT * FROM pdetails WHERE uid='" . $inputname . "';"); 
//"SELECT * FROM `offers` WHERE `tradingCounty` LIKE 
//$result = mysqli_query($con,"SELECT * FROM offers;"); 
//$result = mysql_query("SELECT * FROM pdetails WHERE uid='" . $inputname . "';"); 
//$result = mysqli_query("SELECT * FROM offers WHERE tradingCounty=" . $SelectedCounty); 


//check to see if results is set - error if not. 
if(!$result) 
{ 
    die("<p>Error in listing tables: ". mysql_error()."</p>"); 
} 

//Show all records for selected county 
echo ("<p><h2>Showing Latest Offers In : " . $SelectedCounty . "</h2></p>"); 
echo ("<p><a href='offers.php' target='_self'>back to search menu</a></p>"); 

/* 
echo ("<table border='1'>"); 
echo ("<tr>"); 
echo ("<td>ID</td><td>Category</td><td>Business Name</td><td>Business Address</td><td>Address2</td><td>Address3</td><td>Town</td><td>County</td><td>Post Code</td><td>Telephone</td><td>URL</td><td>Email</td><td>Discount/Special Offer</td><td>valid from</td>"); 
*/ 

while($row = mysqli_fetch_row($result)) 
{ 
    echo ("<div style=' background-color: #EFF5FF; color: #06C; padding: 5px; float: left; border: 1px dotted #06C; margin: 10px; width: 300px; height: 300px; text-align: center; >"); 
    // echo ("" . $row[0] . ""); 
    // echo ("</br>"); 
    echo ("<strong>" . $row[1] . "</strong>"); 
    echo ("<hr/>"); 
    // echo ("</br>"); 
    echo ("" . $row[2] . ""); 
    echo ("</br>"); 
    echo ("" . $row[3] . ""); 
    echo ("</br>"); 
    // echo ("" . $row[4] . ""); 
    // echo ("</br>"); 
    // echo ("" . $row[5] . ""); 
    // echo ("</br>"); 
    echo ("" . $row[6] . ""); 
    echo ("</br>"); 
    echo ("" . $row[7] . ""); 
    echo ("</br>"); 
    echo ("" . $row[8] . ""); 
    echo ("</br>"); 
    echo ("" . $row[9] . ""); 
    echo ("</br>"); 
    // echo ("" . $row[10] . ""); 
    // echo ("</br>"); 
    echo ("" . $row[11] . ""); 
    echo ("</br>"); 
    echo ("<hr/>"); 
    echo ("<strong>" . $row[12] . "</strong>"); 
    echo ("</br>"); 
    echo ("</div>"); 

/* echo("<tr>"); 
    echo("<td>" . $row[0] . "</td>" . "<td>" . $row[1] . "</td>" . "<td>" . $row[2] . "</td>" . "<td>" . $row[3] . "</td>" . "<td>" . $row[4] . "</td>" . "<td>" . $row[5] . "</td>" . "<td>" . $row[6] . "</td>" . "<td>" . $row[7] . "</td>" . "<td>" . $row[8] . "</td>" . "<td>" . $row[9] . "</td>" . "<td>" . $row[10] . "</td>" . "<td>" . $row[11] . "</td>" . "<td>" . $row[12] . "</td>" . "<td>" . $row[13] . "</td>"); 
    echo("</tr>"); 
*/ 
} 
// echo("</table>"); 
?> 

, что я получаю можно увидеть here

+0

быть немного понятнее ... некоторые результаты отсутствуют ТИП БИЗНЕС, БИЗНЕС ИМЯ и некоторые АДРЕС – sturobinson81

+0

Просто придирки здесь, но и во всех ваших 'заявлений SELECT' Я рекомендую вам явно называть столбцы, которые вы хотите для выбора в отличие от использования 'SELECT * ...'. – kevin628

+0

:) отметил Кевин ... Я думаю, что с любителями/моя точка зрения выберите * было быстрее :), и мне просто пришлось прокомментировать строки, которые я не хотел показывать ... – sturobinson81

ответ

0

ли они отсутствуют или, возможно, они затушевываются неизменными html-символами. Проверьте параметр «Просмотр источника» вашего браузера, чтобы узнать, действительно ли они там. Я бы особенно внимательно наблюдал за символами в данных типа «Меньше чем», которые браузер может ошибаться для открытого HTML-символа.

Вам может понадобиться, чтобы избежать ваш выход, чтобы браузер не пытается сделать его:

echo ("" . htmlspecialchars($row[2]) . ""); 

Кроме того, я хотел бы предложить вам никогда не принимать ввод непосредственно с пользователем, и поместить его в запрос SQL, не избежать это сначала. Вы открываете себя для атак SQL Injection.

Смотрите следующее:

http://php.net/manual/en/mysqli.real-escape-string.php

+0

Привет, Уэс, Может ли внедрить sql из выпадающего меню? извините im довольно новый для php. – sturobinson81

+0

Я просмотрел источник, и недостающие детали там ... почему это происходит? – sturobinson81

+0

Это происходит потому, что браузер видит их как символы HTML. Они содержат <> символы? –

0

Не знаю, если это поможет, но в этой строке:

$result = mysqli_query($con,"SELECT * FROM offers WHERE tradingCounty ='" . $SelectedCounty . "'ORDER BY categoryIdName ASC;"); 

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

Вы также можете хранить все, что было возвращено в массиве, и эхо все, когда вы повторяете его, чтобы увидеть, что он возвращает. Затем, если что-то не хватает, перейдите в свою базу данных и посмотрите на эту строку.

$tempArray = array(); 
while($row = mysqli_fetch_row($result)) { 
    $tempArray = $row; 
} 

foreach($tempArray as $value) { 
    echo $value . '<br>'; 
} 
Смежные вопросы