【问题标题】:Transfer aukciono_id from one table to another将 aukciono_id 从一张表转移到另一张表
【发布时间】:2017-11-24 02:14:45
【问题描述】:

我正在尝试将“aukciono_id”从一张桌子转移到另一张桌子。我试图使用单个while循环来做到这一点,也许它会起作用,但主要问题是当用户悬停在元素类“placiau”上时,另一个表显示不是悬停 strong> 元素的“aukciono_id”。我只是不能使用 while 循环,因为 while 循环会一一遍历查询。我必须以某种方式识别每个<td class="placiau"></td>“aukciono_id”。此外,表格应该出现在 hovered 元素旁边,但我会自己修复它。


<table>
<?php
$aukciono_laimetojai_ir_aukciono_istorija_while = mysql_query("SELECT taw.id AS taw_id,
    tai.aukciono_id AS tai_aukciono_id, taw.user_id AS taw_user_id, taw.win AS taw_win,
    tai.date AS tai_date, taw.date AS taw_date, COALESCE(SUM(tai.bid), 0) AS tai_bid
FROM tb_auction_winners taw JOIN tb_aukciono_istorija tai
ON taw.id = tai.aukciono_id
WHERE tai.user_id = 206 GROUP BY aukciono_id");

$aukciono_istorija1_while = mysql_query("SELECT tab.id, tu.level, tab.user_id, tab.user,
    tab.bid, tab.date, tab.aukciono_id FROM tb_aukciono_istorija tab JOIN tb_users tu
ON tab.user_id = tu.id
WHERE tab.aukciono_id = 47 ORDER BY tab.id DESC");

while ($r1 = mysql_fetch_assoc($aukciono_laimetojai_ir_aukciono_istorija_while)) {
    if ($r1['taw_user_id'] == 206) { ?>
        <tr>
            <td><?php echo $r1['taw_date']; ?></td>
            <td><?php echo $r1['taw_win'] - $r1['tai_bid']; ?> Eur</td>
            <td>0 Eur</td>
            <td class="placiau">Plačiau <?php echo $r1['tai_aukciono_id']; ?></td>
        </tr>
<?php
    } else { ?>
            <tr>
                <td><?php echo $r1['tai_date']; ?></td>
                <td>0 Eur</td>
                <td><?php echo $r1['tai_bid']; ?> Eur</td>
                <td class="placiau">Plačiau <?php echo $r1['tai_aukciono_id']; ?></td>
            </tr>
<?php
    }
}
?>
</table>
<table id="aukciono_apzvalga" style="
width: 69.7%;
left: 632px;
position: absolute;
top: 590px;
z-index: 1;
opacity: 0;
-webkit-transition: opacity .5s ease-out;
transition: opacity .5s ease-out;
display: block;
overflow-y: auto;
max-height: 480px;">
<?php
    while ($r1 = mysql_fetch_assoc($aukciono_istorija1_while)) { ?>
        <tr>
            <td><?php echo $r1['aukciono_id']; ?></td>
        </tr>
<?php } ?>
</table>

<script>
    $('.placiau').hover(function() {
        $('#aukciono_apzvalga').css('opacity', 1);
    }, function() {
        $('#aukciono_apzvalga').css('opacity', 0);
    });
</script>

画出它的样子:

注意:47 只是一个随机数,例如它的样子

例如,当用户悬停“42”时,它应该在另一个表中显示42,而不是在“$aukciono_istorija1_while”查询中显示47。有可能吗?

PS:我知道,我应该使用mysqli_*PDO 而不是mysql_*

【问题讨论】:

  • 您的“悬停”功能代码在哪里?
  • @Mohammad 更新了我的问题。
  • 所以对于每一行你想显示不同的表格?
  • 是的,根据 aukcieno_id。

标签: php html css mysql while-loop


【解决方案1】:

你只有一个循环生成的表,你应该在循环内构建所有可能的表,并给每个表一个与aukciono_id相关的不同id,然后在悬停函数中,获取目标@987654323 @ 并显示与此 id 相关的表。 试试这个:

<?php

$aukciono_laimetojai_ir_aukciono_istorija_while = mysql_query("SELECT taw.id AS taw_id,
    tai.aukciono_id AS tai_aukciono_id, taw.user_id AS taw_user_id, taw.win AS taw_win,
    tai.date AS tai_date, taw.date AS taw_date, COALESCE(SUM(tai.bid), 0) AS tai_bid
    FROM tb_auction_winners taw JOIN tb_aukciono_istorija tai
    ON taw.id = tai.aukciono_id
    WHERE tai.user_id = 206 GROUP BY aukciono_id");

$aukciono_istorija1_while = mysql_query("SELECT tab.id, tu.level, tab.user_id, tab.user,
    tab.bid, tab.date, tab.aukciono_id FROM tb_aukciono_istorija tab JOIN tb_users tu
    ON tab.user_id = tu.id
    WHERE tab.aukciono_id = 47 ORDER BY tab.id DESC");

?>
<table>
<?php
while ($r1 = mysql_fetch_assoc($aukciono_laimetojai_ir_aukciono_istorija_while)) {
    if ($r1['taw_user_id'] == 206) { ?>
    <tr>
        <td><?php echo $r1['taw_date']; ?></td>
        <td><?php echo $r1['taw_win'] - $r1['tai_bid']; ?> Eur</td>
        <td>0 Eur</td>
        <td class="placiau" data-aukciono-id="<?php echo $r1['tai_aukciono_id']; ?>">Plačiau <?php echo $r1['tai_aukciono_id']; ?></td>
    </tr>
<?php
    } else { ?>
    <tr>
        <td><?php echo $r1['tai_date']; ?></td>
        <td>0 Eur</td>
        <td><?php echo $r1['tai_bid']; ?> Eur</td>
        <td class="placiau" data-aukciono-id="<?php echo $r1['tai_aukciono_id']; ?>">Plačiau <?php echo $r1['tai_aukciono_id']; ?></td>
    </tr>
<?php
    }
}
?>
</table>
<?php
    while ($r1 = mysql_fetch_assoc($aukciono_istorija1_while)) { ?>
<table class="aukciono_apzvalga" data-aukciono-id="<?php echo $r1['aukciono_id']; ?>" style="
    width: 69.7%;
    left: 632px;
    position: absolute;
    top: 590px;
    z-index: 1;
    opacity: 0;
    -webkit-transition: opacity .5s ease-out;
    transition: opacity .5s ease-out;
    display: block;
    overflow-y: auto;
    max-height: 480px;">
    <tr>
        <td><?php echo $r1['aukciono_id']; ?></td>
    </tr>
</table>
<?php } ?>
<script>
    $('.placiau').hover(function() {
        var aukciono_id = $(this).attr('data-aukciono-id');
        $('.aukciono_apzvalga[data-aukciono-id="'+aukciono_id+'"]').css('opacity', 1);
    }, function() {
        $('.aukciono_apzvalga').css('opacity', 0);
    });
</script>

【讨论】:

  • 感谢您的回答 :) 它可以工作,但我无法取消悬停,它只显示 1 次。
  • 我修好了 :) 应该是('.aukciono_apzvalga').css('opacity', 0);
  • 另外,您没有在&lt;td class="placiau"&gt;Plačiau &lt;?php echo $r1['tai_aukciono_id']; ?&gt;&lt;/td&gt; 中插入data-aukciono-id="&lt;?php echo $r1['tai_aukciono_id']; ?&gt;,但除此之外一切正常:) 非常感谢!请编辑答案,以便其他用户也可以使用它:)
  • @LukasNaujokaitis 好棒
  • @Mogammad while 循环有些问题。它重复每个表,即使有 20 个表数据,它也只显示一个。 prntscr.com/fmd4hi
【解决方案2】:

问题解决了! :) 这是 while 循环中的错误。

</table>
<?php
while ($r1 = mysql_fetch_assoc($aukciono_istorija1_while)) { ?>
<table class="aukciono_apzvalga" data-aukciono-id="<?php echo $r1['aukciono_id']; ?>" style="
width: 69.7%;
left: 632px;
position: absolute;
top: 590px;
z-index: 1;
opacity: 0;
display: block;
overflow-y: auto;
max-height: 480px;">
    <tr>
        <th colspan="5">Aukciono apžvalga</th>
    </tr>
    <tr>
        <th>Nr.</th>
        <th>Žaidėjas</th>
        <th>Lygis</th>
        <th>Suma</th>
        <th>Laikas</th>
    </tr>
<?php
    $i = mysql_num_rows($aukciono_istorija1_while);
    $apa = $r1['aukciono_id'];
    $aukciono_istorija2_while = mysql_query("SELECT tab.id, tu.level, tab.user_id, tab.user, tab.bid, tab.date, tab.aukciono_id FROM tb_aukciono_istorija tab JOIN tb_users tu ON tab.user_id = tu.id
    WHERE aukciono_id = $apa ORDER BY tab.id DESC LIMIT 10");
    while ($r2 = mysql_fetch_assoc($aukciono_istorija2_while)) { ?>
        <tr>
            <td><?php echo $r2['aukciono_id']; ?></td>
            <td><?php echo $r2['user']; ?></td>
            <td><?php echo $r2['level']; ?> lvl.</td>
            <td><?php echo $r2['bid']; ?> Eur</td>
            <td><?php echo date('H:i:s', strtotime($r2['date'])); ?></td>
        </tr>
<?php
        $i--;
    }
}
?>
</table>

【讨论】:

    猜你喜欢
    • 2017-08-23
    • 2019-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-24
    • 1970-01-01
    相关资源
    最近更新 更多