我正在尝试将mySQL查询与POST数据一起使用。我是一个初学者。问题是脚本不打印任何查询结果。
以下是表格:
<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] =&gt; 0)但是0不是正确的值。无论多少记录与此查询匹配,它总是返回0.有与db的连接并且查询正在执行,因为当我使用例如SELECT * FROM lottery时;它打印整个记录,但只打印一个,而不是全部。
答案 0 :(得分:1)
我找不到name="Value"
与add.php一样,您希望$_POST['Value']
中有一些值,因为没有包含此名称的字段,因此$_POST['Value']
甚至没有设置。
答案 1 :(得分:0)
您已将mysql_*
个功能与mysqli_*
混为一谈。接下来:你错过了MySQL连接中的第四个参数(当创建新的Mysqli对象时)。 Aaand,不要使用PHP短标签,不推荐使用它们。而不是使用<?
使用<?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();
答案 2 :(得分:0)
在点击查询时未使用 $ conn obj时,您已使用 mysqli 进行连接。
试试这个
$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 :(得分:0)
您正在使用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 :(得分:-1)
应该是
<?php echo "".$value ?>
不
<? echo "".$value ?>