2016-02-01 4 views
-2

Я хочу получать 4 строки из моего MySQL и добавить diffrent текста после каждой строкиДобавить между извлекающими рядами

$rel=mysql_query("SELECT * FROM b_topics WHERE MATCH (subject) AGAINST('$title') LIMIT 4"); 
if(mysql_num_rows($rel)<0) { 
    echo "" 
} 
else { 
    echo" <br><strong><div align='center'>Related Topics</div <br>"; 
    while($rel2=mysql_fetch_assoc($rel)) { 
    $gnum=mysql_num_rows($rel2); 
    if($gnum==1) { 
     echo" yes" 
    } 
    if($gnum==2) { 
     echo" no yes" 
    } 
    if($gnum==3) { 
     echo"yes yes" 
    } 
    if($gnum==4) { 
     echo" wmjayes"; 
    } 
    $reltitle=$rel2["subject"]; 
    $relid=$rel2["id"]; 
    echo" <a href='showtopic.php?id= $relid'>$reltitle>$gnum</a><br>"; 
    } 
} 
+1

При отправке кода вставьте его со всеми исходными пробелами/отступом в неповрежденном виде, выделите и используйте кнопку панели инструментов '{}' или 'ctl-k', чтобы отформатировать ее как кодовый блок. –

+0

В чем проблема? Это ваше требование. На самом деле это не вопрос. –

+1

Пожалуйста, задайте новый вопрос, а не измените существующий вопрос. – kojow7

ответ

1

Как mysql_fetch_assoc только когда-либо содержит одну строки, считая число строк не будет работать для вас. Кроме того, mysql_num_rows сообщает вам, сколько строк было возвращено в результатах запроса ($ rel), оно не сообщает вам, в какой строке вы находитесь.

Вместо рассмотреть возможность использования переменного счетчика:

$rel=mysql_query("SELECT * FROM b_topics WHERE MATCH (subject) AGAINST('$title') LIMIT 4"); 
if(mysql_num_rows($rel)<0) { 
    echo "" 
} 
else { 
    $counter = 0; 
    echo "<div style='text-align: center; font-weight: bold; margin: 10px'>Related Topics</div>"; 
    while($rel2=mysql_fetch_assoc($rel)) { 
    $counter++; 

    if($counter==1) 
     echo" yes"; 

    elseif($counter==2) 
     echo "no yes"; 

    elseif($counter==3) 
     echo "yes yes"; 

    elseif($counter==4) 
     echo" wmjayes"; 

    $reltitle=$rel2["subject"]; 
    $relid=$rel2["id"]; 
    echo" <a href='showtopic.php?id= $relid'>$reltitle>$counter</a><br>"; 
    } 
} 

Кроме того, чтобы сделать ваш код немного быстрее рассмотреть возможность использования elseif или else if вместо нескольких if заявлений. Вы также можете посмотреть в инструкции PHP switch для альтернативы.

Кроме того, две вещи, которые вы не должны делать:

1) Не используйте функции MySQL, либо использовать Mysqli или PDO функции. Функции mysql в PHP устарели и больше не должны использоваться.

2) Не используйте <br> для добавления интервалов. Кроме того, элемент элемента блока (например, div) не может отображаться в встроенном элементе (например, сильном). Для обоих из них вместо этого используйте CSS. Я изменил это для использования встроенного CSS, но в конечном итоге вы должны поместить его во внешний файл CSS.

+0

'^ 1' мог бы использовать' switch ($ counter) {....} ' –

+0

@AkshayHegde. Если вы прочтете мой ответ, вы заметите, что я упоминаю использование оператора switch. Я давал ему ответ, который был близок к его собственному коду и предлагал ему альтернативные подходы, которые он мог изучить. – kojow7

+0

извините, я не читал правильно –

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