Я хотел выбрать строку в базе данных, но если строки нет в базе данных, она должна oop, пока не найдет
Эта строка $prev_date = date('M d, Y', strtotime($macrodate .' -1 day'));
преобразует текущую дату на единицу вниз ( скажем, 15 июня, он превратится в 14 июня). И используйте эту дату, чтобы проверить, есть ли дата в базе данных, это не так, это будет l oop и go до 13 июня. Пока не удастся найти дату.
Как мне это сделать? Какой l oop мне следует использовать?
$query = "SELECT * FROM users_macros WHERE userid = '$userid' AND `date` = '$macrodate'";
$result = mysqli_query($con, $query);
if (mysqli_num_rows($result) == 0) {
while(1) {
$prev_date = date('M d, Y', strtotime($macrodate .' -1 day'));
$query2 = "SELECT * FROM users_macros WHERE userid = '$userid' AND `date` = '$prev_date'";
$result2 = mysqli_query($con, $query2);
if (mysqli_num_rows($result2) != 0) {
$row2 = mysqli_fetch_assoc($result2);
$targetcarbs = $row2['carbs'];
$targetproteins = $row2['proteins'];
$targetfats = $row2['fats'];
$con->query("INSERT INTO users_macros VALUES('','$userid','$targetproteins','$targetfats','$targetcarbs','$macrodate')");
break;
}
}
}