-3

データベースに という名前のテーブルがありますvisitor_table。テーブル内に、という名前の列がありますvisitor_affiliate。のときに行数を取得したいvisitor_affiliate = "someurer"

カウントを数値として取得したい。私はすでにこのコードを持っていますが、文字列を含む行の数だけを取得する方法がわかりません。現在、すべての行の数を取得していますが、

$result = mysql_query("SELECT * FROM visitor_table");   
$num_rows = mysql_num_rows($result);    
echo "$num_rows Rows\n";
4

4 に答える 4

3
  1. MySQL にカウントを返すように要求できます。

    SELECT COUNT(*) FROM visitor_table WHERE visitor_affiliate = 'someurer'
    
  2. 古い (PHP v5.5.0 で非推奨になり、間もなく完全に削除される) MySQL 拡張機能を新しいコードの記述に使用するべきではありません。代わりに、改良された MySQLi 拡張機能またはPDO 抽象化レイヤーを使用してください。どちらも変数を渡すことができます。安全でパラメーター化された方法でデータベースに送信し、SQL に対して評価されないようにします (したがって、SQL インジェクション攻撃を防ぎます)。

    $dbh = new PDO("mysql:dbname=$dbname", $username, $password);
    $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, FALSE);
    $qry = $dbh->prepare('
      SELECT COUNT(*) FROM visitor_table WHERE visitor_affiliate = ?
    ');
    $qry->execute(['someurer']);
    echo $qry->fetchColumn(), ' rows';
    
于 2013-01-18T14:51:52.653 に答える
1
$result = mysql_query("SELECT * FROM visitor_table WHERE `visitor_affiliate` = 'someurer'");
$num_rows = mysql_num_rows($result);
echo $num_rows . " Rows\n";
于 2013-01-18T14:48:54.557 に答える
0

あなたが与えたわずかな情報で、これを試してみてください-

$result = mysql_query("SELECT * FROM visitor_table Where visitor_affiliate like '%someurer%'");
$num_rows = mysql_num_rows($result);
echo "$num_rows Rows\n";
于 2013-01-18T14:49:52.300 に答える
0

非推奨の MySQL:

$res = mysql_query('SELECT * FROM visitor_table');
echo 'Number of rows:'.mysql_num_rows($res);

手続き型MySQLi:

$tu = mysqli_prepare($DBH,'SELECT * FROM visitor_table');
mysqli_execute($tu);
$num_rows = mysqli_num_rows($tu);
echo $num_rows.' rows\n';

mysql は廃止されました。mysqli を使用してください。MySQLi bind_param を使用して結果を取得します。

$someuser = 'Dave';
$DBH = mysqli_connect('localhost','user','pass','database');
$query = mysqli_prepare($DBH,'SELECT * FROM visitor_table WHERE user = ?');
mysqli_bind_param($query,'s',$someuser);
mysqli_execute($query);
mysqli_bind_result($id,$user,$tabCol1,$tabCol2);
while(mysqli_fetch_result){
    $row = $row +1;
    echo $user.': was found in the record with ID of: '.$id;
}
echo 'total records found:'.$row;

mysqli_num_row()上記のクエリでa を使用することについて完全に 100% 確信があるわけではないため、これは 1 つの方法です。

于 2013-01-18T14:57:23.983 に答える