-3

現在3つの投稿がありますが、onclickが1つの投稿のみを警告すると、ループ内の投稿をエコーすると、3つの投稿すべてが表示されますが、警告すると、1つの投稿のみが表示されます。

  $sql=mysqli_query($db3,"SELECT * from user where  id='$id'");
            $num_rows=mysqli_num_rows($sql);

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

                $posts=$row['posts'];
            }


            ?>
        <span onclick=u(<?php echo $posts; ?>)> <?php echo $num_rows  ?> </span>

        <script type="text/javascript">
            function u(posts) {
                alert(posts);
            }
        </script>
        <?php

アップデート

これは、配列アプローチを使用した後の2番目のクエリです。$num行のファンシーボックスを使用して、ファンシーボックス内のすべての投稿を表示すると、ファンシーボックスで1つの結果しか得られません.Plzヘルプ

            $posts[] = $row['posts'];

} foreach ($posts as $af){

                echo "<div id='#modelbox_id'>$af</div>";}

            ?>


            <a href="#modelbox_id" class="modelbox"><?php   echo $num_rows; ?></a>

            <?php
4

2 に答える 2

2

これは、単一の投稿行を$posts変数に割り当て、while ループの反復ごとにその変数を新しい値で上書きしているためです。

代わりに次のようにしてみてください。

$posts = array();
while($row=mysqli_fetch_array($sql)){
    $posts[] = $row['posts'];
}

$posts次に、配列の各値を出力する必要があります。

たとえば、配列を文字列に分解できます。

<span onclick=u(<?php echo implode(', ', $posts); ?>)> ...
于 2012-12-06T06:07:10.197 に答える
0

代わりに、このようなことを試してください

        while($row=mysqli_fetch_array($sql)){
            $posts .= $row['posts'].",";
        }
      ?>
    <span onclick="u('<?php echo $posts; ?>')"> <?php echo $num_rows  ?> </span>

    <script type="text/javascript">
        function u(posts) {
            alert(posts);
        }
    </script>
于 2012-12-06T06:14:10.460 に答える