【问题标题】:Using PHP to mySQL query SELECT COUNT使用 PHP 到 mySQL 查询 SELECT COUNT
【发布时间】:2014-12-03 07:22:02
【问题描述】:

我正在尝试对来自 POST 的数据使用 mySQL 查询。我是一个完全的初学者。问题是脚本不向我打印任何查询结果。

这是表格:

<form method="post" action="add.php">
<table width="400" border="0" cellspacing="1" cellpadding="2">
<tr>
<td width="100">Data dd/mm/rr</td>
<td><input name="data" type="date" id="data"></td>
</tr>
<tr>
<td width="100">First</td>
<td><input name="first" type="text" id="first" maxlength="2"></td>
</tr>
<tr>
<td width="100">Second</td>
<td><input name="second" type="text" id="second" maxlength="2"></td>
</tr>
<tr>
<td width="100"> </td>
<td>
<input name="add" type="submit" id="add" value="Add">
</td>
</tr>
</table>
</form>

这里是add.php

<html>
<body>
<link rel="stylesheet" href="mystyle.css">
<meta charset="utf-8"> 
<head>
  <title>Lottery</title>
</head>
<?php
if(isset($_POST['submit'])){
$value = $_POST['Value'];  
echo "Chosen value : " .$value;  
}

?>


<div class="results">
<p>Counter: <? echo "".$value ?></p>
<p>Place: <? echo "".$value ?>: </p>
<p>Best match<? echo "".$value ?> :</p>
</div>



    <?
$servername = "localhost";
$username = "lottery_root";
$password = "xyz";
$database = "lottery";
$conn = mysqli_connect($servername, $username, $password, $database) or die(mysqli_error($conn));



$result = mysqli_query($conn, "Select count(*) from lottery where first='$_SESSION[value]' or      second='$_SESSION[value]'; ");
if (!$result) echo mysqli_error($conn);

$row = mysqli_fetch_row($result);
print_r($row);
?>
</body>
</html>

@MMK 它看起来像这样并且效果更好,这就是它打印的内容。数组 ( [0] => 0 ) 但 0 不是正确的值。不管有多少记录与此查询匹配,它总是返回 0。连接到 db 并且查询正在执行,因为当我使用例如 SELECT * FROM lottery;它打印整条记录,但只打印一条,而不是全部。

【问题讨论】:

  • 不要把mysqlmysqli混在一起。

标签: php mysql select count


【解决方案1】:

我没有找到name="Value" 的任何字段

就像在 add.php 中一样,您期望在 $_POST['Value'] 中有一些值,因为没有具有此名称的字段,所以甚至没有设置 $_POST['Value']

【讨论】:

    【解决方案2】:

    您使用 mysqli 进行连接,而您在触发查询中未使用 $conn obj。

    试试这个

    $value = $_SESSION['value'];
    if($result = $conn->query("select count(*) from lottery where first='$value' or druga='$value'")){
      if(mysqli_num_row($result) > 0){
         $row = mysqli_fetch_object($results);
         print_r($row);
      }
    }else{
        print_r($conn->error)
    }
    $conn->close();
    

    【讨论】:

      【解决方案3】:

      您使用mysqli 进行连接并使用mysql 获取数据。其次,你为什么不选择database

      $servername = "localhost";
      $username = "lottery_root";
      $password = "xyz";
      $db = "yourDB";
      $conn = mysqli_connect($servername, $username, $password, $db) or die(mysqli_error($conn));
      
      $result = mysqli_query($conn, "Select count(*) from lottery where first='$_SESSION[value]' or second='$_SESSION[value]'; ");
      if (!$result) echo mysqli_error($conn);
      
      $row = mysqli_fetch_row($result);
      print_r($row);
      ?>
      

      【讨论】:

        【解决方案4】:

        您将mysql_* 函数与mysqli_* 混淆了。下一件事:您错过了 MySQL 连接中的第四个参数(在创建新的 Mysqli 对象时)。 Aaand,不要使用 PHP 短标签,它们已被弃用。而不是使用&lt;? 使用&lt;?php

        第二件事,您如何将value 键设置为会话?也许您应该在查询中使用$_POST 全局数组。

        试试这个:

        $servername = "localhost";
        $username   = "lottery_root";
        $password   = "xyz";
        $database   = "xxx";
        
        $conn = new mysqli($servername, $username, $password, $database);
        
        // Check connection
        if ($mysqli->connect_errno) {
            printf("Connect failed: %s\n", $mysqli->connect_error);
            exit();
        }
        
        $result = $mysqli->query("SELECT COUNT(*) FROM lottery WHERE first='".$_POST['first']."' or druga='".$_POST['second']."' ");
        
        if (!$result) {
            echo $conn->error;
        }
        
        $row = $result->fetch_row();
        
        print_r($row);
        
        
        $conn->close();
        

        【讨论】:

          【解决方案5】:

          应该是

          <?php echo "".$value ?>  
          

          不是

          <? echo "".$value ?>
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2017-10-28
            • 2014-01-18
            • 1970-01-01
            • 1970-01-01
            • 2012-04-17
            • 1970-01-01
            • 2017-03-15
            • 1970-01-01
            相关资源
            最近更新 更多