首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将一列结果放入数组中并与PHP中的另一列进行比较?

如何将一列结果放入数组中并与PHP中的另一列进行比较?
EN

Stack Overflow用户
提问于 2012-04-04 05:19:14
回答 2查看 118关注 0票数 1

我的系统是基于驾照申请的。用户可以申请不同级别的许可证,例如,如果用户想申请5级许可证,他们必须具备2级和3级的先决条件。

在我的数据库中,我有两个相关的表,一个是许可证,其中存储了所有用户已经申请或正在等待批准的许可证。另一个表是许可证类型的说明,其中指明了用户可以申请的每个可用许可证及其先决条件和说明。

允许( PID、EID、PTYPE、STATUS、DATETIMEAPP)

类型(类型DES、PTYPE、PREREQ1、PREREQ2、REQEXP、DES)

我的计划是从数据库中检索数据

代码语言:javascript
复制
$query= "select PTYPE from permit where eid = $user"
$result = mysql_query($query, $conn);

将结果存储为数组

代码语言:javascript
复制
while ($row = mysql_fetch_assoc($result))
{
    $result_array[] = $row;
}

从类型表中检索前提条件

代码语言:javascript
复制
$query= "select PREREQ1 , PREREQ2 from type where TYID = $appliedPermit"
$result = mysql_query($query, $conn);

将两个结果与布尔值进行比较(我不确定如何编码)

如果结果为真,则继续,否则返回到上一页,并弹出通知用户他们没有满足先决条件。(我知道我需要if else语句,但不确定如何编写条件)

你们觉得我走的路对吗?我不知道它是否会work...but希望在座的任何人有更好的建议。

稍微调整一下:

我的系统旨在允许用户申请驾驶permit...there共有9个许可证-Class 1,2类,3类。2PG类,3PG类,Car4PG类,1OR类,2OR类,3OR类,2TT类和3TT类。例如,Cat 3TT要求用户拥有Cat 2TT和Cat 2PG。换句话说,Cat 3TT的前提条件是Cat 2TT和Cat 2PG。

我想使用PHP从数据库中提取所有所需的值,并将它们进行比较,以查看用户是否满足前提条件,如果还没有达到1,则允许他继续进行医疗问卷调查。

问题是:我不知道如何从逻辑上编码出来,我试过了,但它不起作用。希望能得到更多关于我的问题的意见和解决方案。非常感谢。非常感谢您的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-04 05:44:17

您只能在一个查询中检查前提条件:

代码语言:javascript
复制
$query = "SELECT t.tyid, t.prereq1, t.prereq2
, (CASE WHEN (t.prereq1 IS NOT NULL) AND (p1.ptype IS NULL) THEN 1 ELSE 0 END) AS missing1
, (CASE WHEN (t.prereq2 IS NOT NULL) AND (p2.ptype IS NULL) THEN 1 ELSE 0 END) AS missing2
FROM type AS t
LEFT JOIN permit AS p1 ON (t.prereq1=p1.ptype) AND ( p1.eid = $user )
LEFT JOIN permit AS p2 ON (t.prereq2=p2.ptype) AND ( p2.eid = $user )
WHERE ( t.tyid IN (".implode(',', $appliedPermit).") )";

$result = mysql_query($query, $conn);
while ($row = mysql_fetch_assoc($result)) {
  echo "permit ".$row['tyid']. " : "
  echo "prerequisites = ".$row['prereq1'].", ".$row['prereq2'];
  if ( ($row['missing1']==1) && ($row['missing1']==1) ) {
    echo ", result = ok <br>";
  } else {
    echo ", result = failed <br>";
  }
}

此查询返回两个先决条件id;但如果缺少先决条件#1,则missing1值为1;如果缺少先决条件#2,则missing2值为1。

注意:我已经更新了我的帖子来回复你下面的两条评论。

票数 2
EN

Stack Overflow用户

发布于 2012-04-04 05:52:32

运行以下查询,然后将结果作为用户所需的先决条件打印给用户。

代码语言:javascript
复制
 SELECT prereq1, prereq2 from type 
 where tyid = $appliedPermit 
 and prereq1 not in (select  ptype from permit where eid = $user) 
 and prereq2 not in (select ptype from permit where eid= $user);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10001552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档