brussens
Мега-мастер
Дата регистрации:
11.10.2011 22:50:07
Сообщений: 438
Вообще насколько я понял насчёт перебора - in_array(Искомое значение в массиве, сам массив)
Получается, что нужно для цикла while($ids).
Далее получается идёт in_array($ids, $row1['name'])
Так ведь?
У меня идёт работа с 2 таблицами.
1 - это таблица, где идут 2 столбца. Один столбец на айди, а второй на строчное значение. Получается, что у каждого стиля есть свой айди.
2 - это данные пользователя, куда в столбец likes записывается строка, сделанная при помощи implode() из айди 1 таблицы. Строка примерно так выглядит: 76,84,85,89,91,94,96,101,106,110
После конечно на странице пользователя она снова разбирается на массив с помощью explode()
Далее вот начинается моя проблема.
Получается мы создаём while(тут значение $ids = explode(',', $row2['likes']))
далее идёт if (in_array(и получается тут у нас сколько вообще значений должно быть?))
Вот самы функция in_array не понятна.
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
1 - это таблица, где идут 2 столбца. Один столбец на айди, а второй на строчное значение. Получается, что у каждого стиля есть свой айди.
Именно это и нужно перебирать. А внутри цикла проверять, есть ли id (в текущей итерации) в массиве ids (это проверка через функцию in_array()).
brussens
Мега-мастер
Дата регистрации:
11.10.2011 22:50:07
Сообщений: 438
Уже пробовал ставить разными способами, ничего не работает...
<?php
$dbconnect = mysqli_connect('localhost', 'root','' ,'testing') or die('eRROR!!!!');
$query1 = "SELECT * FROM styles";
$query2 = "SELECT * FROM user WHERE id = '1'";
$mq1 = mysqli_query($dbconnect, $query1);
$mq2 = mysqli_query($dbconnect, $query2);
$row1 = mysqli_fetch_array($mq1);
$row2 = mysqli_fetch_array($mq2);
$ids = explode(',', $row2['likes']);
while($row1) {
if (in_array($ids, $row1['id'])) {
echo '11';
}
}
?>
Ведь так получается надо было сделать?
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
Почитайте про циклы в программировании. Узнайте про циклы for, while и do while. Посмотрите их синтаксис, примеры и прочее.
brussens
Мега-мастер
Дата регистрации:
11.10.2011 22:50:07
Сообщений: 438
Михаил, вот посидел подумал, написал, вроде работает, но скажите, вот такой код что ли должен быть?
<?php
$dbconnect = mysqli_connect('localhost', 'root','' ,'testing') or die('eRROR!!!!');
$query1 = "SELECT * FROM styles";
$query2 = "SELECT * FROM user WHERE id = '1'";
$mq1 = mysqli_query($dbconnect, $query1);
$mq2 = mysqli_query($dbconnect, $query2);
$row1 = mysqli_fetch_array($mq1);
$row2 = mysqli_fetch_array($mq2);
$ids = explode(',', $row2['likes']);
while($row1 = mysqli_fetch_array($mq1)) {
if (in_array($row1['id'] ,$ids))
echo $row1['name'] . '<br />';
}
?>
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
Да, это действительно то, о чём я и говорил.
brussens
Мега-мастер
Дата регистрации:
11.10.2011 22:50:07
Сообщений: 438
Мда, надо было просто очень хорошо мозг напряч)))
Михаил, а возможно теперь данные из цикла запихнуть в массив? Просто выводить хочется в виде строки и формировать её при помощи implode()
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
Можно. Просто записывайте все названия в новый массив. А переменную для ключа массива увеличивайте при попадании в if.
На выходе получится готовый массив со всеми названиями стилей, которые были в поле like.
brussens
Мега-мастер
Дата регистрации:
11.10.2011 22:50:07
Сообщений: 438
Михаил, ну вот по идее как то так это выглядеть должно, только вот в массиве почему то только первые буквы и ключи, и всё, что не так?
<?php
$dbconnect = mysqli_connect('localhost', 'root','' ,'testing') or die('eRROR!!!!');
$query1 = "SELECT * FROM styles";
$query2 = "SELECT * FROM user WHERE id = '1'";
$mq1 = mysqli_query($dbconnect, $query1);
$mq2 = mysqli_query($dbconnect, $query2);
$row2 = mysqli_fetch_array($mq2);
$ids = explode(',', $row2['likes']);
while($row1 = mysqli_fetch_array($mq1)) {
if (in_array($row1['id'] ,$ids))
$mmm[] = $row1['name'][0];
}
print_r($mmm);
?>
brussens
Мега-мастер
Дата регистрации:
11.10.2011 22:50:07
Сообщений: 438
Извиняюсь, решил проблему)))) Изменил на $mmm[] = $row1['name'];