jjzjj

php - 数据库总是接收相同的 ID

coder 2023-10-11 原文

我希望这不是一个糟糕的问题。我一直在努力理解我做错了什么,但我做不到。 我对 php 和 mysql 很陌生,所以我真的很困惑......

我有这个数据库(附上mysql workbench模型截图)

我正在尝试将销售额插入到 sale 和 print_for_sale 表中。查询似乎有效,数据显示在 phpmyadmin 中。没有错误弹出。但是 sale 表中的 sale 用户始终是相同的 id。即使我使用不同的用户登录。在 print_for_sale 表中,fk_sale_id 始终是相同的 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)"; 

//payment 尚未定义,所以我使用 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);

} 

?>

我还将附上选择页面的屏幕截图,以便您查看标记以备不时之需。

编辑: (我从检查用户登录的地方添加了 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 sale 是。错误的数据仍然存在。相同的 ID... 为什么? :(

这是我在使用代码时收到的唯一错误消息 ini_set('display_errors', true);错误报告(E_ALL);

已弃用:mysql_connect():mysql 扩展已弃用, future 将被删除:在/Applications/XAMPP/xamppfiles/htdocs/printstore/database.php 第 7 行中使用 mysqli 或 PDO 代替

已添加

 echo $_SESSION['user_id'];

这是我对用户 1 的输出:

对于用户 2:

好像没问题,它认出了用户1和2。 当我进行“新购买”并且使用相同的销售 ID 刷新表 print_for_sale 时,表销售没有被刷新。总是3(如截图所示)

  • 我在 phpmyadmin 中删除了销售中的每一行,然后重试。它的工作。销售表似乎工作正常。现在唯一的问题是 print_for_sale 表,即使我使用不同的用户(并且它在 sale 表中显示正常),它仍然显示相同的 sale_id 和相同的 price_print_price,始终为 25)。在这种情况下,我从未选择任何花费 25 的东西。-

最佳答案

试一试。您似乎得到了相同的结果,因为您从不遍历结果。还要确保您的字段名称与数据库中的字段名称完全相同。

$selectsale = "select * 
from sale";

$resultsale = mysql_query($selectsale);

while($linesale = mysql_fetch_assoc($resultsale))
{
 $sale_id = $linesale["sale_id"];
}

关于php - 数据库总是接收相同的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28611354/

有关php - 数据库总是接收相同的 ID的更多相关文章

  1. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  2. ruby - 如果指定键的值在数组中相同,如何合并哈希 - 2

    我有一个这样的哈希数组:[{:foo=>2,:date=>Sat,01Sep2014},{:foo2=>2,:date=>Sat,02Sep2014},{:foo3=>3,:date=>Sat,01Sep2014},{:foo4=>4,:date=>Sat,03Sep2014},{:foo5=>5,:date=>Sat,02Sep2014}]如果:date相同,我想合并哈希值。我对上面数组的期望是:[{:foo=>2,:foo3=>3,:date=>Sat,01Sep2014},{:foo2=>2,:foo5=>5:date=>Sat,02Sep2014},{:foo4=>4,:dat

  3. ruby-on-rails - Rails - 乐观锁定总是触发 StaleObjectError 异常 - 2

    我正在学习Rails,并阅读了关于乐观锁的内容。我已将类型为integer的lock_version列添加到我的articles表中。但现在每当我第一次尝试更新记录时,我都会收到StaleObjectError异常。这是我的迁移:classAddLockVersionToArticle当我尝试通过Rails控制台更新文章时:article=Article.first=>#我这样做:article.title="newtitle"article.save我明白了:(0.3ms)begintransaction(0.3ms)UPDATE"articles"SET"title"='dwdwd

  4. ruby - Ruby 有 `Pair` 数据类型吗? - 2

    有时我需要处理键/值数据。我不喜欢使用数组,因为它们在大小上没有限制(很容易不小心添加超过2个项目,而且您最终需要稍后验证大小)。此外,0和1的索引变成了魔数(MagicNumber),并且在传达含义方面做得很差(“当我说0时,我的意思是head...”)。散列也不合适,因为可能会不小心添加额外的条目。我写了下面的类来解决这个问题:classPairattr_accessor:head,:taildefinitialize(h,t)@head,@tail=h,tendend它工作得很好并且解决了问题,但我很想知道:Ruby标准库是否已经带有这样一个类? 最佳

  5. ruby-on-rails - RSpec:避免使用允许接收的任何实例 - 2

    我正在处理旧代码的一部分。beforedoallow_any_instance_of(SportRateManager).toreceive(:create).and_return(true)endRubocop错误如下:Avoidstubbingusing'allow_any_instance_of'我读到了RuboCop::RSpec:AnyInstance我试着像下面那样改变它。由此beforedoallow_any_instance_of(SportRateManager).toreceive(:create).and_return(true)end对此:let(:sport_

  6. ruby-on-rails - 如何使用 Rack 接收 JSON 对象 - 2

    我有一个非常简单的RubyRack服务器,例如:app=Proc.newdo|env|req=Rack::Request.new(env).paramspreq.inspect[200,{'Content-Type'=>'text/plain'},['Somebody']]endRack::Handler::Thin.run(app,:Port=>4001,:threaded=>true)每当我使用JSON对象向服务器发送POSTHTTP请求时:{"session":{"accountId":String,"callId":String,"from":Object,"headers":

  7. ruby - 我如何添加二进制数据来遏制 POST - 2

    我正在尝试使用Curbgem执行以下POST以解析云curl-XPOST\-H"X-Parse-Application-Id:PARSE_APP_ID"\-H"X-Parse-REST-API-Key:PARSE_API_KEY"\-H"Content-Type:image/jpeg"\--data-binary'@myPicture.jpg'\https://api.parse.com/1/files/pic.jpg用这个:curl=Curl::Easy.new("https://api.parse.com/1/files/lion.jpg")curl.multipart_form_

  8. 世界前沿3D开发引擎HOOPS全面讲解——集3D数据读取、3D图形渲染、3D数据发布于一体的全新3D应用开发工具 - 2

    无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD

  9. FOHEART H1数据手套驱动Optitrack光学动捕双手运动(Unity3D) - 2

    本教程将在Unity3D中混合Optitrack与数据手套的数据流,在人体运动的基础上,添加双手手指部分的运动。双手手背的角度仍由Optitrack提供,数据手套提供双手手指的角度。 01  客户端软件分别安装MotiveBody与MotionVenus并校准人体与数据手套。MotiveBodyMotionVenus数据手套使用、校准流程参照:https://gitee.com/foheart_1/foheart-h1-data-summary.git02  数据转发打开MotiveBody软件的Streaming,开始向Unity3D广播数据;MotionVenus中设置->选项选择Unit

  10. 使用canal同步MySQL数据到ES - 2

    文章目录一、概述简介原理模块二、配置Mysql使用版本环境要求1.操作系统2.mysql要求三、配置canal-server离线下载在线下载上传解压修改配置单机配置集群配置分库分表配置1.修改全局配置2.实例配置垂直分库水平分库3.修改group-instance.xml4.启动监听四、配置canal-adapter1修改启动配置2配置映射文件3启动ES数据同步查询所有订阅同步数据同步开关启动4.验证五、配置canal-admin一、概述简介canal是Alibaba旗下的一款开源项目,Java开发。基于数据库增量日志解析,提供增量数据订阅&消费。Git地址:https://github.co

随机推荐