【问题标题】:php to pick up the specific query information from arrayphp 从数组中获取特定的查询信息
【发布时间】:2013-01-23 14:03:21
【问题描述】:
 <?php

echo "Connecting Database <br>";
$server = 'UKVDEMO03'; //Here you're server
$database = 'smtpFetch';//here the database you want to connect to
$user = 'shoaibsg';//here te user WHO HAS THE RIGHT PERMISSIONS AT THE DATABASE
$pass = '1111111';//and here the user's password
$dsn = "Driver={SQL Server};Server=$server;Database=$database;";
$connect = odbc_connect($dsn, $user, $pass); 
echo "Successfully connected....";

//getting subscribe user detail
$subQuery="select emailAddress, dataSet from userDetail";
$subRes=odbc_exec($connect, $subQuery);
$ix=odbc_num_rows($subRes);
//$newArray[]=$newArray array;
$row[]=array();
$newArrayD[]=$row;
$i=0;
$xc=0;
if($ix>0)
{

    while($row=odbc_fetch_array($subRes))
    {
            $newArrayD[$row['emailAddress']] =$row['emailAddress'];
            $newArrayD[$row['dataSet']] =$row['dataSet'];
    }

}
foreach($newArrayD as $arrayD)
{ $i++; 
echo "<br> -" . $arrayD;
echo "-i increment -" . $i;
}


?>

上面显示下面的输出

-数组 -shoaib@xyz.com -SSCRUS_CS2002 -nick@xyz.com -SSCE_CS2002

现在的问题:如果我只需要在 foreach 循环中显示 emailAddress,它只显示第一个字符(我在下面的 foreach 循环中使用)

echo "<br> -" . $arrayD['emailAddress'];

如上面的输出显示为 - -s -S -n -S

我很困惑,请帮忙

【问题讨论】:

    标签: php sql-server arrays loops foreach


    【解决方案1】:

    您生成数组的代码已关闭。试试这个:

    while ($row=odbc_fetch_array($subRes))
    {
        $newArrayD[$row['dataSet']] = $row['emailAddress'];
        // This would generate for example $newArrayD['SSCRUS_CS2002'] = 'shoaib@xyz.com'
    }
    

    然后,为了显示它们,遍历数组:

    foreach ($newArrayD as $dataset=>$emailaddress)
    {
        echo "- $emailaddress<br />";
    }
    

    编辑 - 将两者保存在单独的数组中:

    $newArrayD = array('dataset' => array(), 'emails' => array());
    
    while ($row=odbc_fetch_array($subRes))
    {
        $newArrayD['dataset'][] = $row['dataSet'];
        $newArrayD['emails'][] = $row['emailAddress'];
    }
    

    遍历电子邮件:

    foreach ($newArrayD['emails'] as $emailaddress)
    {
        // Code you wish to execute
    }
    

    遍历数据集:

    foreach ($newArrayD['dataset'] as $dataset)
    {
        // Code you wish to execute
    }
    

    使用此方法,$newArrayD['dataset'][0] 将是链接到$newArrayD['emails'][0] 等的数据集。

    【讨论】:

    • 感谢更新,实际上我的结果集(emailAddress 和 dataSet)都需要,并且想在第一阶段使用 emailAddress 并在代码中使用后面的数据集进行其他验证。有没有一种方法可以将两者都保留在循环中并使用我想首先从数组中使用它的方法,例如 emailAddress 并使用 dataSet 后者。
    • @ShoaibSuleman 编辑了我的答案。它现在可能更适合您的需求。
    • 我更改了代码中的逻辑,这实际上解决了我遇到的问题。但是非常感谢你,因为这对我很有帮助......你是明星......谢谢
    猜你喜欢
    • 2017-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多