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

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

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

  1. Andrey5555

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

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

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Да ничего сложного.

    $query = mysql_query(ЗДЕСЬ ЗАПРОС);
    $rows = mysql_num_rows($query);
    $s = mysql_fetch_assoc($query);
    mysql_free_result($query);
     
  3. Mr.M.I.T.

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

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    умир пад столом =)))))
    а вот интересно, что быстрее произойдёт, он книгу прочтёт или кода готового дождётся =)))
     
  4. Andrey5555

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

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

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

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    блин, если у тебя численный массив, то используй
    mysql_fetch_row и соотв $s[0], $s[1]

    а если ассоциативный
    mysql_fetch_assoc и соотв $s['id'], $s['image'] и тп.

    Ну почитай хотя бы о разнице массивов.

    А то у тебя получилось
    Ты сделал ассоциативный массив
    Но далее ты пытаешься вывести, как из численного
    Почитай о разнице между этим.

    p.s. кстати, функция mysql_fetch_array создает два массива - численно-индексированный и ассоциативный
     
  6. Mr.M.I.T.

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

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
  7. Andrey5555

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

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Так как не писал. Если mysql_fetch_row то под 0 будет только 1 значение, под 1 и далее - пусто. Если mysql_fetch_assoc, то тоже только 1 значение.
     
  8. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Издеваешься, да?
     
  9. topas

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

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    Еще раз, посмотрите ссылку. Половина вопросов отпадет сразу.
     
  10. Andrey5555

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

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Дык там файл.

    admyx почему это я издеваюсь???
     
  11. Andrey5555

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

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

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Ну чем, чем, чем вам еще помочь???
    Ну что сделать???? Я даже Вам код уже написал.
    И примеры привел.
    И ссылки.
    Что еще-то сделать?

    Я вовсе не против помочь, но я не понимаю, что еще я могу сделать.......
     
  13. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    спинку почеши, а? :)
     
  14. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Не вопрос, ты только чуть нагнись)))))) :oops: :D
     
  15. Andrey5555

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

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    admyx Код работает, но он выводит только одно значение 3 раза! А надо вывести все значения! В этом помогите.
     
  16. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Ну дак у меня же выводит не одно значение............
    Где-то вы ошиблись.
     
  17. 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. $s = mysql_fetch_assoc ($query);
    7. echo "<table border='1'>";
    8. for ($i = 0; $i < $rows; $i++)
    9. {
    10. if (is_int ($i/$cols)){  echo "<tr><td>".$s['image']."</td>"; }
    11. else { echo "<td>".$s['image']."</td></tr>"; }
    12. }
    13. if (!is_int ($i/$cols)) { echo "<td>&nbsp;</td>"; echo "</tr>"; }
    14. echo "</table>";
    15. ?>
    Проверяйте. Вроде все норм..
     
  18. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    $s = mysql_fetch_assoc ($query);

    Сюда
    # for ($i = 0; $i < $rows; $i++)
    # {

    Чтобы получилось

    for ($i = 0; $i < $rows; $i++)
    {
    $s = mysql_fetch_assoc ($query);
    бла бла бла

    Должно работать.
     
  19. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Кстати, а зачем там проверка is_int (is_int, is_numeric) - проверка на число????
    $i/$cols - зачем делится?

    Можно поподробнее?
    Если просто нужно вывести данные в несколько колонок, то я ведь уже приводил код (кстати, мне самому в свое время на этом форуме так посоветовал), почему бы не использовать его?
     
  20. Andrey5555

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

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Результат is_int ($i/$cols) или 1 либо 0. Все тоже самое что и в вашем коде. Только написано по другому.
     
  21. Andrey5555

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

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Мой код нормально работает для 2 колонок, а вот для 3 и далее - нет. Не формируеться дополнительный столбик. Что вы можете посоветовать?

    admyx ваш код пробовал. Работает, но проблема с формированием таблицы.
     
  22. Andrey5555

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

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Подскажите что делать плиз.
     
  23. QQQ

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

    С нами с:
    21 ноя 2007
    Сообщения:
    538
    Симпатии:
    0
    LOL.. тут оказывается всё ещё в процессе :lol:
     
  24. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Вот это точно работает без проблем с форматированием.
    Сам только что проверял.

    PHP:
    1. <?php
    2.  
    3. $conn = new mysqli('localhost','****','*****','****');
    4.  
    5. $q = $conn->query("SELECT `id` FROM `users` ORDER BY `id` ASC");
    6. $r = $q->num_rows;
    7.  
    8. echo '<table>';
    9. echo '<tr>';
    10. $x = 0;
    11.  
    12. while($s = $q->fetch_row())
    13. {
    14. $x++;
    15.  
    16. echo '<td>'.$s[0].'</td>
    17. ';
    18.  
    19. if(($x%3)==0)  //соотв, какую цифру поставить - столько столбцов и будет
    20.     echo '</tr><tr>';
    21. }
    22.  
    23. echo '</tr><table>';
    24. ?>
    Кста, в вашем случае нужно

    PHP:
    1. <?php
    2. $q = mysql_query("SELECT `id` FROM `users` ORDER BY `id` ASC");
    3.  
    4. while($s = mysql_fetch_row($q))
    5.  //или
    6. while($s = mysql_fetch_assoc($q))
    7. ?>
    А вообще, вы бы книжку что ли почитали какую-нибудь.........
    Не все же другие за вас будут делать..
     
  25. Andrey5555

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

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

    for ($i = 0; $i < $rows; $i++)
    {
    $s = mysql_fetch_assoc ($query);

    Да, Ваш код работет верно, но если в 3 столбца таблица будет такой:

    <table border='1'><tr><td>a/site.jpg</td><td>a/site2.jpg</td><td>a/site1.jpg</td></tr><tr></tr><table>

    Лишние теги в конце. Их надо убрать, вот только как?)