Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка при работе foreach 
:(
    Опции темы
ARXANGGGEL
Дата 21.11.2012, 08:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 29.5.2012
Где: Украина

Репутация: нет
Всего: нет



Собственно вывожу меню
Код

<? $menu= get_menu();
foreach ($menu as $item): ?>
    <a href="#" ><?=$item['title'];?></a>
<?endforeach?>




Код

function get_menu ()
{
    db_connect ();
    $query = "SELECT * FROM pages";
    $result = mysql_query($query);
    $result = db_result_to_array ($result);
    return $result;
}



Код

function db_connect ()
{
    $host = 'localhost';
    $user= 'root';
    $password = '';
    $db='school';
 
    $connection = mysql_connect($host, $user, $password);
    mysql_query("SET NAMES utf8");
    if (!$connection || mysql_select_db($db, $connection))
    {
        return false;
    }
    else
    {
        return $connection;
    }
}


Код


function db_result_to_array ($result)
{
    $res_array = array();
    $count = 0;
    while ($row = mysql_fetch_array($result))
    {
        $res_array[$count] = $row;
        $count++;
    }
    return $res_array;
}


А мне выдает ошибку 
user posted imageuser posted image
Версия PHP - 5.4
В чем проблема?
PM MAIL   Вверх
skyboy
Дата 21.11.2012, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



куски, кроме первого, не нужны. если ты правильный кусок скопировал. потому как код вполне себе валидный.

PM MAIL   Вверх
Guedda
Дата 21.11.2012, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 13
Всего: 78



Проверьте, есть ли в $menu что-нибудь? Просто если в $menu пусто, то цикл foreach не выполнится. Отсюда и ошибка, что "Неизвестная переменная $item"


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Antony41
Дата 21.11.2012, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 27.12.2008

Репутация: нет
Всего: 1



ошибка явно где то тут
Код

function get_menu ()
{
    db_connect ();
    $query = "SELECT * FROM pages";
    $result = mysql_query($query);
    $result = db_result_to_array ($result);
    return $result;
}


попробуй так
Код

function get_menu ()
{
    $connection = db_connect ();
    $query = "SELECT * FROM pages";
    $result = mysql_query($query, $connection);
    if(!empty($result))
        return db_result_to_array ($result);
}


Добавлено через 1 минуту и 30 секунд
и перед foreach сделать проверку на empty массива т.к я больше чем уверен что массив не инициализирован
PM MAIL   Вверх
baldina
Дата 21.11.2012, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 26
Всего: 101



Цитата(Antony41 @  21.11.2012,  10:09 Найти цитируемый пост)
и перед foreach сделать проверку на empty массива т.к я больше чем уверен что массив не инициализирован 

все это лишнее, т.к. там в любом случае массив
http://www.cs.indiana.edu/classes/a348/fal...t_to_array.html

PM MAIL   Вверх
Aliance
Дата 21.11.2012, 10:36 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 14
Всего: 137



По-моему, Guedda и Antony41 не правы: при пустом массиве (=array()) цикл foreach просто не выполнится, не кидая никаких ошибок. Проверку empty делать не нужно.


ARXANGGGEL, ошибка в 60 строчке, скиньте код со строчками 59, 60 и 61 этого достаточно.
PM MAIL WWW ICQ Skype   Вверх
baldina
Дата 21.11.2012, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 26
Всего: 101



line 60 это какая строчка?
вообще, покажите весь файл site.php

Добавлено через 38 секунд
Цитата(Aliance @  21.11.2012,  10:36 Найти цитируемый пост)
код со строчками 59, 60 и 61 этого достаточно

оптимист)))
PM MAIL   Вверх
Arantir
Дата 21.11.2012, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 16
Всего: 55



Код

    if (!$connection || mysql_select_db($db, $connection))
    {
        return false;
    }

И при успешном выборе базы данных возвращает false...

И mysql устарело еще с php 5, а у вас 5.4. Лучше используйте mysqli.
Вы пользуетесь устаревшим мануалом - двоеточие давно уже не в моде =)

Это сообщение отредактировал(а) Arantir - 21.11.2012, 11:16


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
baldina
Дата 21.11.2012, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 26
Всего: 101



Arantir, все это очень поучительно, но к проблеме ТС отношения не имеет...

Добавлено через 7 минут и 43 секунды
ARXANGGGEL, а короткие теги поддерживаются? если нет, то <?=$item['title'];?> остается изолированным, $item не определен.
PM MAIL   Вверх
ARXANGGGEL
Дата 21.11.2012, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 29.5.2012
Где: Украина

Репутация: нет
Всего: нет



Цитата(Guedda @ 21.11.2012,  10:09)
Проверьте, есть ли в $menu что-нибудь? Просто если в $menu пусто, то цикл foreach не выполнится. Отсюда и ошибка, что "Неизвестная переменная $item"

 Я сделал 
Код

var_dump($menu);

Сразу после вызова функции, и результат - boolean false.
Тоесть, как я понимаю, мне не приходит массив. Я не могу понять почему...
baldina, поддерживаются. 
Arantir, я знаю, что есть варианты и по лучше. Но пока использую все на таком уровне, на каком знаю. 

Это сообщение отредактировал(а) ARXANGGGEL - 21.11.2012, 18:44
PM MAIL   Вверх
Antony41
Дата 21.11.2012, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 27.12.2008

Репутация: нет
Всего: 1



ARXANGGGEL не парся я использую такой же способ как у тебя и функции все те же могу скинуть тебе свой уже готовый класс разберешся сразу

Добавлено через 50 секунд
я так понимаю ты смотрел обучающий ролик написания магазина?
PM MAIL   Вверх
ARXANGGGEL
Дата 21.11.2012, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 29.5.2012
Где: Украина

Репутация: нет
Всего: нет



Цитата(Antony41 @ 21.11.2012,  20:01)
ARXANGGGEL не парся я использую такой же способ как у тебя и функции все те же могу скинуть тебе свой уже готовый класс разберешся сразу

Добавлено @ 20:02
я так понимаю ты смотрел обучающий ролик написания магазина?

Проблема как я понимаю не в функциях...
Скинь класс, в ЛС тут это возможно?
Было дело... 
PM MAIL   Вверх
Antony41
Дата 21.11.2012, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 27.12.2008

Репутация: нет
Всего: 1



скинул пришло?
PM MAIL   Вверх
ARXANGGGEL
Дата 21.11.2012, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 29.5.2012
Где: Украина

Репутация: нет
Всего: нет



Antony41, пришло. 

Но хочу разобраться почему это не работает?
PM MAIL   Вверх
Antony41
Дата 21.11.2012, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 27.12.2008

Репутация: нет
Всего: 1



странно но при правильном подключении всё работает.
Ошибка возникает если таблица указана не верно
И естесственно если такого поля нет в таблице!!! (не показывает ни чего)
проверяй данные функции рабочие!
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0707 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.