Проблема с результатами поиска MySQL - PullRequest
0 голосов
/ 16 сентября 2011

Все делает вид, что отлично работает, кроме случаев, когда я что-то ищу, я не получаю результатов без ошибок.Я думаю, что моя проблема в моем запросе, но я могу точно определить ее.Я сделал несколько поисков раньше, но связал только 2 таблицы.Теперь, когда я пытаюсь связать 4 таблицы, все стало довольно сложно.Я хотел бы получить разъяснение о том, что мне, возможно, потребуется откорректировать, чтобы устранить эту неразбериху.

    <?php


$search = $_GET['search'];


if (!$search) 
echo "You didn't enter a keyword";
else
{
  echo "<td>You searched for: <strong>$search </strong></td><br><br>";
  mysql_connect('localhost','myuserexample','mypassexample');
  mysql_select_db('spusers');  
  $id=@$_GET['id'];


  $query="
        SELECT
            spusername.id, spusername.firstname, spusername.lastname, spusername.splocation_id,
            sptraining.id, sptraining.trainingtype, sptraining.level,
            splocation.id, splocation.location,
            sprecord.spusername_id, sprecord.sptraining_id

        FROM spusername 
        JOIN sprecord ON spusername.id = sprecord.spusername_id
        JOIN sptraining ON sprecord.sptraining_id = sptraining.trainingtype
        JOIN splocation ON spusername.splocation_id = splocation.location
        WHERE MATCH ( firstname, lastname, trainingtype, level, location, spusername_id, sptraining_id, splocation_id ) 
        AGAINST('%".$search."%' IN BOOLEAN MODE) ORDER BY lastname ASC";

  $result1 = MySQL_query($query);  
  if(!$result1) {  
    echo MySQL_error()."<br>$query<br>";
  }  
  if (MySQL_num_rows($result1) > 0) {
    echo "<table class='sortable' width='750' align='center' border='1' bordercolor='#000000' bgcolor='#000000'
           cellspacing='2' cellpadding='2'><tr><th bgcolor=#999999>
           Employee</th><th bgcolor=#999999>
           Location</th><th bgcolor=#999999>
           Training</th><th bgcolor=#999999>
           Level</a></th><th bgcolor=#999999>
           Date Completed</th></tr bgcolor=#999999>";
    while($result2 = MySQL_fetch_array($result1)) {


      echo  "<td bgcolor=#d4d5ff>{$result2['lastname']},
            {$result2['firstname']}</td><td bgcolor=#d4d5ff>
            {$result2['location']}</td><td bgcolor=#d4d5ff>
            {$result2['trainingtype']}</td><td bgcolor=#d4d5ff>
            {$result2['level']}</td></tr>";
    }
    echo "</table>";
  } else {
    echo "No Results were found in this category.<br>";
  } 
  echo "<br>";
}
?>

1 Ответ

0 голосов
/ 19 сентября 2011

Разрешено ...

вместо

Присоединиться к sptraining ON sprecord.sptraining_id = sptraining.trainingtype JOIN splocation ON spusername.splocation_id = splocation.location

Я ошибочно сказалвместо идентификатора он равнялся типу обучения и расположению.

пример его работы: JOIN sptraining ON sprecord.sptraining_id = sptraining.id JOIN splocation ON spusername.splocation_id = splocation.id

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...