简体   繁体   English

在表格中显示查询结果

[英]Display query result in a table

I have a MySQL query with over 50 return results.我有一个包含 50 多个返回结果的 MySQL 查询。 Now I need to display the results in a table with 3 rows and 3 columns.现在我需要在一个 3 行 3 列的表格中显示结果。

Something like this:像这样的东西:

<table>
    <tr>
        <td>Content</td>                    
        <td>Content</td>                    
        <td>Content</td>                                        
    </tr>   
    <tr>
        <td>Content</td>                    
        <td>Content</td>                    
        <td>Content</td>                                        
    </tr>   
    <tr>
        <td>Content</td>                    
        <td>Content</td>                    
        <td>Content</td>                                        
    </tr>
</table>

I tried it with PHP like this:我像这样用 PHP 尝试过:

$q = "SELECT name, address, content FROM mytable"; 
$r = mysqli_query($dbc, $q); 

while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) {
    $name   = $row['name'];
    $address = $row['address'];
    $content = $row['content'];

    //Create new output
    $output  = "<p>$name</p>";
    $output .= "<p>$address</p>";
    $output .= "<p>$content</p>";

    //Add output to array
    $mycontent[] = $output;     
}

Then I am printing the content array in my table like this:然后我在我的表中打印内容数组,如下所示:

<tr>
    <td><?php echo $mycontent[0]; ?></td>                   
    <td><?php echo $mycontent[1]; ?></td>                   
    <td><?php echo $mycontent[2]; ?></td>                   
</tr>   
<tr>
    <td><?php echo $mycontent[3]; ?></td>                   
    <td><?php echo $mycontent[4]; ?></td>                   
    <td><?php echo $mycontent[5]; ?></td>                                       
</tr>   
<tr>
    <td><?php echo $mycontent[6]; ?></td>                   
    <td><?php echo $mycontent[7]; ?></td>                   
    <td><?php echo $mycontent[8]; ?></td>                                           
</tr>

Using this code, I can only display 9 contents.使用此代码,我只能显示 9 个内容。 My problem is that I want to display more content.我的问题是我想显示更多内容。 I'm going to use pagination to display contents;我将使用分页来显示内容; something like 0-9, 10-18, 19-27 etc.诸如 0-9、10-18、19-27 等。

NOTE: I can do the pagination part.注意:我可以做分页部分。

I hope someone will give me the right direction for this.我希望有人能给我正确的方向。

Thank you.谢谢你。

try something like:尝试类似:

 echo "<table>";
 while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) {
 $name   = $row['name'];
 $address = $row['address'];
 $content = $row['content'];
 echo "<tr><td>".$name."</td><td>".$address."</td><td>".$content."</td></tr>";
 }
 echo "</table>";

this example will print in table all the result of the query.此示例将在表中打印查询的所有结果。 if you want to limit only to some results, so limit the sql query.如果你只想限制某些结果,那么限制sql查询。 for example:例如:

 $q = "SELECT name, address, content FROM mytable limit 50"; 

to get each content,name, address in TD, and 3 of mycontent(content, name, address) in a TR try this:要获取 TD 中的每个内容、名称、地址以及 TR 中的 3 个 mycontent(内容、名称、地址),请尝试以下操作:

$c= mysql_query("select COUNT(name) from mytable");
$n=mysql_fetch_array($c);
$maxname= $n[0];
$i=0;
$tr=0;
echo "<table>";
while ($tr < $maxname)
{ 
echo "<tr>";
while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC) and $i<$tr) {
$name   = $row['name'];
$address = $row['address'];
$content = $row['content'];
echo "<td>".$name." | ".$address." | ".$content."</td>";
$i++;
}
echo "</tr>";
$tr= $tr+3;
}
echo "</table>";

Try something like this.尝试这样的事情。 It places your values in an easy to use associative array.它将您的值放在一个易于使用的关联数组中。 Then you just loop through.然后你只是循环。

<?php
while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) {
    $values[] = array(
        'name' => $row['name'],
        'address' => $row['address'],
        'content' => $row['content']
    );
}
?>
<table>
<?php
foreach($values as $v){
    echo '
    <tr>
        <td>'.$v['name'].'</td>
        <td>'.$v['address'].'</td>
        <td>'.$v['content'].'</td>
    </tr>
    ';
}
?>
</table>

use a for -loop to iterate your $mycontent -array:使用for循环来迭代你的$mycontent -array:

EDIT: I was made aware that $mycontent is built differently than I first assumed:编辑:我意识到$mycontent的构建方式与我最初假设的不同:

$h = "<table>"; // we are going to build the table in $h

$maxcount = count($mycontent); // get the number of values within the array 

for ($i = 0;$i < $maxcount;$i++) { // counting $i up from 0 to $maxcount -1 ...

   $h.= "<tr><td>{$mycontent[$i]}</td></tr>"; // build row

}

$h.= "</table>"; // close the table
echo $h; // echo it 

---> live demo: http://3v4l.org/g1E1T ---> 现场演示:http: //3v4l.org/g1E1T

You can store in a variable if ur planning to use it in a function or you can just print it.如果您打算在函数中使用它,您可以将其存储在一个变量中,或者您可以直接打印它。 Either way...无论哪种方式...

$q = "SELECT name, address, content FROM mytable"; 
$r = mysqli_query($dbc, $q); 

$str = "<table>";

while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) {
    $str .= "<tr>";
    $str .= "<td>" . $row['name'] . "</td>";
    $str .= "<td>" . $row['address'] . "</td>";
    $str .= "<td>" . $row['content'] . "</td>";
    $str .= "</tr>";
}

$str .= "</table>"

echo $str;

There you go!你去吧!

YOU CAN REFERENCE THIS CODE你可以参考这个代码

             <tbody>
              <!-- <tr>
                <td>Technology</td>
                <td>Professor Abiola</td>
                <td>wetech@school.com</td>
                <td> Plot 2, Oriola road,</td>
                <td>
                  <button type="button" class="btn btn-primary"> Edit</button>
                  <button type="button" class="btn btn-success">Update</button>
                  <button type="button" class="btn btn-danger">Delete</button>
                </td>
              </tr> -->
              <?php 
                while($rows = mysqli_fetch_array($response)){
                 $faculty = $rows['faculty'];
                  $hod = $rows['hod'];
                  $email = $rows['email']; 
                  // $location = $rows['location'];
                echo "<tr>
                        <td>$faculty</td>
                        <td>$hod</td>
                        <td>$email</td>
                        <td>".$rows["location"]."</td>
                        <td>
                         <button type='button' class='btn btn-primary'>Edit</button>
                         <button type='button' class='btn btn-success'>Update</button>
                         <button type='button' class='btn btn-danger'>Delete</button>
                        </td>

                       </tr>";
                }
              
              ?>
              </tbody>
            </table>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM