繁体   English   中英

Foreach循环PHP Mysql检索

[英]Foreach Loop Php Mysql retrieve

我想使用foreach循环检索mysql数据,因为我有10条带费用的员工记录,我想用循环表显示每个员工的姓名和费用。 请建议我如何使用foreach调用此函数

$data = mysql_query("SELECT * FROM employees where dt >= '$from' AND dt <= '$to' ORDER by empname ASC");
while ($result = mysql_fetch_assoc($data))
{

$ta = $result["ta"];
$da = $result["da"];
$petrol = $result["petrol"];
}

我需要这样的报告。

Empname:

Record1 Record2
-----------------
Empname:

Record1 Record2
---------------

请帮忙。

不再支持 mysql_*函数,它们已被正式弃用不再维护 ,以后将被删除 您应该使用PDOMySQLi更新代码,以确保将来项目的功能。


由于您使用的是mysql_* ,所以我希望您在$to$from变量上使用mysql_real_escape_string ,如果它们来自用户输入。

我仍然不确定为什么要使用foreach但是要执行的操作可以通过while循环完成:

$data = mysql_query("SELECT * FROM employees where dt >= '$from' AND dt <= '$to' ORDER by empname ASC");
while($result = mysql_fetch_assoc($data))
{
    $rows[] = $result;
}

print_r($rows);

这是一个使用MySQLi的工作示例:

<?php
$from = $_POST['from'];
$to = $_POST['to'];

if (is_null($from) || is_null($to))
    die('You must fill the from and to fields...');

$db = new mysqli('localhost', 'root', '', 'test_database');
if($db->connect_error)
    die('Connect Error (' . mysqli_connect_errno() . ') '. mysqli_connect_error());

if (!$stmt = $db->prepare("SELECT empname, ta, da, petrol FROM employees WHERE dt >= ? AND dt <= ?"))
    die('Prepare Error: ' . $db->error);

if (!$stmt->bind_param('ss', $from, $to))
    die('Bind Parameters Error ' . $stmt->error);

if (!$stmt->execute())
    die('Select Query Error ' . $stmt->error);

$stmt->bind_result($empname, $ta, $da, $petrol);
$rows = array();
while($stmt->fetch())
{
    $rows[$empname][] = array('ta' => $ta, 'da' => $da, 'petrol' => $petrol);
}
$stmt->close();
$db->close();

foreach ($rows as $empname=>$data)
{
    echo $empname . ':<br /><br />';
    foreach ($data as $result)
    {
        echo $result['ta'] . ' ' . $result['da'] . '<br />';
        echo '-----------------<br />';
        $petrol = $result['petrol'];
    }
    echo '==========================<br />';
}

输出:

Jorge:<br /><br />
12 3<br />
-----------------
1 4<br />
-----------------
2 6<br />
-----------------
3 1<br />
-----------------
33 11<br />
-----------------
==========================<br />
John:<br /><br />
4 3<br />
-----------------
5 6<br />
-----------------
6 8<br />
-----------------
7 9<br />
-----------------
8 10<br />
-----------------
==========================<br />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM