Вернуться   Форум SAPE.RU > Общие вопросы > Разработка и сопровождение сайтов

-->
Ответ
 
Опции темы
Старый 12.02.2015, 09:45   #1
Новичок
 
Регистрация: 02.12.2011
Сообщений: 38
Вес репутации: 153
ZazulaJ скоро станет известенZazulaJ скоро станет известен
По умолчанию Необходимо вывести данные цикл в цикле

Есть 3 таблицы, в которых находятся данные по характеристикам товаров.
В первой находятся названия разделов характеристик.
parametr_id | parametr_name
Во второй - сами характеристики,
char_id | char_name | id_parametr
а в третью заносятся данные, после заполнения таблицы.
vse_id | id_char | id_prouct | id_parametr | char_text
Данные выводятся циклами - цикл в цикле. сами таблицы выводятся правильно.
Но проблема в том, что если эта таблица выводится, когда нужно занести новый товар, то ячейки должны быть пустые. А когда товар уже существует и нужно исправить его, в том числе и характеристики, которые были занесены ранее в таблицу, то тут вникает проблема.
выводятся только первые две строчки в первую таблицу. Остальные данные не выводятся ни в первую ни в остальные таблицы.
И выходит ошибка, вот эта строчка
Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in Z:\home\sirius\www\adminka\char.php on line 27

$str_vse=mysqli_fetch_assoc($sql_vse);
Подскажите, что я делаю не так и как это можно исправить?

PHP код:
$sql_param=mysqli_query($mysqli,"SELECT * FROM  parametr");
$kol_param=mysqli_num_rows($sql_param);
for(
$j=0;$j<$kol_param;$j++){
$str_param=mysqli_fetch_assoc($sql_param);
echo 
'<tr><td width="" colspan="4"><b>'.$str_param['parametr_name'].'</b></td></tr>';

$sql_char=mysqli_query($mysqli,"SELECT * FROM  characteristics WHERE id_parametr=".$str_param['parametr_id']);
$kol_char=mysqli_num_rows($sql_char);
$kolch='';
if(
$kol_char 2==0){$kolch=$kol_char;}
else {
$kolch=$kol_char+1;}
    for(
$i=0;$i<$kolch;$i++)
    { 
    
$str_char=mysqli_fetch_assoc($sql_char);
    
$char=$_POST['char_id'];
    if(isset(
$_GET['upd']))    
    {
        
$sql_vse=mysqli_query($mysqli,"SELECT * FROM  vse WHERE id_pr=".$_GET['upd']." and id_char=".$str_char['char_id']." and id_parametr=".$str_param['parametr_id']);
        
$str_vse=mysqli_fetch_assoc($sql_vse);
        
$char=$str_vse['char_text'];
    }        
    
$value htmlentities($value,ENT_QUOTES);//блокирование спец символов
    
$key htmlentities(key,ENT_QUOTES);//блокирование спец символов    
    
$td .= '<td width="200">'.$str_char['char_name'].'</td><td><input type="text" class="input" name="char_id['.$str_char['char_id'].']" value="'.$char.'"></td>';
        if(
$i%2)
          {
            echo 
'<tr>'.$td.'</tr>';
            
$td null;
          }    
    }

ZazulaJ вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Необходимо вывести ссылки из статуса ERROR aizumrud Поиск исполнителей 2 14.11.2014 12:55
Необходимо переделать визитку ZemAnd Поиск исполнителей 0 28.03.2011 23:53
Необходимо поднять ТИЦ demonick Поиск исполнителей 4 23.12.2010 13:23
я балбэс, или как сделать цикл в php boltyn Курилка 5 19.06.2009 16:19
Цикл фильмов "Запретные темы истории". Перу и Боливия задолго до инков. Горизонт Курилка 6 24.01.2009 20:29


Часовой пояс GMT +3, время: 01:00.