使用mysqli_num_rows和while循环以及onclick事件

时间:2012-12-05 22:32:52

标签: php jquery mysql-num-rows

我想要回显行数(假设行数= 3)。如果用户点击数字(我从while循环传递1个参数),则数据会被警告 但问题在于

  1. 如果我在循环中回显numrows,那么所有行(相关的3行数据)都会在onclick事件中被警告,但是numrows会显示3次,如333.
  2. 如果我在while循环之外回显,则num行显示一次,但只有一个结果传递给函数。
  3. 我也使用了count(col),但这样只检索了一个结果。

    任何解决方案一次显示行数但是将$ uid(在while循环中)的所有结果传递给onclick函数?.Plz help。

      $sql=mysqli_query($this->db->connection,"SELECT * from user_data where  scid='$scid'");
                $num=mysqli_num_rows($sql);
    
                while($row=mysqli_fetch_array($sql)){
                    $uid=$row['uid'];
    
    
    
                    ?>
    
    
                <span onclick=o4_sameby_scid(<?php echo $uid;  ?>)><?php echo  $num  ?></span>
    
    
    
                <script type="text/javascript">
    
                    function o4_sameby_scid(o4_id) {
                        alert(o4_id);
                    }
    
    
                </script>
    
    
    
                <?php
                }
    

1 个答案:

答案 0 :(得分:1)

我认为您的问题是您在while循环内嵌入了错误的代码部分。这种方法怎么样?:

<?php
$sql=mysqli_query($this->db->connection,"SELECT * from user_data where  scid='$scid'");
$num=mysqli_num_rows($sql);

$allvalues = array();

//  Do all looping before any echoing
while($row=mysqli_fetch_array($sql)){
    // add this row's value to an array of all values
    $allvalues[] = $uid=$row['uid'];
}

// implode this array
$valuesascsv = implode(', ', $allvalues);


//  This is echo'd outside of the loop, because we only need to see it one time
echo '<span onclick=o4_sameby_scid("'. $valuesascsv .'")>'. $num .' results found! </span>';
?>

<script type="text/javascript">
    function o4_sameby_scid(o4_id) {
        alert(o4_id);
    }
</script>

这应输出:

<span onclick=o4_sameby_scid("uid#1, uid#2, uid#3")>3 results found!</span>

<script type="text/javascript">
    function o4_sameby_scid(o4_id) {
        alert(o4_id);
    }
</script>

单击任何行计数应警告所有UID。

这是您正在寻找的行为吗?