MySQL加入表列

时间:2015-09-23 10:58:37

标签: php mysql

我是一个非常新的人,我需要一些帮助。

    <?php
        $query = "SELECT owners_dogs.dog_id, dog.name, FROM owners_dogs 
        LEFT JOIN dog ON owners_dogs.dog_id = dog.id WHERE owners_dogs.person_id=$currId ORDER BY dog.name;";
        $result = mysql_query($query) or die('Query failed: ' . mysql_error());
        if (mysql_num_rows($result)>0) {    
            echo "<i>Owner of: </i>";
            echo "<div style='padding-left:25px;padding-bottom:10px;'>";
            while ($line = mysql_fetch_object($result)) {
                echo "<a href='details.php?id=$line->dog_id'>";
                echo "$line->name </a><? if(dog.certfied == '1') echo "CP" ?><br>";
            }
            echo "</div>";
        }
    ?>

我遗漏了一些东西......如果dog.certified = 1,我正试图让脚本回显一些文字

非常感谢任何帮助

4 个答案:

答案 0 :(得分:1)

我发现了两个可能的错误 1.要使用certfied的值进行比较,您应首先在查询中获取该数据 2.您不能在while循环中直接使用dog.certfied,而是使用$line->certfied

试试这个

$query = "SELECT owners_dogs.dog_id, dog.name, dog.certfied, FROM owners_dogs
    LEFT JOIN dog ON owners_dogs.dog_id = dog.id WHERE owners_dogs.person_id=$currId ORDER BY dog.name;";
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
if (mysql_num_rows($result) >0 )
{
    echo "<i>Owner of: </i>";
    echo "<div style='padding-left:25px;padding-bottom:10px;'>";
    while ($line = mysql_fetch_object($result))
    {
        $dog_id = $line->dog_id;
        $name = $line->name;


        echo "<a href='details.php?id=".$dog_id."'>";
        echo $name."</a>";
        if($line->certfied == '1');
        {
            echo "CP"."<br>";
        }

    }
    echo "</div>";
}

答案 1 :(得分:0)

试试这个

    $query = "SELECT owners_dogs.dog_id, dog.name, certified FROM owners_dogs
        LEFT JOIN dog ON owners_dogs.dog_id = dog.id WHERE owners_dogs.person_id=$currId ORDER BY dog.name;";
    $result = mysql_query($query) or die('Query failed: ' . mysql_error());
    if (mysql_num_rows($result) >0 )
    {
        echo "<i>Owner of: </i>";
        echo "<div style='padding-left:25px;padding-bottom:10px;'>";
        while ($line = mysql_fetch_object($result))
        {
            $dog_id = $line->dog_id;
            $name = $line->name;


            echo "<a href='details.php?id=".$dog_id."'>";
            echo $name."</a>";
            if($line->certfied == '1');
            {
                echo "CP"."<br>";
            }

        }
        echo "</div>";
    }

错误是

  1. <? if(dog.certfied == '1')这里没有php执行
  2. 此处
  3. echo "CP" ?><br>";错误
  4. ,
  5. 上删除dog.name, FROM
  6. 在选择查询中缺少表格(certified)。

答案 2 :(得分:0)

查询更改

certified列表

中添加列SELECT
$query = "SELECT owners_dogs.dog_id, dog.name, certified FROM owners_dogs 
    LEFT JOIN dog ON owners_dogs.dog_id = dog.id 
    WHERE owners_dogs.person_id = $currId ORDER BY dog.name;";

如果列certified仅在一个表中,则此查询将起作用。否则,请将表别名添加到列certified

代码更改

echo '<a href="details.php?id=$line->dog_id">'.$line->name.'</a>';
echo ((strcmp($line->certfied, '1') == 0) ? "CP" : "")."<br>";

说明

我们在echo ((strcmp($line->certfied, '1') == 0) ? "CP" : "")."<br>";

中回显了两个字符串
  1. ((strcmp($line->certfied, '1') == 0) ? "CP" : "")
  2. "<br>";
  3. 在第一部分中,我们使用三元运算符,它由三部分组成

    • conditiontrue valuefalse value

    它评估你的给定条件,如果它是真的,那么它返回true value其他明智的false value。现在我们的条件为(strcmp($line->certfied, '1') == 0),即将$line->certified1进行比较。如果两者相等,则strcmp返回0。因此,如果$line->certified == 1 "CP"将以其他方式返回空字符串

    在第二部分中,我们只有一个字符串"<br>"

    两个部分是连接的,结果字符串是echo ed

答案 3 :(得分:0)

第1点:从第一行删除“,”

第2点:删除“;”从dog.name

之后的第二行开始

第3点:第echo "$line->name </a><? if(dog.certfied == '1') echo "CP" ?><br>";行     应该像echo "$line->name </a>"; if($line->certfied == '1') echo "CP <br>";

Here is the code with correction
<?php
    $query = "SELECT owners_dogs.dog_id, dog.name, dog.certfied FROM owners_dogs 
    LEFT JOIN dog ON owners_dogs.dog_id = dog.id WHERE owners_dogs.person_id=$currId ORDER BY dog.name";
    $result = mysql_query($query) or die('Query failed: ' . mysql_error());
    if (mysql_num_rows($result)>0) {    
        echo "<i>Owner of: </i>";
        echo "<div style='padding-left:25px;padding-bottom:10px;'>";
        while ($line = mysql_fetch_object($result)) {
            echo "<a href='details.php?id=$line->dog_id'>";
            echo "$line->name </a>"; if($line->certfied == '1') echo "CP <br>";
        }
        echo "</div>";
    }
?>
相关问题