Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中实现类似mysql的功能?_Javascript_Php - Fatal编程技术网

如何在javascript中实现类似mysql的功能?

如何在javascript中实现类似mysql的功能?,javascript,php,Javascript,Php,我想检查用户的专业知识并显示他们的网络图。我之所以想使用LIKE,是因为在mysql数据库中,专家属性也包含在他们的工作场所中。例如:马石油的数据分析师。所以我想检查他们的专业技能是否是数据分析师,并显示他们的网络图 这是我尝试过的代码: <?php if (isset($_GET['id'])) { $id = $_GET['id']; $sql = "SELECT * FROM professional, job, location WHERE PROFESSIONA

我想检查用户的专业知识并显示他们的网络图。我之所以想使用LIKE,是因为在mysql数据库中,专家属性也包含在他们的工作场所中。例如:马石油的数据分析师。所以我想检查他们的专业技能是否是数据分析师,并显示他们的网络图

这是我尝试过的代码:

<?php
if (isset($_GET['id'])) {

    $id = $_GET['id'];
    $sql = "SELECT * FROM professional, job, location WHERE PROFESSIONAL_ID LIKE '%$id%' AND PROFESSIONAL_ID=JOB_ID AND JOB_ID = LOCATION_ID " ;
    $result = mysqli_query($conn, $sql);

    $row = mysqli_fetch_assoc($result);

    echo "
                <div class='card'>
                <img src='../images/img.png' style='width:100%'>
                <h2>".$row['PROFESSIONAL_NAME']."</h2>
                <p class='title'><i class='fa fa-briefcase' aria-hidden='true'></i> ".$row['JOB_NAME']."</p>
                <p class='marker'><i class='fa fa-map-marker' aria-hidden='true'></i> ".$row['LOCATION_NAME']."</p>
                <a href=".$row['PROFESSIONAL_URL']."><p><button>Contact</button></p></a>
              </div>

              <div class='network'> 
              <h2> Filter Network</h2>
              </div>

              <div class='filter'>
        <input type='radio' value='Expertise' unchecked name='radioBtn' onclick='checkexpertise(".$row['JOB_NAME'].")'> <label> Expertise</label><br>
        <input type='radio' value='Location' unchecked name='radioBtn' onclick='checklocation(".$row['LOCATION_NAME'].")'> <label> Location</label><br>
        <input type='radio' value='Workplace' unchecked name='radioBtn' onclick='checkworkplace()'> <label> Workplace </label><br>
        <input type='radio' value='Past Workplace' unchecked name='radioBtn' onclick='checkpast()'> <label>Past Workplace</label><br>

      </div>";


}

?>
<script>
      function CheckExpertise (Expertise) {
        if Expertise LIKE %Data Analyst% OR %data analyst%
        {
          window.location.replace("expertise.html");
          }
      }
      </script>

您可以使用
includes
,我建议将字符串转换为所有小写,然后进行检查,这样您只需执行一次检查

function CheckExpertise (Expertise) {
    if (Expertise.toLowerCase.includes("data analyst") {
        window.location.replace("expertise.html");
    }
}

您可以为此使用正则表达式:

if (/.*data analyst.*/i.test(Expertise)) {
  window.location.replace("expertise.html");
}
但请看一下mysqli准备的语句和输出清理(例如使用htmlentities)。用户可以以“id”的形式发送任何内容,包括您可能不想执行的精心编制的SQL查询;)


在写出html而不是回显html之前,应该关闭php标记。在JavaScript中,这将是更多的错误提示,您可以使用
includes
查看该字符串是否包含另一个字符串。请看@jtylerm哦,谢谢你提醒,反正它不起作用。Idk为什么但我认为onclick部分RadioButton有问题如果我想检查他们的专业知识,我可以这样做吗?onclick='checkexperties(.$row['JOB_NAME'])@NurHidayah-JavaScript区分大小写。因此,如果函数名为
checkexperties
,则需要以相同的方式调用它:
onclick='checkexperties()
好的,谢谢。但是如何从php获取输入并将其传递给函数呢?看起来您已经在这样做了:`onclick='checkexperties(“.$row['JOB\u NAME']))`
$id = $_GET['id'];
$query = mysqli_prepare($conn, "SELECT * FROM professional, job, location WHERE PROFESSIONAL_ID LIKE ? AND PROFESSIONAL_ID=JOB_ID AND JOB_ID = LOCATION_ID " ;
mysqli_bind_param($query, "s", "%{$id}%");
mysqli_stmt_execute($query);
$result = mysqli_stmt_get_result($query);