Одни и те же заявления, второе не работает в разных, если

Я пытаюсь выяснить, почему не работает готовое заявление mysqli. Я могу сказать, что на странице есть что-то вроде 2 разделов, первый из которых нуждается в $ _GET, чтобы быть пустым, а последний нуждается в $ _GET [‘id’], а другой должен быть установлен (isset). У обоих «разделов» один и тот же запрос, но в последнем разделе сначала разный запрос.

Everyting работает нормально до повторного запроса в последнем «разделе», где ничего не печатается.

У меня есть что-то вроде этого:

if (login_check($mysqli) == true) {

if(empty($_GET)) { //first section

if ($stmt = $mysqli->prepare("SELECT friends.*, members.*, account_type.* FROM friends  INNER JOIN members ON members.id = friends.friendID
INNER JOIN account_type ON account_type.name = members.acc_type
WHERE friends.userID = ? AND members.acc_type = ?")) {

$stmt->bind_param('is', $_SESSION['user_id'], $_SESSION['acc_type']);
$stmt->execute();

} else echo $mysqli->error;

$result = $stmt->get_result();

// php/mysqli stuff working as expected ($row[] printing db data)
// no need to close
}

if(isset($_GET['id'], $_SESSION['user_id'])) { // last section

if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

/* prepare statement */
if ($stmt = $mysqli->prepare("SELECT COUNT(*) rowCount FROM friends WHERE friendID = ? AND userID = ?")) {
$stmt->bind_param('ii', $_GET['id'], $_SESSION['user_id']);
$stmt->execute();
/* bind variables to prepared statement */
$stmt->bind_result($rowCount);

/* fetch values */
if($stmt->fetch()) {
if ($rowCount > 0) { // This check is working fine, I tested.
$stmt->close();  // close here so no "non-object" error
$stmt = $mysqli->prepare("SELECT friends.*, members.*, account_type.* FROM friends  INNER JOIN members ON members.id = friends.friendID
INNER JOIN account_type ON account_type.name = members.acc_type
WHERE friends.friendID = ? AND members.acc_type = ?");
$stmt->bind_param('is', $_GET['id'], $_SESSION['acc_type']);
$stmt->execute();

$result = $stmt->get_result();
$row = $result->fetch_array();

// Here I have some $row['columns'] and nothing is printed.
} else{
echo $_SESSION['username'], ', you are not allowed to be here.';
}
}
/* close statement */
$stmt->close();
}
/* close connection */
$mysqli->close();
}
} else {
echo 'Please, <a href="login">log in</a>.';
}

Первый запрос работает нормально, другой — копирование / вставка.

Я не вижу, где проблема 🙁

Спасибо!

Изменить: извините, второй запрос должен быть «ГДЕ friends.friendID».

for ($i = 1; $i < 13; $i++) {
$month = $row['month' . $i];
if($row[$month] == 1) {
$paid[] = 'Paid';
} else {
$paid[] = 'Not Paid';
}
$bonus = $row['bonus'];
}

Проблема состоит в том, что members.monthx и friends.monthx имеют одинаковые имена, но они не должны иметь одинаковые значения, поэтому я не знаю, из какой таблицы получается $ row [‘month’. $ Я]. Значение должно быть взято из friends.monthx. Как мне это указать?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]