Я делаю небольшое приложение электронной почты через php, javascript и работаю по большей части. Когда я теряюсь, при попытке настроить запрос, чтобы получить электронные письма, которые были удалены и отправлены в корзину. Запрос, который я написал, по-видимому, отлично работает, когда я напрямую запрашивал базу данных, но не работает при запуске с PHP. Пожалуйста, помогите мне с этой расстраивающей проблемой, любая помощь будет принята с благодарностью.PHP mysql query with temp table не работает
Структура электронной почты для электронной почты ниже.
TABLE messages (
'mid' int,
'folderfrom' int, //where message is stored for the user who sent it
'msgfrom' text, //user sending message
'msgto' text, //user getting message
'subject' text,
'msgdate' timestamp,
'msg' text,
'folderto' int, //where message is stored for recieving user.
)
Ниже приведен код, который я использую для создания и выполнения запросов. Я попытался запустить последнее условие else в одной строке, но это не сработало.
if ($foldernum == 1) {
$querytorun = "SELECT ms.mid as 'id', ms.folderto as 'folder', ms.msgfrom as 'name', ms.msgto as 'email', ms.subject as 'subject', ms.msgdate as 'date', ms.msg as 'msg' FROM messages as ms WHERE ms.msgto LIKE '{$usercode}' AND ms.folderto = {$foldernum}";
} elseif ($foldernum == 2) {
$querytorun = "SELECT ms.mid as 'id', ms.folderfrom as 'folder', ms.msgfrom as 'name', ms.msgfrom as 'email', ms.subject as 'subject', ms.msgdate as 'date', ms.msg as 'msg' FROM messages as ms WHERE ms.msgfrom LIKE '{$usercode}' AND ms.folderfrom = {$foldernum}";
} else {
$querytorun = "CREATE TEMPORARY TABLE tempfolder('id' int,'folder' int, 'name' text,'email' text,'subject' text,'date' datetime,'msg' text)";
$res = mysql_query($querytorun);
$querytorun = "INSERT INTO tempfolder SELECT mst.mid as 'id', mst.folderto as 'folder', mst.msgfrom as 'name', mst.msgto as 'email', mst.subject as 'subject', mst.msgdate as 'date', mst.msg as 'msg' FROM messages as mst WHERE mst.msgto LIKE '{$usercode}' AND mst.folderto = {$foldernum}";
$res = mysql_query($querytorun);
$querytorun = "INSERT INTO tempfolder SELECT mst.mid as 'id', mst.folderfrom as 'folder', mst.msgto as 'name', mst.msgfrom as 'email', mst.subject as 'subject', mst.msgdate as 'date', mst.msg as 'msg' FROM messages as mst WHERE mst.msgfrom LIKE '{$usercode}' AND mst.folderfrom = {$foldernum}";
$res = mysql_query($querytorun);
$querytorun = "SELECT * FROM tempfolder";
}
$res = mysql_query($querytorun);
while($rs = mysql_fetch_object($res)) {
$arr[] = $rs;
}
echo json_encode($arr);
попробуйте использовать ['mysql_error()'] (http://php.net/manual/en/function.mysql-error.php); также, почему вы не используете mysqli? Еще лучше, почему не используют PDO? –
Я очень новичок в PHP, это мой первый проект. Больше используется для nodejs. Сейчас я ищу PDO. –
В этом случае вот несколько советов: используйте PHP 5.4 или новее (или, если необходимо, 5.3.7+); не храните пароли, даже если вы их зашифруете (используйте хэширование); использовать XAMPP, Sublime Text и Filezilla; Изучите и используйте Git/Github (очень важно); прежде чем что-то сделать, проверьте, сделал ли кто-нибудь еще это; Apache или Nginx не имеет значения; ООП важен; Используйте много комментариев коментария !; PSR-4 FTW; читайте комментарии php.net при поиске функций. –