【问题标题】:fpdf two sql queries in while loop doesnt workfpdf while循环中的两个sql查询不起作用
【发布时间】:2017-04-29 11:10:18
【问题描述】:

我得到了一个使用 FPDF 和三个查询的 php 代码。第一个查询有效,但其他查询无效。它们都在一个while循环中。疯狂的是,我有时会得到结果。

代码如下:

while($result3 = mysql_fetch_assoc($query3)) {

    $pdf->Cell(9, 8, $result3['ID'], 1);
    $pdf->Cell(17, 8, $result3['Tag'], 1);
    $pdf->Cell(20, 8, $result3['date'], 1);
    $pdf->Cell(25, 8, $result3['starttime'], 1);
    $pdf->Cell(25, 8, $result3['place'], 1);
    $pdf->Cell(25, 8, $result3['player'], 1);
    $pdf->Cell(35, 8, $result3['ref'], 1);
    $pdf->Cell(15, 8, $result3['art'], 1);
    $pdf->Ln(8);

    $players = $result3['player'];
    $pdf->players =$players;
    $teile = explode(" ", $players);
    $player1 = $teile[0];
    $player2 = $teile[2];
    $pdf->player1 = $player1;
    $pdf->player2 = $player2;

    $pdf->Ln(8);

    $abfrage2 = "(SELECT * 
    FROM  `$liste` 
    WHERE  `$Art` =  '$player1')";
    $ergebnis2 = mysql_query($abfrage2);

    $abfrage3 = "(SELECT * 
    FROM  `$liste` 
    WHERE  `$Art` =  '$player2')";
    $ergebnis3 = mysql_query($abfrage3);

    #PLayer werden ausgegeben
    $pdf->Cell(15, 8, $pdf->player1, 1);
    $pdf->Cell(15, 8, $pdf->player2, 1);
    $pdf->Ln(8);

    while($row2 = mysql_fetch_array($ergebnis2) and $row3 = mysql_fetch_array($ergebnis3)){
        $pdf->Cell(30, 8, $row2['Vorname'], 1);
        $pdf->Cell(30, 8, $row2['Name'], 1);
        $pdf->Cell(30, 8, $row3['Vorname'], 1);
        $pdf->Cell(30, 8, $row3['Name'], 1);
        $pdf->Cell(9, 8, "  ", 1);
        $pdf->Ln(8);
    }


    $pdf->Ln(8);



}

感谢您的帮助。

【问题讨论】:

  • 一起使用的目的是什么?
  • 我想在一个表中使用它
  • 你知道吗,只有两个查询都有数据它才会进去?
  • 是的,我知道我应该始终获取数据
  • 但是如果没有数据怎么办

标签: php sql fpdf


【解决方案1】:

除非我遗漏了什么,否则我建议您将 2 个查询合并为 1 个查询,如下所示:

while($result3 = mysql_fetch_assoc($query3)) {

    $pdf->Cell(9, 8, $result3['ID'], 1);
    $pdf->Cell(17, 8, $result3['Tag'], 1);
    $pdf->Cell(20, 8, $result3['date'], 1);
    $pdf->Cell(25, 8, $result3['starttime'], 1);
    $pdf->Cell(25, 8, $result3['place'], 1);
    $pdf->Cell(25, 8, $result3['player'], 1);
    $pdf->Cell(35, 8, $result3['ref'], 1);
    $pdf->Cell(15, 8, $result3['art'], 1);
    $pdf->Ln(8);

    $players = $result3['player'];
    $pdf->players =$players;
    $teile = explode(" ", $players);
    $player1 = $teile[0];
    $player2 = $teile[2];
    $pdf->player1 = $player1;
    $pdf->player2 = $player2;

    $pdf->Ln(8);

    $abfrage2 = "SELECT 
         L1.`Vorname` as Vorname_L1, 
         L1.`Name` as Name_L1,
         L2.`Vorname` as Vorname_L2, 
         L2.`Name` as Name_L2
         FROM   
        (SELECT *  FROM  `$liste` WHERE  `$Art` =  '$player1') L1,
        (SELECT *  FROM  `$liste` WHERE  `$Art` =  '$player2') L2";
    $ergebnis2 = mysql_query($abfrage2);



    #PLayer werden ausgegeben
    $pdf->Cell(15, 8, $pdf->player1, 1);
    $pdf->Cell(15, 8, $pdf->player2, 1);
    $pdf->Ln(8);

    while($row2 = mysql_fetch_array($ergebnis2)){
        $pdf->Cell(30, 8, $row2['Vorname_L1'], 1);
        $pdf->Cell(30, 8, $row2['Name_L1'], 1);
        $pdf->Cell(30, 8, $row2['Vorname_L2'], 1);
        $pdf->Cell(30, 8, $row2['Name_L2'], 1);
        $pdf->Cell(9, 8, "  ", 1);
        $pdf->Ln(8);
    }


    $pdf->Ln(8);



}

【讨论】:

  • 对 JASON H 的回答没有成功。我有一个这样的表。 1 a 1 b 1 c 1 d 2 a 2 b 2 c 2 d ...
猜你喜欢
  • 2012-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多