zRrr
@zRrr
Ноунейм какой-то

Как правильно составить MySQL запрос?

Есть таблица "user". Нужно вытянуть значения из столбца email, если у строки этого значения колонка sub равна 1.
Пробовал SELECT email FROM `user` WHERE sub=1, но почему-то первый email просто дублируется.
Для образования массива из значений, использую mysqli_fetch_array.
Вот код(здесь вместо mysqli_fetch_array - mysqli_fetch_assoc, таким образом email не дублируется):
$db = mysqli_connect("localhost","root","","ns");
$result = mysqli_query($db, "SELECT email FROM `user` WHERE sub='1'");
		$myrow = mysqli_fetch_assoc($result);
		
		$subject = 'shop | Анонс новостей';
		$body = '<!DOCTYPE html>
				<html>  
				<head>  
					<meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
					<title>Email Newsletter</title>  
				</head>  
				<body>  
				Новая новость: <a href="'.get_permalink($post->ID).'">'.$post->post_title.'</a>
				</body>  
				</html>';
		$headers = ['Content-Type: text/html; charset=UTF-8'];
		file_put_contents('text.txt',$myrow);
		foreach($myrow as $row) {
			wp_mail($row, $subject, $body, $headers );
		}

get_permalink и $post->post_title - это API Wordpress.
Содержимое массива проверяю с помощью file_put_contents('text.txt',$myrow);
В нем только 1 email из 2.
С таким кодом письмо отправляется только на 1 email
  • Вопрос задан
  • 251 просмотр
Решения вопроса 1
Попробуйте заменить mysqli_fetch_array на mysqli_fetch_assoc . Первый имеет свойство дублировать данные.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@ademar26
mysqli_fetch_assoc преобразует полученные данные из запроса в ассоциативный массив, где строки из выборки это порядковые ключи, а столбцы значения ключа.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы