Хай ребятушки. Помогите новичку со связкой php+mysqli. У меня есть таблица в бд с полями "id", "nickname", "access". Собсна, "nickname" содержит ник пользователя, а "access" - буковки. пример: zxc. При выводе этих данных на страничку есть небольшая проблема. Не получается сделать проверку на буквы. пример вывода: Ник, флагZ, флагXC Надо сделать так, что бы проверка была с учётом LIKE. Например: если у юзверя с id=1 в поле access прописаны все буквы(zxc), то при выводе на страничку под полями флагZ и флагXC стояло значение "Да", а если букв XC например нет, то под флагXC стояло значение "Нет", а под флагZ - "Да", т.к. буква Z есть. Я сделал таким образом: PHP: $flgz= "z"; $flgxc = "xc"; if($data['access'] == $flgz) $ez = "Да"; else $ez = "Нет"; if($data['access'] == $flgxc) $xc = "Да"; else $xc = "Нет"; Создаю юзверя с id=1, nickname=test, access=zxc. Результат при выводе - под полями стоит значение "Нет", но если пропишу юзверю только одну букву "Z", то под "флагZ" будет значение - Да. Или если пропишу "XC", так же получу ответ - Да. Но если пропишу все 3 буквы(zxc), то везде ответ будет - Нет. Надеюсь смог хоть как-то объяснить, ибо я новичок в этой сфере
Объяснил как только мог)) Попробую в скриншотах... У пользователя "enkee", прописаны буквы в поле "access" = zxc. Спойлер: скриншот записи Спойлер: скриншот вывода Как видите, буквы прописаны для пользователя "enkee", а ответ при выводе "Нет". кусок кода, отвечающий за значения "Да,нет" при выводе: PHP: $flgz= "z"; $flgxc = "xc"; if($data['access'] == $flgz) $ez = "Да"; else $ez = "Нет"; if($data['access'] == $flgxc) $xc = "Да"; else $xc = "Нет";
У тебя флаг прописан zxc, а ты проверяешь на совпадение "z" и "xc". Конечно у тебя всегда будет "Нет"... --- Добавлено --- Тогда пропиши обеим полям "Да"...
Вот в этом то и вся проблема, как сделать проверку не по одиночке, а по совпадению с флагом z например?
так? PHP: $flgzZ = "z"; $flgzZZ= "SELECT * FROM `таблица` WHERE `access` LIKE `%{$flgzZ}%`"; $flgz = $connect->query($flgzZZ); if($data['access'] == $flgz) $ez= "Да"; else $ez= "Нет"; В общем, таким образом тоже не работает =(
ну сходу в лоб - вытаскиваешь одно поле access с полной строкой и потом проверяешь его на совпадение с z и с xc
Сделал на примере из мануала php PHP: $mystring = $connect->query("SELECT `access` FROM `users`"); $findme = 'z'; $pos = strpos($mystring, $findme); if ($pos === false) { echo "Строка '$findme' не найдена"; } else { echo "Строка '$findme' найдена"; }
неверный результат. Ставлю любую букву - результат один и тот же "Строка '$findme' найдена". Как она найдена, если в поле "access" её нет!?
mysqli результат var_dump: PHP: object(mysqli_result)#3 (5) { ["current_field"]=> int(0) ["field_count"]=> int(1) ["lengths"]=> NULL ["num_rows"]=> int(1) ["type"]=> int(0) }