2015-03-20 3 views
-4
<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> 

Привет, это код, в котором показан только первый результат во время цикла. Я хочу 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>&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> 

ответ

0

Вы делаете несколько запросов, но зацикливание только на последнем, который SELECT * FROM 'users' where id='$result[userid]', и это звучит как этот запрос будет дать вам один результат. (Один пользователь)

Вы можете либо сохранить результаты каждого запроса, либо использовать их в одном цикле позже, либо объединить свои таблицы, чтобы получить все данные, которые вы хотите получить из одного запроса.

+0

, даже если я, но он внутри одного контура, тот же – user2126111

+0

см. Новый код, это то же самое – user2126111

+0

теперь код работает после добавления второго, а для $ lang и $ user – user2126111

Смежные вопросы