За последние 24 часа нас посетил 17381 программист и 1713 роботов. Сейчас ищут 1510 программистов ...

Многомерный массив

Тема в разделе "Вопросы от блондинок", создана пользователем Andrey5555, 8 сен 2008.

  1. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Их можно убрать еще одним условием........

    PHP:
    1. <?php
    2. while($s = $q->fetch_row())
    3. {
    4. $x++;
    5.  
    6. echo '<td>'.$s[0].'</td>
    7. ';
    8.  
    9. if(($x%3)==0 && $x!=$r)  //если $x делится по модулю без осттка, и если это НЕ ПОСЛЕДНЯЯ ИТЕРАЦИЯ цикла
    10.     echo '</tr><tr>';
    11. }
    12. ?>

    Выводит вот что:

    HTML:
    1. <table><tr><td>1</td>
    2. <td>2</td>
    3. <td>3</td>
    4. </tr><tr><td>4</td>
    5. <td>5</td>
    6. <td>6</td>
    7. </tr><tr><td>8</td>
    8. <td>10</td>
    9. <td>12</td>
    10.  
    11. </tr><tr><td>14</td>
    12. <td>15</td>
    13. <td>16</td>
    14. </tr><tr><td>20</td>
    15. <td>22</td>
    16. <td>28</td>
    17. </tr><tr><td>31</td>
    18. <td>32</td>
    19. <td>33</td>
    20.  
    21. </tr><tr><td>34</td>
    22. <td>35</td>
    23. <td>37</td>
    24. </tr><tr><td>38</td>
    25. <td>39</td>
    26. <td>40</td>
    27. </tr><tr><td>41</td>
    28. <td>42</td>
    29. <td>43</td>
    30.  
    31. </tr><tr><td>44</td>
    32. <td>45</td>
    33. <td>46</td>
    34. </tr><tr><td>47</td>
    35. <td>48</td>
    36. <td>49</td>
    37. </tr><tr><td>50</td>
    38. <td>51</td>
    39. <td>52</td>
    40.  
    41. </tr><table>
     
  2. Andrey5555

    Andrey5555 Активный пользователь

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Ура!!! Все работает. Огромное спасибо admyx. И всем остальным за терпение))
     
  3. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Пожалуйста))
    Но учебничек-то почитайте))

    Кста, парни, кто там пиво обещал?)))))))))))))))
     
  4. Andrey5555

    Andrey5555 Активный пользователь

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Я обещал)) Но из Киева вроде никого)))
     
  5. Andrey5555

    Andrey5555 Активный пользователь

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Еще есть такой вопрос)) Мне надо обработать изображение с помощью функции

    PHP:
    1. <?php
    2. function resize_image ($name)
    3. {
    4. header("Content-type: image/jpeg");
    5. $w = 700;
    6. $quality = 85;
    7. $image = imagecreatefromjpeg ($name);
    8. $width = imagesx ($image);
    9. $height = imagesy ($image);
    10. $ratio = $width/$w;
    11. $new_width = round ($width/$ratio);
    12. $new_height = round ($height/$ratio);
    13. $new_image = imagecreatetruecolor ($new_width, $new_height);
    14. imagecopyresampled ($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
    15. $finish_image = imagejpeg ($new_image, '', $quality);
    16. imagedestroy ($image);
    17. imagedestroy ($new_image);
    18. return $finish_image;
    19. }
    20. ?>
    Где мне ее применить, что бы было все коректно??

    PHP:
    1. <?php
    2. include ("mysql.php");
    3. include ("resize_image.php");
    4. $query = mysql_query ("SELECT id, title, image FROM gallery ORDER BY id");
    5. $rows = mysql_num_rows ($query);
    6. $cols = 2;
    7. echo "<table border='1'>";
    8. echo "<tr>";
    9. $i = 0;
    10. while ($arr = mysql_fetch_array ($query))
    11. {
    12. $i++;
    13. echo "<td><a href=''></a></td>";
    14. if ($i%$cols == 0 and $i != $rows)
    15. echo "</tr><tr>";
    16. }
    17. if ($i%$cols != 0)
    18. echo "<td>&nbsp;</td>";
    19. echo "</tr><table>";
    20. ?>
    Заранее спасибо.
     
  6. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    в любом случае не каждый раз при выводе. Обычно это делается при загрузке картинок на сервер
     
  7. Andrey5555

    Andrey5555 Активный пользователь

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Нет. Мне необходимо это сделать на выводе, так как исходное изображение не должно меняться. Так где же все таки ее применить?)
     
  8. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    тебе это не нужно. При каждой загрузке страницы прогонять эти картинки через функцию — лишняя нагрузка на сервак.
    Храни 2 копии, оригинал, который не должен меняться (а почему, кстати?) и изменённую картинку. И выдавай вторую.
     
  9. Andrey5555

    Andrey5555 Активный пользователь

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Хм.. Тоже вариант. А не должна меняться так как из этого изображения формируеться 2 картинки. Меньше и больше. А как мне тогда быть с именами, если будет оригинал и 2 копии? Хотя если сформировать при загрузке 2 изображения нужного размера, то оригинал не нужен. Но вот как быть с именами?
     
  10. Andrey5555

    Andrey5555 Активный пользователь

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Все работает. Но в ходе работы возникла проблемка. В базе 4 значения.
    PHP:
    1.  
    2. <?php
    3. include ("../include/mysql.php");
    4. $query = mysql_query ("SELECT id, title, image FROM gallery ORDER BY id");
    5. $rows = mysql_num_rows ($query);
    6.   if (!isset ($_GET['page']))
    7.   $page = 1;
    8.   else
    9.   $page = $_GET['page'];
    10.   $page = htmlspecialchars ($page, ENT_QUOTES);
    11.   $page = mysql_real_escape_string($page);
    12.   $page = trim ($page);
    13.   $page = (int)$page;
    14. $cols = 3;
    15. $on_page = 3;
    16. $total_pages = ceil ($rows/$on_page);
    17. $start = ($page - 1) * $on_page;
    18. $query1 = mysql_query ("SELECT id, title, image FROM gallery ORDER BY id LIMIT $start, $on_page");
    19. echo "<table align='center' border='1' class='images'>";
    20. echo "<tr>";
    21. $i = 0;
    22. while (list ($id, $title, $image) = mysql_fetch_array ($query1))
    23. {
    24. $i++;
    25. echo "<td><a href=''>$image</a></td>";
    26. if ($i%$cols == 0 and $i != $rows)
    27. echo "</tr><tr>";
    28. }
    29. if ($i%$cols != 0)
    30. echo "<td>&nbsp;</td>";
    31. echo "</tr></table>";
    32.   //if ($total_pages > 1)
    33.   {
    34.   echo "<br><table align='center' class='pages'><tr><td>";
    35.   for($i = 0; $i < $total_pages; $i++)
    36.   {
    37.   $page = $i+1;
    38.   echo "<a href=?page=$page class='link'>$page</a> ";
    39.   }
    40.   echo "</td></tr></table>";
    41.   }
    42. ?>
    Если на странице 3 значения в 3 столбика, то неправильно формирует таблицу.
    <table align='center' border='1' class='images'><tr><td><a href=''>a/site6.jpg</a></td><td><a href=''>a/site6.jpg</a></td><td><a href=''>a/site6.jpg</a></td></tr><tr></tr></table>

    Если же на странице 4 значения в 3 колонки, то нехватает одной пустой ячейки.
    <table align='center' border='1' class='images'><tr><td><a href=''>a/site6.jpg</a></td><td><a href=''>a/site6.jpg</a></td><td><a href=''>a/site6.jpg</a></td></tr><tr><td><a href=''>a/site6.jpg</a></td><td>&nbsp;</td></tr></table>


    Помогите решить.. Спасибо