У меня есть база данных с двумя таблицами: «пользователи» и «расходы». Таблица ПОЛЬЗОВАТЕЛИ: id - первичный, автоматический приращение; имени пользователя пароля, и т.д. ...Запись значений в другую таблицу из базы данных
Таблица РАСХОДЫ: идентификатора (это не Autoincrement), имени пользователя, сумма, дата причина -> других полей.
Я использую функцию под названием getuserfields(), чтобы получить поля из таблицы USERS (она хранится в файле core.php я требуется в каждом PHP):
if (!function_exists('getuserfield')) {
function getuserfield($field) { //
//echo $_SESSION['user_id'];
$query = "SELECT `$field` FROM `users` WHERE `id`='".$_SESSION['user_id']."'";
/*$query2 = "SELECT `$field` FROM `expenses` WHERE `id`='".$_SESSION['user_id']."'";*/
if ($query_run = mysql_query($query)) {
if($query_result = mysql_result($query_run, 0, $field)){ // get the result form the query, row 0 (1 row) cause that is gonna return 1 row/
return $query_result;
}
}
}
}
В моей index.php файл я объявленные переменные:
if (loggedin()){
$firstname = getuserfield('firstname');
.....
$spent = getuserfield('spent'); //until here they work as these are variables from users table
$ammount = getuserfield('ammount'); //the following are variables from expenses table, and are not working
$date = getuserfield('date');
$reason = getuserfield('reason');
$username = getuserfield('username');
Я пытаюсь записать их в базу данных с помощью этой функции:
$query = "INSERT INTO `expenses` VALUES (id,'".mysql_real_escape_string($username)."','".mysql_real_escape_string($ammount)."','".mysql_real_escape_string($date)."','".mysql_real_escape_string($reason)."')";
if ($query_run = mysql_query($query)) {
header ('Location: register_success.php');
} else {
echo 'Sorry, we couldn\'t add your expense for the moment.';
}
Конечно, я получаю эхо-сообщение из запроса, которое запускается, когда запрос не выполняется. Я использую _POST, чтобы получить их из формы, которая выглядит следующим образом:
<form action="register.php" method="POST">
<strong>Add expense</strong> <br/>
Ammount: <br/>
<input type="text" placeholder="Ammount" name="ammount" value="<?php echo isset($_POST['ammount'])?$_POST['ammount']:null; ?>"><br/>
Date: <br/>
<input type="date" placeholder="Enter Date" name="date" value="<?php echo isset($_POST['date'])?$_POST['date']:null; ?>"><br/>
Reason of expense: <br/>
<input type="text" placeholder="Reason for expense" name="reason" value="<?php echo isset($_POST['reason'])?$_POST['reason']:null; ?>"><br/>
<input type="submit" name="Submit">
</form>
Я совершенно новый, так ... никаких sugestions? Спасибо
Кроме того, сообщение об ошибке «Извините, мы не смогли добавить ваши расходы на данный момент». появляется, когда загружается индексный файл, и должен только тогда, когда я нажимаю кнопку отправки. – Cataneo
Действительно ли вы выполняете отдельный запрос для каждой переменной? Почему бы не сделать один «select *», а затем получить доступ к '$ row ['field']'? – Barmar
вы используете очень плохой метод для получения ваших пользовательских данных. Извлеките данные один раз вместо запуска запроса для каждого поля. – Ibu