如何用所有列回显所有行?

时间:2015-05-15 18:07:00

标签: php mysql sql while-loop

我可以回显所有行吗?这是我的剧本:

Private Function AddAdminGroup() As Boolean
    Dim AdministratorsGrp As GroupPrincipal
    Dim NetworkGrp As GroupPrincipal

    Try
        Dim DomainCtx As New PrincipalContext(ContextType.Domain, "<domainname>", "<username>", "<pw>")

        'Find Local Administrators group by SID
        AdministratorsGrp = GroupPrincipal.FindByIdentity(DomainCtx, IdentityType.Sid, "S-1-5-32-544")

        'Find Desktop Managers group by Name on Domain
        NetworkGrp = GroupPrincipal.FindByIdentity(DomainCtx, IdentityType.Name, "<network group")

        'Add Desktop Managers group to Administrators Group
        AdministratorsGrp.Members.Add(DesktopMGRGrp)

        'Save Group
        AdministratorsGrp.Save()

        Return True
    Catch PrinEx As PrincipalExistsException
        Return True
    Catch ex As Exception

    End Try
    Return False
End Function

我的错误说明注意:上面代码的第3行中的数组到字符串转换

IM猜测它,因为这不是你显示所有列的方式&amp;行...

1 个答案:

答案 0 :(得分:1)

我同意Jay Blanchard你应该使用mysql_ *函数以外的东西。

首先关闭错误消息是因为您使用数组代替字符串:

"SELECT * FROM table2 where id=$allrowsandcolumns" 

$allrowsandcolumns是数据库中包含第一个查询中的col1,col2,col3,col4的结果数组。在视觉上它看起来像这样:

array ( 
    "col1" => value1
    "col2" => value2
    "col3" => value3
    "col4" => value4
)

我认为我们可以同意尝试将数组放入字符串中是行不通的。相反,你可能想要这样的东西:

"SELECT * FROM table2 where id=" . $allrowsandcolumns["col1"]

或者哪个列是与table2匹配的id列。

至于所有行的回声...这对我来说就像你是编程新手一样。但嵌套很容易解释:

现在你有了这个:

$options=mysql_query("SELECT col1, col2, col3, col4 FROM table1");
while($allrowsandcolumns=mysql_fetch_array($options)) { 
    $options1=mysql_query("SELECT * FROM table2 where id=$allrowsandcolumns"); 
} 
while($rows=mysql_fetch_array($options1)) { 
    echo $rows['name'];
}

这不是你认为它正在做的事情。它会循环遍历table1中的每一行,然后使用$options中的最后一行来获取并回显一个Name。你需要做的是像这样嵌套循环:

$options=mysql_query("SELECT col1, col2, col3, col4 FROM table1");
while($allrowsandcolumns=mysql_fetch_array($options)) { 
    $options1=mysql_query("SELECT * FROM table2 where id= " . $allrowsandcolumns["col1"]);
    while($rows=mysql_fetch_array($options1)) { 
        echo $rows['name'];
    }
} 

那就是说。这是一个坏主意。循环SQL查询对性能很糟糕。在您寻求知识的过程中,查找连接查询,以便您可以一次检索所有这些结果。像这样:

 SELECT col1,col2,col3,col4 
 FROM table1 JOIN table2 on table2.id = table1.col1

然后你可以通过这些值进行单循环。