Я вызываю запрос INNER JOIN для отображения результатов от пользователя, если у них есть информация в обеих таблицах. 1 & 2 - это работает нормально. Однако, если у указанного пользователя нет информации в обеих таблицах, тогда мои переменные возвращаются неопределенными.Вызов второго запроса, если результаты пустые
Поэтому я хотел бы вызвать свой запрос INNER JOIN, и если строки пустые для таблицы 1, он вызовет второй запрос для отображения результатов из таблицы2.
(Table2, безусловно, имеет информацию, хранящуюся. Table1 не является обязательным в зависимости от пользователя)
Я также хочу, чтобы отобразить результаты Таблицы 1 & 2, если другой пользователь имеет информацию в обоих, я не могу показаться, чтобы получить его за работой. Вот что я до сих пор;
$sql="SELECT * FROM Table1 INNER JOIN Table2 ON Table1.username = Table2.username WHERE Table1.username='" . $_SESSION['username']['1'] . "'";
$result=MySQL_Query($sql);
if (mysql_num_rows($result)==0)
{
$sql2"SELECT * FROM Table2 WHERE username='" . $_SESSION['username']['1'] . "'";
$result2=MySQL_Query($sql2);
}
while ($rows=mysql_fetch_array($result)($result2))
{
$Username = $rows['username'] ." ";
$Email = $rows['email'] . " ";
}
echo $Email; ?>
Почему бы не использовать внешнее соединение, а затем один запрос всегда будет возвращать данные? – sgeddes
Прежде чем ответить, я уберу их с пути: во-первых, драйвер 'mysql' устарел; используйте 'mysqli' или' PDO'. Во-вторых: ваш код уязвим для SQL-инъекции; использовать подготовленные заявления. В-третьих, исходный код предназначен для чтения людьми и должен быть отформатирован соответствующим образом. В-четвертых, этот код на самом деле не запускается, не так ли? –