一切都乱了:Php-MySQL

一切都乱了:Php-MySQL,php,mysql,html-table,Php,Mysql,Html Table,我正在尝试创建一个php脚本,该脚本从MySQL数据库获取值,显示一个带有来自数组的时间戳的头,以及一个带有名为“working_ra”的值的子头,该值位于这些类别下面。两个类别下的值都显示在表中。我正在对查询中工作的值进行排序,这样我可以运行while循环,如果它们不相同,则显示下一个工作的值并继续回显值。这是我的密码: foreach ($date as $i) { echo "<pre>"."<h2>".$i."</h2>"."</pre&

我正在尝试创建一个php脚本,该脚本从MySQL数据库获取值,显示一个带有来自数组的时间戳的头,以及一个带有名为“working_ra”的值的子头,该值位于这些类别下面。两个类别下的值都显示在表中。我正在对查询中工作的值进行排序,这样我可以运行while循环,如果它们不相同,则显示下一个工作的值并继续回显值。这是我的密码:

foreach ($date as $i) {
    echo "<pre>"."<h2>".$i."</h2>"."</pre>";
    $result = mysqli_query ($con, "SELECT * FROM Signing WHERE value1 = 'Ings' AND time_stamp = '$i' ORDER BY working_ra");

    $num_results = mysqli_num_rows($result);

    $row = mysqli_fetch_array($result);

    $desk = $row["working_ra"];

    echo "var_desk starting value ","<b>", $desk,"</b>";

    echo "<table border='1'>";
    echo "<tr>";
    echo "<td>", $row["first"],"</td>";
    echo "</tr>";

    while ($row = mysqli_fetch_array($result)) {

        if ((string)$desk != (string)$row["working_ra"]) {
            echo "</table>";

            $desk = $row["working_ra"];

            echo "var_desk next value ","<b>",$desk,"</b>";
            echo "<br />";
            echo "<table border='1'>";
        }

        echo "<tr>";
        echo "<td>", $row["first"],"</td>";
        echo "</tr>";
    }

    $result->free();
}

$con->close(); 
foreach($i日期){
回音“.$i.”;
$result=mysqli_query($con,“从签名中选择*,其中value1='Ings'和time_stamp='i'按工作顺序排列”);
$num_results=mysqli_num_行($result);
$row=mysqli\u fetch\u数组($result);
$desk=$row[“working_ra”];
回显“var_desk起始值”,“”,$desk,”;
回声“;
回声“;
回显“$row[“first”],”;
回声“;
while($row=mysqli\u fetch\u数组($result)){
if((字符串)$desk!=(字符串)$row[“working_ra”]){
回声“;
$desk=$row[“working_ra”];
回显“var_desk下一个值”,“”,$desk,”;
回声“
”; 回声“; } 回声“; 回显“$row[“first”],”; 回声“; } $result->free(); } $con->close();
在第二个“办公桌”名称出现之前,一切都正常。然后,应该具有下一个值的表被转移到下一个日期。以下是页面上显示的内容:

aSFashagh、Jeremy、Jeremy和Johnny都应该在(Phil,2013年1月10日)之下,但被调到下一个日期工作(Phil,2013年1月20日)。zffaA和SDFDSGGSDHJ都应该在(Phil,2013年1月20日)之下,但在(Phil,2013年2月25日)之下。奇怪的是,该方法在没有尝试将所有值放入表中的情况下工作

我的假设是,它可能是表标记结束和开始的顺序,但我已经尝试了大量的方法,仍然无法找出错误所在

编辑

对不起,说起来很混乱。但是我试着把它带到一个所有东西都按照它应该的方式向上移动的地方。其中,“first”的值与其对应的时间戳和工作时间戳相同。例如,MySQL数据库中Johnny的值为working_ra-Phil,time_stamp-2013年1月10日。然而,正如你所看到的,约翰尼不是在下面(菲尔,2013年1月10日),而是在2013年1月20日。问题不在于查询,而在于while循环和表,我就是搞不懂


唯一正确的两个值是Zack和Why,它们的对应值为(working_ra=“Bob”,time_stamp=“2013年1月10日”)

我相信您的问题在于mysql行指针。您已经在while循环之前使用过一次mysqli_fetch_数组,因此将当前mysql行移动到下一行

此代码
mysqli\u data\u seek($result,0)
将重置指针


将它放在while循环之前。

找出了问题所在。当while循环中断时,我需要添加一个“/table”标记

你出毛病了。整个该死的系统都坏了。你想知道真相吗?你想知道真相?!你不能掌握真相!我们将,您正在按日期循环和查询…@bfavaretto我应该能够按日期循环查询,然后针对与该日期对应的每一行,打印出值?我认为这可能可行,但它仍然将相同的值向下移动一行:/