使用php以表格格式从mysql垂直打印数据

使用php以表格格式从mysql垂直打印数据,php,mysql,Php,Mysql,好吧,这似乎很难解释,但我现在已经到了极限。我去过那里,做过,但我不能让它工作。就是这样 我有一个名为乘客的表,其中包含以下数据: 我正在尝试选择此表格格式中的以下数据: 使用此代码: <?php require("aacfs.php"); $ac=mysql_query("select distinct fquo_id as 'fquo_id' from passengers where reservno = '0000188'") or die(mysql_error()); ec

好吧,这似乎很难解释,但我现在已经到了极限。我去过那里,做过,但我不能让它工作。就是这样

我有一个名为
乘客
的表,其中包含以下数据:

我正在尝试选择此表格格式中的以下数据:

使用此代码:

<?php
require("aacfs.php");
$ac=mysql_query("select distinct fquo_id as 'fquo_id' from passengers where reservno = '0000188'") or die(mysql_error());
echo "<table><tr>";
while($bd=mysql_fetch_array($ac))
{
    $eg=$bd['fquo_id'];
    $w=mysql_query("select * from passengers where fquo_id = '$eg'") or die(mysql_error());
    $no=1;
    while($x=mysql_fetch_array($w))
    {
        $y=$x['pass_name'];

        echo "<tr><td colspan=2>$no. <input type=text name='pass1_".$no."' value='$y'></td><td>$no. <input type=text name='pass2_".$no."' value='$y'></td></tr>";
        $no++;
    }
}

echo"</tr></table>";

?>

假设我正确理解了您的需求,下面的工作应该会起作用

<?php
...
    $no=1;
    while($x1 = mysql_fetch_assoc($w))
    {
        $y1 = $x1['pass_name'];
        $y2 = "";
        if($x2 = mysql_fetch_assoc($w))
           $y2 = $x2['pass_name'];            

        echo "<tr><td colspan=2>$no. <input type=text name='pass1_" . $no . "' value='" . $y1 . "'></td><td>$no. <input type=text name='pass2_" . $no . "' value='" . $y2 . "'></td></tr>";
        $no++;
    }
...

?>
看看这是否能帮助您,如果这样,您的代码应该更改为:

<?php
require("aacfs.php");
$ac=mysql_query("select distinct fquo_id as 'fquo_id' from passengers where reservno = '0000188'") or die(mysql_error());
echo "<table>";
while($bd=mysql_fetch_array($ac))
{
    $eg=$bd['fquo_id'];
    $w=mysql_query("select * from passengers where fquo_id = '$eg'") or die(mysql_error());

    $n = 2;
    $i = 0;
    while($x=mysql_fetch_array($w))
    {
       $i++;
       if($n % 2 == 0){
        echo  "<tr>";
       }
       $y=$x['pass_name'];

       echo "<td colspan=2>$no. <input type=text name='pass1_".$no."' value='$y'></td>";
       if($n % 2 == $n){
        echo  "</tr>";
       }
       $n++;
    }
}

echo"</table>";

?>
$ac=mysql\u查询(“从reservno='0000188'”的乘客中选择不同的fquo\u id作为'fquo\u id')或死亡(mysql\u error());
而($bd=mysql\u fetch\u数组($ac))
{echo”“;
$eg=$bd['fquo_id'];
$w=mysql\u查询(“从乘客中选择*,其中fquo\u id='$eg')或死亡(mysql\u error());
$no=1;
而($x=mysql\u fetch\u数组($w))
{
$y=$x['pass_name'];
回音“$no.”;
$no++;
}
}

试试这个P

变量
$x1
包含什么查询?我只是用
$x1
替换了
$x
,因为我需要一个
$x2
$x1
$x2
都不包含查询,而是包含一个关联数组,它是查询结果的一行。是的,得到了。但它打印:(第一排)1*空白| | 1。史蒂夫·卡泽(第二排)1*空白| | 1。bella cullenI错误地留下了一个
$x
,现已修复,您应该使用
mysql\u fetch\u assoc
而不是
mysql\u fext\u数组
打印:(第一行)1。克里斯蒂娜·佩里。史蒂夫·卡泽(第二排)1。爱德华·卡伦| 1。bella Cullen请注意,它是通过一个查询完成的,您不需要两个查询:数据有效!谢谢!:)默认情况下,如何为每个现有的不同fquo_id输出8个文本框,如果它们没有任何值,则将其保留为空?示例(基于您的结果):(第1列):1。普拉桑斯,2。测试,3*空白文本框。。。。8. *空白文本框| |(第二列)1。普拉桑斯,2。测试,3。本德拉,4岁*空白文本框。。。8. *空白文本框。请帮帮我。谢谢。有一个变量
$tr\u count
决定您的行数,因此手动将其设为8,即
$tr\u count=8,但如果一个fquo\U ID的数据库中有8个以上的条目怎么办?如果我想通过
$\u POST
保存文本框的值怎么办?我尝试获取
$\u POST['pass1\u']
的值,但它不打印任何内容。文本框各自的名称是什么?谢谢。您将其设置为数组名='pass1[.$no.]],然后尝试打印\u r(pass1);仅打印1列。。1.克里斯蒂娜·佩里,2岁。史蒂夫·卡泽,1岁。爱德华·卡伦,2岁。贝拉·库伦。。
<?php
require("aacfs.php");
$ac         =   mysql_query("SELECT * FROM passengers WHERE reservno = '0000188' ORDER BY fquo_id, pass_id") or die(mysql_error());
$temp_array = array();
while($row  = mysql_fetch_assoc($ac)){
    $temp_array[$row['fquo_id']][] = $row;
}

$td_count   = count($temp_array);
$tr_count   = 1;
$fquo_id    = array();

foreach($temp_array as $key=>$val){
  if($tr_count < count($val)){$tr_count = count($val);}
  $fquo_id[]= $key;
}
$tr_count   = 8; // if you want to display 8 rows;
echo "<table>";
for($i=0; $i<$tr_count; $i++){
    echo "<tr>";
    $no  = $i+1;
    for($j=0; $j<$td_count; $j++){
        echo "<td>";
        if(array_key_exists($i,$temp_array[$fquo_id[$j]])){
            echo $no.". <input type=text name='pass1_".$no."' value='".$temp_array[$fquo_id[$j]][$i]['pass_name']."'>";
        }
        else{
            echo $no.". <input type=text name='pass1_".$no."' value=''>";
        }
        echo "</td>";
    }
    echo "</tr>";
}
echo "</table>";

?>
<?php
require("aacfs.php");
$ac         =   mysql_query("SELECT * FROM passengers WHERE reservno = '0000188' ORDER BY fquo_id, pass_id") or die(mysql_error());
$temp_array = array();
while($row  = mysql_fetch_assoc($ac)){
    $temp_array[$row['fquo_id']][] = $row;
}

$td_count   = count($temp_array);
$tr_count   = 1;
$fquo_id    = array();

foreach($temp_array as $key=>$val){
  if($tr_count < count($val)){$tr_count = count($val);}
  $fquo_id[]= $key;
}
$tr_count   = 8; // if you want to display 8 rows;
echo "<table>";
for($i=0; $i<$tr_count; $i++){
    echo "<tr>";
    $no  = $i+1;
    for($j=0; $j<$td_count; $j++){
        echo "<td>";
        if(array_key_exists($i,$temp_array[$fquo_id[$j]])){
            echo $no.". <input type=text name='pass1_".$no."' value='".$temp_array[$fquo_id[$j]][$i]['pass_name']."'>";
        }
        else{
            echo $no.". <input type=text name='pass1_".$no."' value=''>";
        }
        echo "</td>";
    }
    echo "</tr>";
}
echo "</table>";

?>