За последние 24 часа нас посетили 20247 программистов и 1084 робота. Сейчас ищут 837 программистов ...

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

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

  1. Andrey5555

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

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Непойму)) Что мне делать с кодом?? Напишите, умоляю...
     
  2. Mr.M.I.T.

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

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    троль чтоли 0о или кто-то из своих стебается?
    Код (Text):
    1. while ($arr = mysql_fetch_assoc ($query)) {
    2.      echo "<tr><td>".$arr['image']."</td>";
    3.  }
     
  3. Andrey5555

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

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    А как же цикл for ?? Где мне поставить while, что правильно выводило таблицу??
    Делаю так:

    <?php
    include ("mysql.php");
    $query = mysql_query ("SELECT image FROM gallery ORDER BY id");
    $rows = mysql_num_rows ($query);
    $cols = 2;
    echo "<table border='1'>";
    while ($arr = mysql_fetch_assoc ($query)) {
    for ($i = 0; $i < $rows; $i++)
    {
    if (is_int ($i/$cols)){ echo "<tr><td>".$arr['image']."</td>"; }
    else { echo "<td>".$arr['image']."</td></tr>"; }
    }
    if (!is_int ($i/$cols)) { echo "<td>&nbsp;</td>"; echo "</tr>"; }
    }
    echo "</table>";
    ?>

    Выодит значения, но по 3 раза, зато в правильную таблицу.

    Помогите!
     
  4. QQQ

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

    С нами с:
    21 ноя 2007
    Сообщения:
    538
    Симпатии:
    0
    а откуда то (проквотил), что надо менять на взялось?
    я такого не предлагал Ж)
     
  5. Andrey5555

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

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Ну помогите же)
     
  6. QQQ

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

    С нами с:
    21 ноя 2007
    Сообщения:
    538
    Симпатии:
    0
    Andrey5555
    за это время мог уже книжку нормальную по php прочитать и понять основные конструкции языка
    вот фигли, мы за тебя напишем, но ты всё равно же не врубишся что и почему

    или правда кто-то стебётся


    <?php

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

    ?>

    за работоспособность и корректность не отвечаю ибо просто убрал из твоего маразма лишнее, не проверяя первоисточник )
     
  7. Andrey5555

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

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Не так. Книжка есть и я знаю конструкцию и тд. Вот только не могу врубиться как сдесь сделать.

    Код не работает, так как надо. Выводит данные в 1 столбик, а 2 для красоты пустой)

    Напишите умоляю
     
  8. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Походу, кто-то стебется просто.

    Andrey5555, тебе же уже 10 примеров выложили и пачку ссылок.
    В чем помочь-то?
    Прочитать?
     
  9. QQQ

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

    С нами с:
    21 ноя 2007
    Сообщения:
    538
    Симпатии:
    0
    да ну? зачем ты тогда в while крутящий данные из ресурса базы втыкаешь свой for?
    ты реально не понял, что происходит
    потому и советую ещё раз книжку перечитать.. 10 раз

    я знаю. за тебя теперь все алгоритмы писать?

    ----------

    реально блин кто-то стебётся тупо :D
    а вот прикинь нет? тогда это даже большая жесть :lol:
     
  10. Andrey5555

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

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Никто не стебеться. Мне нужна помощь, что бы изменить код что бы он работал как надо.
    Кто поможет, тому пиво.)
     
  11. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Andrey5555
    while и for и foreach и do|while- это абсолютно разные циклы.

    Обработку запроса из бд можно реализовать и while, и for.
    Если в первом случае это будет примерно как

    PHP:
    1.  
    2. <?php
    3. while($s = $r->fetch_assoc())
    4. {
    5. echo '<img src="./banners/'.$s['img'].'" alt="'.$s['alt'].'" />';
    6. }
    7. ?>
    то во втором будет так

    PHP:
    1.  
    2. <?php
    3. $s = $r->fetch_assoc();
    4.  
    5. for($i=0; $i < $s; $i++)
    6. {
    7. echo '<img src="./banners/'.$s['img'].'" alt="'.$s['alt'].'" />';
    8. }
    9. ?>
     
  12. Andrey5555

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

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    А в моем то случае как быть? ((((
     
  13. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    А подумать?))
    Ничего сложного.......
     
  14. admyx

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

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

    PHP:
    1.  
    2. <?php
    3. $nums = $r->num_rows;
    4. $s = $r->fetch_assoc();
    5.  
    6. echo '<tr>';
    7.  
    8. for($i=0;$i < $nums; $i++)
    9. {
    10. echo '<td><img src="./imgs/'.$s['img'].'" /></td>';
    11.  
    12. if($i%2==0)   // соответственно, если мы заполнили уже 2 колонки, то закрывает <tr> и начинаем новый
    13.     echo '</tr><tr>';
    14. }
    15. ?>
    16.  

    p.s. у меня $r->fetch_assoc() описан так исключительно для удобства.
    у вас это будет что-то типа $s = mysql_fetch_assoc($r)
     
  15. Andrey5555

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

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Та все равно не могу понять((( admyx пожалуйста помогите.
     
  16. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    См. выше. Уже написал
     
  17. Andrey5555

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

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    А мой код как изменить??
     
  18. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Андрей, вы, конечно, извините, но это же Ваш код, вам его и писать.
    Я и так привел вам, как мне кажется, достаточно примеров.

    PHP:
    1. <?php
    2. include ("mysql.php");
    3.  
    4. $query = mysql_query ("SELECT image FROM gallery ORDER BY id");
    5. $rows = mysql_num_rows ($query);
    6.  
    7. echo "<table border='1'><tr>";
    8.  
    9. for ($i = 0; $i < $rows; $i++)
    10. {
    11. $s = mysql_fetch_assoc($query);
    12.  
    13. echo '<td><img src="./imgs/'.$s['image'].'" /></td>';
    14.  
    15. if($i%2==0)  // соответственно, если мы заполнили уже 2 колонки, то закрывает <tr> и начинаем новый
    16.       echo '</tr><tr>';
    17. }
    18.  echo "</tr></table>";
    19. ?>
    Так должно быть в итоге?
     
  19. Andrey5555

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

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Да. Это почти оно. Но, выводит только одно значение 3 раза. А надо 3 значения по 1 разу.
     
  20. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Еще раз и помедленнее.
    Я извиняюсь, не догнал.
    Что-что должно быть в конце?
     
  21. topas

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

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
  22. Andrey5555

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

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    В базе 3 разных значения. А код выводит только 1, при этом заполняю 3 ячейки. А должно вывести все 3 значения.
     
  23. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Ай! Это я ошибся чуть в предыдущем своем коде.
    См. выше - попробуй так.
     
  24. Andrey5555

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

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Ошибка с fetch_assoc.
     
  25. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    PHP:
    1. <?php
    2.  
    3. $conn = new mysqli('***','***','','***');
    4.  
    5. $query = $conn->query("SELECT `id` FROM `of_users` ORDER BY `id`");
    6. $rows = $query->num_rows;
    7.  
    8. echo "<table border='1'><tr>";
    9.  
    10. for ($i=0; $i < $rows; $i++)
    11. {
    12. $s = $query->fetch_row();
    13.  
    14. echo '<td><img src="./imgs/'.$s[0].'" /></td>';
    15.  
    16. if($i%2==0)  // соответственно, если мы заполнили уже 2 колонки, то закрывает <tr> и начинаем новый
    17.         echo '</tr><tr>';
    18. }
    19.  
    20. echo "</tr></table>";
    21.  
    22. $query->free();
    23. $conn->close();
    24. ?>
    Вот код, только что проверил - у меня работает.
    Под свои нужды уже подгонишь сам. Там всего нудо-то, что запрос поменять