-1

重複の可能性:
mysql_fetch_array()は、パラメーター1がリソースであり、ブール値がselectで指定されていることを想定しています。

if (isset($_GET['uid']) && !empty($_GET['uid'])) {
$id = $_GET['uid'];
$sql = "SELECT * FROM `apps` WHERE `id` = ". mysql_real_escape_string($id) ." LIMIT 1";
    if ($result = mysql_query($sql)) {
    if (mysql_num_rows($result) == 1) {
    while($row = mysql_fetch_assoc($result)){
    $username = $row["MCName"];
    echo'

    //Here is a ton of rows and some html.

    ';
    }
    $sql = "SELECT * FROM `apps` WHERE `MCName` = ". $username;
    $result = mysql_query($sql);
    $rows = mysql_num_rows($result);


    }else {
         die('Record not found.');
    }
}
}

私はすべてを試しました、それは失敗し続けます。私はSQLやPHPのマスターではありません。「MCName」の行数を数えたいのですが、最初のSQLクエリでそれができるかどうかわかりません。また、エラーは44行目(別名mysql_num_rowsを実行する行)に表示されます。DBはスクリプトの前半で接続されています。

これが本当にばかげた質問なら申し訳ありませんが、私を信じてください。私は1時間かそこらで修正を探しました^^

4

3 に答える 3

3

2番目のクエリにSQL構文エラーがあります:

 $sql = "SELECT * FROM `apps` WHERE `MCName` = ". $username;

変数は$username引用符で囲む必要があります。修正するには、次のように更新してみてください。

 $sql = "SELECT * FROM `apps` WHERE `MCName` = '". $username . "'";
于 2012-08-25T18:55:07.297 に答える
1

これはphpからのものです:http://php.net/manual/en/function.mysql-query.php

Use of this extension is discouraged. Instead, the MySQLi or PDO_MySQL extension should be used. See also MySQL: choosing an API guide and related FAQ for more information. Alternatives to this function include:

詳細な例については、 http://www.php.net/manual/en/mysqli.query.phpを参照してください。

それを行う適切な方法??

$mysqli = new mysqli("localhost", "user", "password", "db");
$sql = "SELECT * FROM `apps` WHERE `MCName` = '%s' ";

if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
}

$result = $mysqli->query(sprintf($sql, $mysqli->real_escape_string($username)));
$rows = $result->num_rows;
于 2012-08-25T19:09:23.590 に答える
0
$sql = "SELECT COUNT(*) cn FROM `apps` WHERE `MCName` = '". $username."'";
$result = mysql_query($sql);

次に、そこから結果を取得します。

そして、ええ、mysql_*コマンドの代わりにPDOを使用することをお勧めします

于 2012-08-25T18:56:22.897 に答える