[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: вывод из базы
59
как вам такой вывод из данных из базы? мне кажется что можно это сделать лучше и проще, но не знаю как...

PHP
if (!isset($_GET[act])) {
    
$nam_mes=mysql_num_rows(mysql_query("SELECT * FROM `messages` WHERE `received_id`='$login_id'"));
    if (
$nam_mes==0) echo '<div id=empty><b>Входящих сообщений нет</b></div>';
    else {
    
$sql ="SELECT * FROM `messages` WHERE `received_id`='$login_id' ORDER BY `id` DESC";
    
$result mysql_query($sql) or die (mysql_error());
    echo 
'<TABLE style="float: left;" cellspacing="0">';
    echo 
'<TBODY><TR class="m_head">';
    echo 
'<TH width="30px">&nbsp;</TH>';
    echo 
'<TH>&nbsp;</TH>';
    echo 
'<TH class="m_title_written">Отправитель</TH>';
    echo 
'<TH>Сообщение</TH>';
    echo 
'<TH>Действия</TH>';
    echo 
'</TR>';
        while(
$row mysql_fetch_array($result))
        {
        
$r=mysql_query("SELECT * FROM `users` WHERE `id`='$row[written_id]'") or die ("Ошибка сервера 551, попробуйте зайти позже.");
        
$f=mysql_fetch_object($r);
        
$user_name_m=$f->name;
        
$user_lastname_m=$f->lastname;
        
$user_photo=$f->photo;
        if (empty(
$user_name_m)) $user_name_m="DELETED";
        if (
$user_photo=='0'$user_photo='/images/question.gif';
        if (
strlen($row[message]) > 300$row[message]=substr($row[message], 0260 ).'...'
        echo 
'<TR id="'.$row[id].'">';
        echo 
' <TD>';
        echo 
'&nbsp;';//echo '  <INPUT type="checkbox">';
        
echo ' </TD>';
        echo 
'<TD class="m_picture">';
        echo 
'  <a href=profile.php?id='.$row[written_id].'>';
        echo 
'   <img width="50px" src="'.$user_photo.'">';
        echo 
'  </A>';
        echo 
' </TD>';
        echo 
' <TD>';
        echo 
'  <DIV>';
        echo 
'   <A href="/profile.php?id='.$row[written_id].'">'.$user_name_m.' '.$user_lastname_m.'</A>';
        echo 
'  </DIV>';
        echo 
'  <DIV class="m_date">'.rec_date($row[date]).'</DIV>';
        echo 
' </TD>';
        echo 
' <TD><DIV>';
        echo 
'  <DIV style="width: 400px; overflow: hidden;"><A href="#'.$row[id].'">'.$row[title].'</A></DIV>';
        echo 
'  <DIV style="width: 400px; overflow: hidden;"><A class="m_body" href="#'.$row[id].'">'.$row[message].'</A></DIV>';
        echo 
' </DIV>';
        echo 
'</TD>';
        echo 
' <TD>';
        echo 
'  <a rel="facebox" href="functions.php?write&id='.$row[written_id].'">Ответить</a><BR><BR>';
        echo 
"  <A href=\"#\" onclick=\"jQuery.facebox('Простите, функция не работает.')\">Удалить</A>";
        echo 
' </TD>';
        echo 
'</TR>';
        }
    echo 
'</TBODY></TABLE>';
        }
    }

и вообще хотелось бы услышать о всех ошибках\недочетах кода.
Спасибо за внимание.



Спустя 43 минуты, 22 секунды (3.11.2009 - 13:53) Kuliev написал(а):
59
Посмотри здесь

Спустя 42 минуты, 34 секунды (3.11.2009 - 14:35) stepan написал(а):
Во первых плохой стиль написания кода
Во вторых
Цитата (59 @ 3.11.2009 - 10:09)
received_id`='$login_id'

это дырка
В третьих вместо множественного вывода echo используй heredoc,
а лучше отдели php от html
По функционалу ни че не скажу, так как не всматривался.

Спустя 2 часа, 42 минуты, 18 секунд (3.11.2009 - 17:18) 59 написал(а):
Kuliev, почитал, спасибо.
stepan, не могли бы вы объяснить как исправить дырку?

а что насчет повторного подключения к бд в цикле?
возможно это как-то избежать?


Спустя 8 минут, 19 секунд (3.11.2009 - 17:26) stepan написал(а):
Цитата (59 @ 3.11.2009 - 14:18)
не могли бы вы объяснить как исправить дырку?

Читай вот здесь sql инъекции
Цитата (59 @ 3.11.2009 - 14:18)
а что насчет повторного подключения к бд в цикле?

лучше это сразу избежать, делай либо запрос в запросе либо делай через join

Спустя 19 часов, 9 минут, 17 секунд (4.11.2009 - 12:35) Guest написал(а):
это конечно раздрожает, но я осмелюсь попросить вас более подробно рассказать о
Цитата (stepan @ 3.11.2009 - 14:26)
либо запрос в запросе либо делай через join

smile.gif
было бы отлично еслиб прямо с примером
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.