<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>
嗨,这是代码,它只显示while循环中的第一个结果,我想要8个结果 我有3个来自MySQL的表和3个查询我尝试了所有可能但没有改变的东西。
任何帮助?
它是PHP 5.4和mysqli类
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>
答案 0 :(得分:0)
您正在执行多个查询,但仅在最后一个SELECT * FROM 'users' where id='$result[userid]'
上进行循环,并且听起来此查询将为您提供单个结果。 (单个用户)
您可以存储每个查询的结果,稍后在一个循环中全部使用它们,也可以连接表格以从单个查询中获取所需的所有数据。