Надеюсь, это не плохой вопрос. Я пытался понять, что я делаю неправильно, но не могу. Я довольно новый для PHP и MySQL, так что я действительно путает ...База данных всегда получает одинаковые идентификаторы
У меня есть эта база данных (я приложу скриншот к MySQL Workbench модели)
И я пытаюсь вставить таблицы продажи в продажу и print_for_sale. Запросы, похоже, работают, и данные отображаются в phpmyadmin. Ошибка не появляется. Однако пользователь продаж в таблице продаж всегда имеет одинаковый идентификатор. Даже если я использую другой пользовательский логин. И в таблице print_for_sale fk_sale_id всегда является одним и тем же идентификатором. И price_print_for_sale всегда то же самое. Это не должно произойти. Что я делаю не так? Может ли кто-нибудь мне помочь? Спасибо!
Вот мой PHP код:
<?php
session_start();
$user_id = $_SESSION['user_id'];
print_r($_POST);
$id_print= $_POST['print_id'];
include('database.php');
$bought_sizes=$_POST['sizes'];
$number_of_bought_sizes= count($bought_sizes);
//header('location:index.php?area=printstore');
$sqlinsertsale = "insert into sale
(fk_sale_user,
fk_payment_id)
values(".$user_id.", 1)";
// платеж еще не определен, так я использую 1 раз попробовать.
mysql_query($sqlinsertsale);
for($i=0; $i< $number_of_bought_sizes; $i++){
$selectmultiple = "select *
from print_has_size
inner join size on fk_size_id = size_id
inner join print on fk_print_id = print_id
where print_id =".$id_print."";
$resultmultiple = mysql_query($selectmultiple);
$linemultiple = mysql_fetch_assoc($resultmultiple);
$size_price = $linemultiple["size_price"];
$selectsale = "select *
from sale";
$resultsale = mysql_query($selectsale);
$linesale = mysql_fetch_assoc($resultsale);
$sale_id = $linesale["sale_id"];
//$sale_id = mysql_insert_id();
/*PARA CADA 1 DOS TAMNHO*/
$sqlinsertprintforsale = "insert into print_for_sale
(fk_sale_id,
price_print_for_sale)
values(".$sale_id.", ".$size_price.")";
mysql_query($sqlinsertprintforsale);
}
?>
Я также приложу скриншот страницы выбора, чтобы вы могли видеть разметку на случай, если это поможет.
Edit: (я добавляю код PHP от того, где я могу проверить логин пользователя)
<?php
session_start();
include('database.php');
$user=mysql_real_escape_string($_POST['user_login']);
$pass=mysql_real_escape_string($_POST['user_pass']);
$sql="select user_id, user_name
from user
where
user_login='".$user."'
and user_pass = MD5('".$pass."')";
echo $sql;
$result = mysql_query($sql);
$num_of_regs = mysql_num_rows($result);
echo "<br>".$num_of_regs;
if($num_of_regs!=1) {
header('location:index.php?login=done');
}
else {
$line = mysql_fetch_assoc($result);
$user_name = $line['user_name'];
$user_id = $line['user_id'];
$_SESSION['user_name'] = $user_name;
$_SESSION['user_id'] = $user_id;
header('location:index.php');
}
?>
И я сделал систему в журнал тоже.
<?php
session_start();
session_destroy();
header('location:index.php');
?>
Теперь я заметил, что таблица продажи не принимает данные .. Только print_for продажа. Неверные данные. Те же идентификаторы ... Почему? :(
Это единственное сообщение об ошибке, что я получаю, когда я использовал код ini_set ('display_errors', TRUE); error_reporting (E_ALL);
Запрещены: mysql_connect(): Расширение MySQL является устаревшим и будут удалены в будущее: использовать MySQLi или ПДО вместо этого в /Applications/XAMPP/xamppfiles/htdocs/printstore/database.php на линии 7
Добавлено
echo $_SESSION['user_id'];
и это мой выход для пользователя 1:
А для пользователя 2:
, кажется, будет хорошо, она распознает пользователя 1 и 2. продажи Таблица не обновляется, когда я делаю «новую покупку» и таблицы print_for_sale обновляется с одинаковым идентификатором продажи.Всегда 3 (как показано на скриншоте)
- Я удалил все строки из продажи в phpmyadmin и попытался снова. Работает. Продажа стола, кажется, работает нормально. Единственная проблема теперь в таблице print_for_sale, которая даже когда я использую другого пользователя (и он отображается нормально в таблице продаж), он по-прежнему показывает ту же самую sale_id и такую же price_print_price, что всегда 25). И в этом случае я никогда не выбрано ничего стоимостью 25 -
Можете ли вы показать нам, где вы устанавливаете '$ _SESSION [ 'user_id'];' –
уже сделал @ CᴴᵁᴮᴮʸNᴵᴺᴶᴬ, спасибо! – Owly
Поместите это в начало своего PHP, и это поможет сгенерировать некоторые сообщения об ошибках. Опубликуйте ошибки, которые вы получаете. 'ini_set ('display_errors', true); error_reporting (E_ALL); ' Кроме того, в вашем запросе на продажу я вижу, что вы устанавливаете переменную, но выполняете ли вы этот запрос? – Fata1Err0r