<div dir="ltr"><div class="gmail_default" style="font-family:courier new,monospace;font-size:small;color:#073763">+1<br></div></div><div class="gmail_extra"><br clear="all"><div><div dir="ltr"><div><font face="courier new,monospace">Savenkova Natalya<br>
</font></div><font face="courier new,monospace"><a href="mailto:wwax555@gmail.com" target="_blank">wwax555@gmail.com</a><br><a href="https://www.facebook.com/name.rnd" target="_blank">https://www.facebook.com/name.rnd</a><br>
<br></font></div></div>
<br><br><div class="gmail_quote">2013/12/18 ksvs <span dir="ltr"><<a href="mailto:ksvs1996@ymail.com" target="_blank">ksvs1996@ymail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div style="font-size:10pt;font-family:HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,Sans-Serif"><div><span>Сделал бы вот так:</span></div><div style="font-style:normal;font-size:13.3333px;background-color:transparent;font-family:HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,Sans-Serif">
<span><br></span></div><div style="font-style:normal;font-size:13.3333px;background-color:transparent;font-family:HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,Sans-Serif"><span>my $sql = posts_sql_view();<br>
<br>my @where = ();<br><br>do { push @where, '<a href="http://ty.id" target="_blank">ty.id</a>=?'; push @params, $type }           if $type;<br>do { push @where, '<a href="http://p.id" target="_blank">p.id</a>=?';  push @params, $id; $limit = 0 } if $id;<br>
<br>$sql .= join ' AND ', @where if @where;<br><br>$sql .= ' ORDER BY id DESC'
 unless $id;<br>$sql .= " LIMIT $limit" if $limit;</span></div><div style="display:block"> <br> <br> <div style="font-family:HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,Sans-Serif;font-size:10pt">
 <div style="font-family:HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,Sans-Serif;font-size:12pt"> <div dir="ltr"> <font face="Arial"> On Wednesday, 18 December 2013, 1:14, Nick Knutov <<a href="mailto:mail@knutov.com" target="_blank">mail@knutov.com</a>> wrote:<br>
 </font> </div>  <div>У меня в коде в некоторых функциях, в зависимости от входных параметров,<br>конструируются разные sql запросы. Пример:<br><br>my $sql = posts_sql_view();<br>$sql .= ' WHERE ' if $type or $id or $main;<br>
do { $sql .= ' <a href="http://ty.id" target="_blank">ty.id</a>=? '; push @params, $type;} if $type;<br>do { $sql .= ' AND <a href="http://p.id" target="_blank">p.id</a>=? LIMIT 1'; push @params, $id } if $id;<br>
$sql
 .= ' ORDER BY id DESC ' unless $id;<br>do { $sql .= ' LIMIT ? ' ; push @params, $limit } if $limit and not $id;<br><br>Мне не нравится как это визуально выглядит. Как бы вы это переписали,<br>чтобы было понятнее и читабельнее?<br>
<br>ps: в некоторых других случаях можно было бы использовать && вместо<br>do{}, но не тут.<br><br>pps: ORM предлагать и обсуждать не надо. Как минимум потому, что запросы<br>сложные и сложность/стоимость проверки того, что генерирует ORM<br>
многократно выше любого профита от ORM в данной ситуации.<span class="HOEnZb"><font color="#888888"><br><br>-- <br>Best Regards,<br>Nick Knutov<br><a href="http://knutov.com/" target="_blank">http://knutov.com</a><br>ICQ:
 272873706<br>Voice: +7-904-84-23-130<br>-- <br>Moscow.pm mailing list<br><a href="mailto:moscow-pm@pm.org" target="_blank">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org/" target="_blank">http://moscow.pm.org</a><br>
<br><br></font></span></div>  </div> </div>  </div> </div></div><br>--<br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
<br></blockquote></div><br></div>