从文本区域查询Mysql

时间:2014-12-15 10:13:42

标签: php html mysqli

我有一个表单,我想用它来查询Mysql表。文本区域将接受条形码列表。以下是代码表单的示例:

 <form action="getbarcodes.php" method="post" id="calculate">
     <div id="data">
       <label>Barcode:</label>
       <span class="error">*</span><input type="textarea" name="barcode" ><br />
       <input type="submit" name="submit" value="View Codes" />
    </div>
  </form>

我正在尝试编写一种编写getbarcodes.php脚本的方法,并且已经做了很多工作或研究如何实现这一点。我发现了一个我相信使用OOP来实现相同结果的例子,但是因为我没有写入类的详细信息,或者PDO参数等,我无法想象这个例子。因此,我想知道如何将示例转换为基本的mysqli查询:

foreach(explode("\n", Input::get('itemlist')) as $line) {
    $item = preg_split('/(?<=\d) (?=[a-z])|(?<=[a-z])(?=\d)/i', $line);
    if (isset($item[1])) { 
    echo 'Looking for ' . $item[1];
    $itemObj = DB::table('items')->select('name', 'id')->where('name', '=',            trim($item[1], "\r"))->first();
    var_dump($itemObj);
}

}

我知道如何使用单个条形码。表名是Product。

$result = mysqli_query($con, "SELECT barcode, name, cost, salesprice, vatcode FROM   product where barcode = '$barcode' ");

所以我假设从我提供的片段中,我会改变项目列表&#39;将条形码&#39;,$ item作为$ barcode。所以任何帮助翻译这个片段以便我可以使用mysqli达到预期的效果将非常感激。

干杯

2 个答案:

答案 0 :(得分:0)

如果格式不正确,您可能需要稍微操纵$_POST['barcode']$barcodes

if ( ! empty($_POST['barcode']) ) {
  $barcodes = explode("\n", $_POST['barcode'])
  foreach ( $barcodes as $barcode) {
    $result[] = mysqli_query($con, "SELECT barcode, name, cost, salesprice, vatcode FROM   product where barcode = '$barcode' ");
  }

  if (! empty($result)) var_dump($result);
  else echo "No Product(s) Found";
}

答案 1 :(得分:0)

if ( ! empty($_POST['submit']) && ! empty($_POST['barcode'])) {
  $barcodes = "'" . str_replace("\n", "','", $_POST['barcode']) . "'";
  mysqli_query($con, "SELECT barcode, name, cost, salesprice, vatcode FROM product where barcode IN  ($barcode)");
}

使用上面的代码。在这里,我期待用新线分隔条形码。