0

レコードセットの合計行数が より大きい場合にのみ HTML コードを表示する単純な条件を作成しています1。HTML コンテンツが表示されません。最良の条件オプションは何ですか?

mysql_select_db($database_connection, $connection);
$query_user = sprintf("SELECT * FROM users WHERE id = %s", GetSQLValueString($colname_user, "int"));
$user = mysql_query($query_user, $connection) or die(mysql_error());
$row_user = mysql_fetch_assoc($user);
$totalRows_user = mysql_num_rows($user);

<?php
if ($totalRows_user > 1) {
    ?>
 <a href="excluiru.php?id=<?php echo $row_user['id']; ?>">
<img src="imagens/delete.png" alt="Remover" onClick="return confirm('Do you really want to delete this User?');" /></a>Delete User
      <?php 
    } ?>

更新:mysql_num_rows($user);常にゼロの値を与えていることを発見しました。他に数え方はありますか?

問題を見つけて解決しました:D

<?php
$isExist = mysql_query("select COUNT(id) from users");
$r = mysql_fetch_array($isExist);
if($r['COUNT(id)'] > 1){
    ?>

totalrows ではなく fetch_array を使用する必要があります

4

3 に答える 3

1

1 つのレコードがあるため、1 より大きくなることはありません。

if ($totalRows_user > 1) 

する必要があります

if ($totalRows_user == 1) 

デバッグが機能したら削除できるもの

$colname_user = 1; // debug

$db=new PDO("mysql:host=localhost;dbname=test;","root","");
$ami = $db->prepare('SELECT count(*),id FROM users WHERE id = :id');
$ami->bindParam(':id', $colname_user, PDO::PARAM_INT);
$ami->execute();

print_r($ami->errorInfo()); // debug

$totalRows_user = $ami->fetchColumn();
$result = $ami->fetch(PDO::FETCH_ASSOC);
while($row_user = $ami->fetch(PDO::FETCH_ASSOC)) {

    print_r($row_user); // debug

    }

<?php
if ($totalRows_user == 1) {
    ?>
 <a href="excluiru.php?id=<?php echo $row_user['id']; ?>">
<img src="imagens/delete.png" alt="Remover" onClick="return confirm('Do you really want to delete this User?');" /></a>Delete User
      <?php 
    } ?>

http://www.php.net/manual/en/pdo.prepared-statements.php

于 2013-06-21T20:50:44.913 に答える
1

また

if ($totalRows_user >= 1)
于 2013-06-21T20:56:58.053 に答える
0

@emilio-gort と @amigura は正しいですが、PHP 5.5 (リリースされたばかり) では MySQL 拡張機能が非推奨になっていることに注意してください。代わりに MySQLI または PDO を使用する必要があります。どちらも適切なサニタイズを提供し、@nick-r が言及した Bobby テーブルを処理する必要があります。

于 2013-06-21T21:00:11.080 に答える