Php 而循环只显示第一个结果

Php 而循环只显示第一个结果,php,mysql,Php,Mysql,嗨,这是代码,它只显示while循环中的第一个结果,我想要8个结果。 我有3个来自MySQL的表和3个查询,我尝试了所有我能做的事情,但没有任何改变 有什么帮助吗 它是PHP5.4和mysqli类 <div class="row"> <?php require 'config.php'; $query = "SELECT * FROM `posts` ORDER BY `id` DESC LIMIT 8"; $do = mysqli_query($con, $que

嗨,这是代码,它只显示while循环中的第一个结果,我想要8个结果。
我有3个来自MySQL的表和3个查询,我尝试了所有我能做的事情,但没有任何改变

有什么帮助吗

它是PHP5.4和mysqli类

    <div class="row">
<?php 

require 'config.php';
$query = "SELECT * FROM `posts` ORDER BY `id` DESC LIMIT 8";
$do = mysqli_query($con, $query) ;
while ($result = mysqli_fetch_array($do)){
$query="SELECT * FROM `lang` where id='$result[langid]'";
$do=mysqli_query($con,$query);
$lang=mysqli_fetch_array($do);
$query="SELECT * FROM `users` where id='$result[userid]'";
$do=mysqli_query($con,$query);
$user=mysqli_fetch_array($do);
$String=$result['titel'];
$text_length = 30; // طول الحروف المراد ظهورها
if (strlen($String) > $text_length) {
// اذا كان طول النص اكبر من النص المراد ظهورة نفذ التالي
$String = substr($String, 0, 33);
// قص من النص التالي ما بعد الرقم في المتغير الخاص بطول الحروف المراد ظهورها
$String .= " ...";
// اضف إلى النص بعد ارجاعه هذه النقاط
}
?>
<div class="col-md-3" >
<div class="panel  panel-default ">
<!-- Default panel contents -->
<div class="panel-heading" >


<?php 


echo $String;
?>
</div>
<div class="panel-body">
<p><span class="glyphicon glyphicon-user"></span><b>&nbsp;<?php echo $user['username']; ?></b> </p>
<p> <span class="glyphicon glyphicon-folder-open"></span><a href="posts?lang=<?php echo $lang['id']; ?>"><b>&nbsp;<?php echo $lang['name']; ?></b></a></p>
</div>
<a href="show<?php echo $result['id']; ?>"><div class="panel-footer text-center ">
<b>عرض التحدي</b>
</div></a>
</div>
</div>
<?php   } ?>
</div>
Update:现在代码可以工作了


您正在执行多个查询,但仅在最后一个查询上循环,即
从'users'中选择*,其中id='$result[userid]'
,听起来此查询将给您一个结果。(单个用户)


您可以存储每个查询的结果,并在以后的单个循环中使用它们,也可以连接表以从单个查询中获取所需的所有数据。

即使我将其放在一个循环中,对于$lang和$user,添加第二个循环后代码的工作方式也是相同的
Update: now the code works

<div class="row">
<?php 

require 'config.php';
$query = "SELECT * FROM `posts` ORDER BY `id` DESC LIMIT 8";
$do = mysqli_query($con, $query) ;
while ($result = mysqli_fetch_assoc($do)){

$query="SELECT * FROM `lang` where id='$result[langid]'";
$do1=mysqli_query($con,$query);

$query="SELECT * FROM `users` where id='$result[userid]'";
$do2=mysqli_query($con,$query);

$String=$result['titel'];
$text_length = 30; // طول الحروف المراد ظهورها
if (strlen($String) > $text_length) {
// اذا كان طول النص اكبر من النص المراد ظهورة نفذ التالي
$String = substr($String, 0, 33);
// قص من النص التالي ما بعد الرقم في المتغير الخاص بطول الحروف المراد ظهورها
$String .= " ...";
// اضف إلى النص بعد ارجاعه هذه النقاط
}
?>
<div class="col-md-3" >
<div class="panel  panel-default ">
<!-- Default panel contents -->
<div class="panel-heading" >


<?php 

while ( $user=mysqli_fetch_assoc($do2) AND    $lang=mysqli_fetch_assoc($do1) ){
echo $String;
?>
</div>
<div class="panel-body">
<p><span class="glyphicon glyphicon-user"></span><b>&nbsp;<?php echo $user['username']; ?></b> </p>
<p> <span class="glyphicon glyphicon-folder-open"></span><a href="posts?lang=<?php echo $lang['id']; ?>"><b>&nbsp;<?php echo $lang['name']; ?></b></a></p>
</div>
<a href="show<?php echo $result['id']; ?>"><div class="panel-footer text-center ">
<b>عرض التحدي</b>
</div></a>
</div>
</div>
<?php   }} ?>
</div>