1

これを使用してフォームのエントリを検証できるように、データベースにクエリを実行してスタッフ番号を取得しています。結果を配列にダンプし、誰かがフォームに数値を入力すると、それが存在することを検証します...ただし、機能せず、数値が見つかりません。それが私が配列を作成している方法だと思います。

$sql1 = "SELECT num FROM staff";
$data = array();
     $result1 = mysql_query($sql1, $conn) or die("db select error: " . $sql1);
      while($row1 = mysql_fetch_assoc($result1)){
          $data[]= $row1;
      }
var_dump($data);

$needle = 7034252;
if(in_array($needle,$data) )
   echo $needle . " found";
else
   echo $needle . " not found";
4

2 に答える 2

4

$data は多次元配列ですが、in_array は 1 次元配列を想定しています。もしかして:

$sql1 = "SELECT num FROM staff";
$data = array();
     $result1 = mysql_query($sql1, $conn) or die("db select error: " . $sql1);
      while($row1 = mysql_fetch_assoc($result1)){
          $data[]= $row1['num'];
      }
var_dump($data);

$needle = 7034252;
if(in_array($needle,$data) )
   echo $needle . " found";
else
   echo $needle . " not found";

ただし、このコードはより短く (より効率的に) なる可能性があります。

$needle = 7034252;
$sql = "SELECT COUNT(*) FROM staff WHERE num = " . mysql_real_escape_string($needle);
if (mysql_result(sql, 0) > 0)
   echo $needle . " found";
else
   echo $needle . " not found";
于 2012-12-07T20:29:49.020 に答える
-1

テストされていませんが、このようなことを試してみませんか?

$sql1 = "SELECT num FROM staff";
$result1 = mysql_query($sql1, $conn) or die("db select error: " . $sql1);
$needle = 7034252;
while($row1 = mysql_fetch_assoc($result1))
{
   if ($needle == $row1['num'])
   {
      echo $needle . " found";
   }
}
于 2012-12-07T20:30:10.957 に答える