停止php多次返回相同的结果

时间:2014-01-06 14:30:23

标签: php sql

enter image description here我正在尝试使用PHP和SQL显示朋友列表,我的代码部分有效。但是,它在多个场合返回相同的结果,我不想这样做。

SQL:

$sql = 
"SELECT ubuser.usr_firstname, ubuser.usr_lastname, ubuser.usr_DOB,  
ubuser2_1.usr_firstname & \" \" & ubuser2_1.usr_lastname 
AS UBFriend, ubFriendsLink.ub_lnkID1, ubFriendsLink.ub_lnkID2, ubuser.usr_ID, 
ubuser2_1.usr_ID 
FROM ubuser 
AS ubuser2_1 
INNER JOIN (ubFriendsLink INNER JOIN ubuser ON ubFriendsLink.ub_lnkID1 = ubuser.usr_ID)
ON ubuser2_1.usr_ID = ubFriendsLink.ub_lnkID2 
WHERE (((ubFriendsLink.ub_lnkID1) = ".$_SESSION['usr_ID'] .")) 
OR (((ubFriendsLink.ub_lnkID2) = ".$_SESSION['usr_ID'] ."))";

SQL工作(或似乎)。

显示结果的代码:

 <?php
$nrecs=0;
while (!$FriendsRs->EOF) { 
$nrecs++;   
?>
<? php 
    if (.$SESSION['usr_ID'] == ['ub_lnkID1'])
   {
  echo <p>Name: <?php echo $FriendsRs->Fields['UBFriend']->Value ?><br/ >
  <? php 
  else
  echo <p>Name: <?php echo $FriendsRs->Fields['usr_firstname']->Value ?> <?php 
  echo $FriendsRs->Fields['usr_lastname']->Value ?><br />
<?php $FriendsRs->MoveNext() ?>
<?php } ?>

结果:

Name: Carl Smith
Name: Rob Sanderson
Name: Rob Sanderson
Name: Tony Jackson

问题似乎是我得到的是与ub_lnkIDs相关联的名称列表,其中我只想显示各个名称。 (仅供参考,Rob Sanderson不需要,但可以退回一次。)

编辑:

所需的输出是

Name: Carl Smith
Name: Tony Jackson

3 个答案:

答案 0 :(得分:0)

if (.$SESSION['usr_ID'] == ['ub_lnkID1'])

我最好的猜测是单个=导致你的if语句失败

==表示与(并且可以返回false)相同,WHEREAS =将始终返回true! (=用于设置值。)

此外,您在if语句上方打开<?php标记 - 然后在<?php echo中再次打开它们而不关闭它们?

<? php 
if (.$SESSION['usr_ID'] = ['ub_lnkID1'])
{
echo <p>Name: <?php echo //HERE

答案 1 :(得分:0)

根据您所描述的内容,您似乎想从列表中删除重复内容。

我不确定您要对会话检查做什么,但您原来的if / else条件没有意义,所以我根据您的查询将其更改为可能正确的内容。

<?php

   $Arrnames = array();

// Produces array containing all the names in the correct format
while (!$FriendsRs->EOF) 
{
    if ($SESSION['usr_ID'] == $FriendsRs->Fields['ub_lnkID1'])
    {
        array_push($Arrnames, "<p>Name: ".$FriendsRs->Fields['UBFriend']->Value."<br />");
    }
    else
    {
        array_push($Arrnames, "<p>Name: ".$FriendsRs->Fields['usr_firstname']->Value ." ". $FriendsRs->Fields['usr_lastname']->Value . "<br />");
    }
    $FriendsRs->MoveNext();
}

// Removes the duplicates from the array
$ArrnamesDedupped = array_unique($Arrnames);

// Loops the de-duplicated array and echos the result
foreach ($ArrnamesDedupped as $value)
{
  echo $value;
}
?>

答案 2 :(得分:0)

存在多个问题。开盘       php标签内的php标签,if子句没有关闭},html段落(p)打开但未关闭等。

我认为你想做什么(未经测试):

<?php
$nrecs = 0;
while (!$FriendsRs->EOF) {
    $nrecs++;
    if ($SESSION['usr_ID'] !='ub_lnkID1') {
        echo "<p>Name:" . $FriendsRs->Fields['usr_firstname']->Value . " " .    $FriendsRs->Fields['usr_lastname']->Value . "</p>";
    }
    $FriendsRs->MoveNext();
}
?>