Я очень новичок в программировании на MySQLi с использованием PHP. В настоящее время я пытаюсь закодировать простое приложение для назначения встречи с двумя таблицами в моей базе данных, в которые я уже ввел некоторые тестовые значения, как показано ниже.
Я действительно стараюсь изо всех сил, но я еще не все знаю о MySQLi, и я готов учиться. Я уже весь вчерашний день осматривал этот сайт, но я не встречал ни одной предыдущей записи, которая бы отвечала на мою проблему. Спасибо за любую помощь, которую вы можете предложить новичку, как я.
Над чем я работаю до сих пор:
$_SESSION['appointment']
отображает массив встреч для конкретного пользователя с соответствующим идентификатором пользователяЭта проблема
$_SESSION['appointment']
ТОЛЬКО отображает первый результат массива назначений для конкретного пользователя с соответствующим идентификатором пользователя.$_SESSION['appointment']['date']
знак равно 2016-12-20
для Боба Марли и не отображает все его другие назначения 2016-12-31
а также 2016-12-29
даже если оно имеет такое же соответствие userID = 3
Как отобразить все связанные даты встреч пользователя, если они совпадают userID
в таблице «назначение»?
Мои таблицы базы данных:
таблица ‘users’:
userID (столбец 1) // имя пользователя (столбец 2) // имя (столбец 3)
1 // user1 // Боб Дилан
2 // user2 // Джон Леннон
3 // user3 // Боб Марли
—
таблица «назначение»
‘destinationID’ (столбец 1) // userID (столбец 2) // дата (столбец 3)
1 (назначение ID) // 1 (идентификатор пользователя) // 2016-12-07
2 (назначение ID) // 2 (идентификатор пользователя) // 2016-12-15
3 (назначение ID) // 3 (идентификатор пользователя) // 2016-12-20
4 (назначение ID) // 3 (идентификатор пользователя) // 2016-12-31
5 (назначение ID) // 3 (идентификатор пользователя) // 2016-12-29
Мои СЕССИИ:
//Displays the array of the user
$_SESSION['profile'] = displayProfile($_SESSION['user']);
//Displays the array of the appointment based on the matching userID
$_SESSION['appointment'] = displayAppointment($_SESSION['profile']['userID']);
Мои функции MySQLi:
function displayProfile($username)
{
global $ db_con; //my database connection
$query = 'SELECT * FROM users WHERE username=\''.mysqli_escape_string($db_con, $username).'\'';
$result = $db_con-> query($query);
//This fetches the associative array for the user row
//(i.e. $_SESSION['profile']['userID'] outputs the userID of the user logged into the system
if ($result->num_rows) { return $result->fetch_assoc();}
}
//////////////////////////////
function displayAppointment($userID)
{
global $ db_con; //my database connection
//This passes the current logged on user's userID into the query.
//For example, if Bob Marley was currently logged on, the $userID that will be passed is userID = 3.
$query = 'SELECT * FROM appointment WHERE userID='.$userID;
$result = $db_con-> query($query);
//This fetches the associative array for the appointment row with the correct matching userID
//(i.e. $_SESSION['profile']['userID'] for Bob Marley is '3'
if ($result->num_rows) { return $result->fetch_assoc();}
}
так что вам нужно, чтобы вернуть все из функции прямо тогда вы должны использовать
editenote: потому что у него нет драйверов для fetch_all
function displayAppointment($userID)
{
global $ db_con; //my database connection
//This passes the current logged on user's userID into the query.
//For example, if Bob Marley was currently logged on, the $userID that will be passed is userID = 3.
$query = 'SELECT * FROM appointment WHERE userID='.$userID;
$result = $db_con-> query($query);
//This fetches the associative array for the appointment row with the correct matching userID
//(i.e. $_SESSION['profile']['userID'] for Bob Marley is '3'
$resultout=array();
while ($row = mysqli_fetch_assoc($result)) {
array_push($resultout, $row);
}
return $resultout;
}
Других решений пока нет …