Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仅在html表中显示数组的最后一个结果(php、mysql)_Php_Mysql_Html - Fatal编程技术网

仅在html表中显示数组的最后一个结果(php、mysql)

仅在html表中显示数组的最后一个结果(php、mysql),php,mysql,html,Php,Mysql,Html,我有两个阵列,当echo显示出我想要的内容时(查看测试站点)。我试图将它们都放入一个html表中,但它只显示最后一个条目。我已经将整个数组代码放入表中,它运行良好(尽管它们都在同一行中,并且没有分开),但由于它被用于html电子邮件中,我不确定这是否安全?如果这是一个非常简单的修复,我很抱歉,因为我对php/mysql还不太熟悉,所以现在简单的事情似乎是不可能的。我也知道我可以毫无疑问地将这两种阵法结合起来,但我现在正在念一个吻咒,这对我来说是最容易理解的。任何帮助都将不胜感激。谢谢 <?

我有两个阵列,当echo显示出我想要的内容时(查看测试站点)。我试图将它们都放入一个html表中,但它只显示最后一个条目。我已经将整个数组代码放入表中,它运行良好(尽管它们都在同一行中,并且没有分开),但由于它被用于html电子邮件中,我不确定这是否安全?如果这是一个非常简单的修复,我很抱歉,因为我对php/mysql还不太熟悉,所以现在简单的事情似乎是不可能的。我也知道我可以毫无疑问地将这两种阵法结合起来,但我现在正在念一个吻咒,这对我来说是最容易理解的。任何帮助都将不胜感激。谢谢

<?php
    //Get Order Codes
    foreach ($ids as $id) {
    $sqlcode = "SELECT od_code FROM tbl_order_code WHERE pd_id = $id LIMIT 1";
    $result = mysql_query($sqlcode);

    while($row = mysql_fetch_assoc($result)) {
    $codes['codes'] = $row['od_code'];
    } 
    echo "".$codes['codes']."<br />";
    }

    //Get Product Name
    foreach ($ids as $id) {
    $sqlname = "SELECT pd_name FROM tbl_product WHERE pd_id = $id";
    $result = mysql_query($sqlname);

    while($row = mysql_fetch_assoc($result)) {
    $names['names'] = $row['pd_name'];
    } 
    echo "".$names['names']."<br />";
    }   
?>

<table width='550' border='1' align='center' cellpadding='5' cellspacing='1'>
<tr>
<td>Description</td>
<td>Code</td>
</tr>
<tr>
<td> <?php echo "". $names['names'].":"."<br>"?> </td>
<td> <?php echo "". $codes['codes']."<br>"?> </td>
</tr>
</table>

描述
代码
$names['names'][=$row['pd_name'];
或如评论中所建议:

while($row = mysql_fetch_assoc($result)) {
    $names['names'] = $row['pd_name'];
    $codes['codes'] = $row['pd_code'];
?>
<tr>
<td> <?php echo "". $names['names'].":"."<br>"?> </td>
<td> <?php echo "". $codes['codes']."<br>"?> </td>
</tr>
<?php } ?>
while($row=mysql\u fetch\u assoc($result)){
$names['names']=$row['pd_name'];
$code['code']=$row['pd_code'];
?>

请尝试使用PDO与mysql进行交互

您必须在表中的数组中进行迭代,就像在表标记上方进行迭代一样。

您正在使用

foreach($id作为$id)
在foreach中生成要填充的表 或者使用2d数组$name和$code,计算数组大小并循环表结构以计算次数,这是一个更好的解决方案 更改逻辑,以便只使用一个SQL查询并使用联接

SELECT p.pd_name,
       oc.od_code
FROM tbl_product p
LEFT JOIN tbl_order_code oc ON oc.pd_id = p.pd_id
WHERE p.pd_id = $id
因此,使用PDO时,应如下所示:

$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
$stmt = $dbh->prepare("
    SELECT p.pd_name,
           oc.od_code
    FROM tbl_product p
    LEFT JOIN tbl_order_code oc ON oc.pd_id = p.pd_id
    WHERE p.pd_id = ?");

if ($stmt->execute(array($id))) {
  while ($row = $stmt->fetch()) {
      // print out table rows here
  }
}
即时修复(恶心) 这应该可以解决你眼前的问题,但是有一个更好的方法

<?php
foreach ($ids as $id) {
$sqlcode = "SELECT od_code FROM tbl_order_code WHERE pd_id = $id LIMIT 1";
$result = mysql_query($sqlcode);
$codes = array();
while($row = mysql_fetch_assoc($result)) {
    $codes[] = $row['od_code'];
}    


//Get Product Name
foreach ($ids as $id) {
$sqlname = "SELECT pd_name FROM tbl_product WHERE pd_id = $id";
$result = mysql_query($sqlname);
$names = array();
while($row = mysql_fetch_assoc($result)) {
    $names[] = $row['pd_name'];
}
}
?>

<table width='550' border='1' align='center' cellpadding='5' cellspacing='1'>
<tr>
<td>Description</td>
<td>Code</td>
</tr>
<?php foreach($names as $key => $name): ?>
<tr>
<td> <?php echo $name .":"."<br>"?> </td>
<td> <?php echo $codes[$key]."<br>"?> </td>
</tr>
<?php endforeach; ?>
</table>

描述
代码

将表格代码放入while循环中
<?php
foreach ($ids as $id) {
$sqlcode = "SELECT od_code FROM tbl_order_code WHERE pd_id = $id LIMIT 1";
$result = mysql_query($sqlcode);
$codes = array();
while($row = mysql_fetch_assoc($result)) {
    $codes[] = $row['od_code'];
}    


//Get Product Name
foreach ($ids as $id) {
$sqlname = "SELECT pd_name FROM tbl_product WHERE pd_id = $id";
$result = mysql_query($sqlname);
$names = array();
while($row = mysql_fetch_assoc($result)) {
    $names[] = $row['pd_name'];
}
}
?>

<table width='550' border='1' align='center' cellpadding='5' cellspacing='1'>
<tr>
<td>Description</td>
<td>Code</td>
</tr>
<?php foreach($names as $key => $name): ?>
<tr>
<td> <?php echo $name .":"."<br>"?> </td>
<td> <?php echo $codes[$key]."<br>"?> </td>
</tr>
<?php endforeach; ?>
</table>