2012-05-16 2 views
1

У меня эта странная ситуация, с которой я столкнулся в первый раз, и учитывая, что мой новый статус в PHP еще более запутан. В запросе ниже слово «спросил» повторяется больше раз, чем нужно. Количество повторений, связанных с повторением, связано с тем, сколько записей он не должен показывать, я думаю.Как предотвратить повторение слов в команде «эхо»?

Код:

$sql = "SELECT DISTINCT 
      allowed_permissions.post_id, 
      client_visit.client_reason, 
      accounts.full_name, 
      client_visit.type 
     from allowed_permissions 
      LEFT JOIN 
      client_visit 
       on allowed_permissions.post_id = client_visit.visit_id 
      LEFT JOIN 
      accounts 
       ON client_visit.system_id = accounts.system_id 
     where  
      allowed_permissions.allowed_to_view = '$uid'"; 

$result = mysql_query($sql); 

$query = mysql_query($sql) or die ("Error: ".mysql_error()); 

if ($result == "") { 
    echo ""; 
} 
echo ""; 

$rows = mysql_num_rows($result); 

if($rows == 0) { 

} elseif($rows > 0) { 
    while($row = mysql_fetch_assoc($query)) { 
    $reason = $row['client_reason']; 
    $person = $row['full_name']; 
    //Here the asked word gets repeated... 
    echo"$reason asked by $person"; 
    } 
} 
+3

У вас есть слово «спросил» в цикле while, так что в чем проблема? – Anas

+1

Покажите нам свой результат и ожидаемый результат. Когда вы запускаете запрос в mysql, он дает ожидаемые результаты? – Jrod

+0

Посмотрите, что отличительный элемент не будет возвращать отдельный набор 'client_reason, full_name', а будет возвращать отдельный набор всех отметок в запросе – Imdad

ответ

1

Что удивительно, что только «спросил» становится повторена ... «спросил» представляется более вероятным. Вы получаете кучу строк, которые не содержат $ reason или $ person, поэтому PHP печатает буквальный текст и оставляет переменные. Если это так, то вы могли бы получить вокруг него, делая что-то вроде этого:

if (! empty($reason) && ! empty($person)) { 
    echo $reason . ' asked by ' . $person; 
} 

Если это фиксирует это, вы все равно должны иметь дело с более серьезной проблемой в запросе. Это явно не совсем верно. Трудно сказать, как вы должны исправить это без дополнительного контекста. Я предполагаю, что вам нужно отключить DISTINCT и реализовать предложение GROUP BY.

+0

Моя ошибка, о которой я имел ввиду. – ariel

+0

Работает как чувак-чувак! благодаря – ariel

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