За последние 24 часа нас посетили 17434 программиста и 1720 роботов. Сейчас ищут 1517 программистов ...

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

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

  1. Andrey5555

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

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Нужна помощь.
    PHP:
    1. <?php
    2. include ("mysql.php");
    3. $query = mysql_query ("SELECT image FROM gallery ORDER BY id");
    4. $rows = mysql_num_rows ($query);
    5. $cols = 2;
    6. echo "<table border='1'>";
    7. for ($i = 0; $i < $rows; $i++)
    8. {
    9. if (is_int ($i/$cols)){ echo "<tr><td>$i</td>"; }
    10. else { echo "<td>$i</td></tr>"; }
    11. }
    12. if (!is_int ($i/$cols)) { echo "<td>&nbsp;</td>"; echo "</tr>"; }
    13. echo "</table>";
    14. ?>
    Необходимо вывести данные между <td></td>.
    Как я понимаю это можно сделать много мерным массивом. $arr [$i] ['image'].
    Проблема в том что не знаю как создать такой массив.

    Заранее спасибо.
     
  2. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
  3. Andrey5555

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

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Непойму. Sergey89 наведите на путь истинный
     
  4. QQQ

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

    С нами с:
    21 ноя 2007
    Сообщения:
    538
    Симпатии:
    0
    Andrey5555, а по ссылке сходить и посмотреть пример - не судьба? ;-)

    особенно усердно смотрим сюда и дальше: <i>while ($row = mysql_fetch_assoc($result)) {</i>
     
  5. Andrey5555

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

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    А дальше то как будет?
     
  6. QQQ

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

    С нами с:
    21 ноя 2007
    Сообщения:
    538
    Симпатии:
    0
  7. Andrey5555

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

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Почитал. Ниче почти не понял. Как мне сформировать $arr [$i] ['image']. Напишите плиз
     
  8. QQQ

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

    С нами с:
    21 ноя 2007
    Сообщения:
    538
    Симпатии:
    0
    ты думаешь тут всегда за тебя будут писать твой код? ))

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

    Код (Text):
    1.  
    2. include ("mysql.php");
    3. $result = mysql_query ("SELECT image FROM gallery ORDER BY id");
    4.  
    5. while ($row = mysql_fetch_assoc($result)) {
    6.       $arr[]['image'] = $row['image'];
    7. }
    query - переводится как запрос, result - результат - логичней

    но по идее я не знаю зачем тебе промежуточный двумерный массив. лишние расходы на время и память
     
  9. Andrey5555

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

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Хм... А как не тогда в мой код вывести данные?
     
  10. QQQ

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

    С нами с:
    21 ноя 2007
    Сообщения:
    538
    Симпатии:
    0
    Andrey5555
    а может за тебя весь проект написать? :D

    тебе нужен был массив $arr - ты его получил
    дальше сам ;-)
     
  11. Andrey5555

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

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    А как мне теперь вывести?
    Пробую так: "<tr><td>$arr[$i]['image']</td>"; Так выводит именно ['image'].
    Что делать? :)
     
  12. QQQ

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

    С нами с:
    21 ноя 2007
    Сообщения:
    538
    Симпатии:
    0
    синтаксис языка учить!!

    уже писал где-то сегодня тоже самое...

    "<tr><td>{$arr[$i]['image']}</td>";
    или
    "<tr><td>".$arr[$i]['image']."</td>";
     
  13. Andrey5555

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

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Пробовал ничего не выводит.

    Вот массив. Array ( [image] => a/site.jpg ) Array ( [image] => a/site.jpg ) Array ( [image] => a/site1.jpg )
     
  14. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    может зациклить надо а?
    Зы. Не Евгений Попов?
     
  15. Andrey5555

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

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    В $arr[]['image'] записаны все значения под индексом 0. Помогите вывести данные.
     
  16. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Вот, для примера, кусок баннерной системы.

    PHP:
    1.  
    2. <?php
    3.  
    4. //массив с баннерами
    5. $banners = array(
    6.  
    7. 'link' => 'http://forik.net',
    8. 'path' => 'paintbol.jpg',
    9. 'alt' => 'Пейнтбол'),
    10.  
    11. 'link' => 'http://platform.ru',
    12. 'path' => 'tarifs.jpg',
    13. 'alt' => 'Новые безлимитные тарифы!')
    14. );
    15.  
    16. $banpath = 'http://adverts.platforma.ru/banners/'; //путь к баннерам
    17.  
    18. shuffle($banners); //шафлим массив
    19.  
    20. for($i = 0; $i < 1; $i++) //выводим циклом баннер (в моем случае один)
    21. {
    22. echo '<center><a href="'.$banners[$i]['link'].'" target="_blank">
    23. <img src="'.$banpath.$banners[$i]['path'].'" alt="'.$banners[$i]['alt'].'" /></a></center>';
    24. }
    25. ?>
    26.  
    Где $i < 1 выводит 1 случайный баннер. Шаффл осуществляется ф-ей shuffle($banners).
    Если поставить $i < 5, будет выводить по 5 баннеров......

    Ферштейн....?
     
  17. QQQ

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

    С нами с:
    21 ноя 2007
    Сообщения:
    538
    Симпатии:
    0
    блин...

    Код (Text):
    1.  
    2. <pre>
    3. <?php foreach($arr as $k => $v) echo "$k => {$v['image']}\n"; ?>
    4. </pre>
    или даже для особо одарённых:
    Код (Text):
    1.  
    2. <pre>
    3. <?php for($i = 0; $i < sizeof($arr); $i++) echo "$i => {$arr[$i]['image']}\n"; ?>
    4. </pre>
    что даёт?
    и что непонятно?
     
  18. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Ну тут подфорум - "вопросы от блондинок", не нервничай))
     
  19. QQQ

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

    С нами с:
    21 ноя 2007
    Сообщения:
    538
    Симпатии:
    0
    admyx
    а ну да, точно ))
    не обратил внимания, читаю с 'новых сообщений' )
     
  20. Andrey5555

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

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Я наверно тупой. Попробовал <?php for($i = 0; $i < sizeof($arr); $i++) echo "$i => {$arr[$i]['image']}\n"; ?>
    Выводит 0 => 1 => 2 =>

    Хелп!!!

    Возможно что то изменить надо здесь

    while ($arr = mysql_fetch_assoc ($query)) {
    $arr[]['image'] = $arr['image'];
    }

    или где то еще.
     
  21. topas

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

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    Andrey5555, покажите, пожалуйста результат вот этого
    PHP:
    1. <?php
    2. echo "<pre>";
    3. print_r($arr);
    4. var_dump($arr);
    5.  
     
  22. Andrey5555

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

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Вот.

    Array
    (
    [image] => a/site.jpg
    [0] => Array
    (
    [image] => a/site.jpg
    )

    )
    array(2) {
    ["image"]=>
    string(10) "a/site.jpg"
    [0]=>
    array(1) {
    ["image"]=>
    string(10) "a/site.jpg"
    }
    }
    Array
    (
    [image] => a/site.jpg
    [0] => Array
    (
    [image] => a/site.jpg
    )

    )
    array(2) {
    ["image"]=>
    string(10) "a/site.jpg"
    [0]=>
    array(1) {
    ["image"]=>
    string(10) "a/site.jpg"
    }
    }
    Array
    (
    [image] => a/site1.jpg
    [0] => Array
    (
    [image] => a/site1.jpg
    )

    )
    array(2) {
    ["image"]=>
    string(11) "a/site1.jpg"
    [0]=>
    array(1) {
    ["image"]=>
    string(11) "a/site1.jpg"
    }
    }
     
  23. topas

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

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    PHP:
    1. <?php
    2. while ($arr = mysql_fetch_assoc ($query)) {
    3. $arr[]['image'] = $arr['image'];
    4. }
    5.  
    меняем на:

    PHP:
    1. <?php
    2. while ($arr = mysql_fetch_assoc ($query)) {
    3.     echo $arr['image'];
    4. }
    5.  
     
  24. Andrey5555

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

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Да. Так выводит. Но echo "<tr><td>".$arr['image']."</td>"; ничего не выводит.

    while ($arr = mysql_fetch_assoc ($query)) { echo $arr['image']; }
    echo "<table border='1'>";
    for ($i = 0; $i < $rows; $i++)
    {
    if (is_int ($i/$cols)){ echo "<tr><td>".$arr['image']."</td>"; }
    else { echo "<td>$i</td></tr>"; }
    }
     
  25. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1