Php 而循环只显示第一个结果
嗨,这是代码,它只显示while循环中的第一个结果,我想要8个结果。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
我有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> <?php echo $user['username']; ?></b> </p>
<p> <span class="glyphicon glyphicon-folder-open"></span><a href="posts?lang=<?php echo $lang['id']; ?>"><b> <?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> <?php echo $user['username']; ?></b> </p>
<p> <span class="glyphicon glyphicon-folder-open"></span><a href="posts?lang=<?php echo $lang['id']; ?>"><b> <?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>