Я пробовал несколько раз, но не могу добиться правильного синтаксиса – согласно PHP 5.5.12 – для извлечения одной или нескольких строк из моей базы данных.
session_start(); $con=mysqli_connect("localhost","root","","doortolearn"); if (!$con) { echo "Could not connect to DBMS"; } $query="select * from teacher where tremail='$_POST[email]' and trpasssword='$_POST[password]'"; $result=mysqli_query($con,$query); $flag=FALSE; while ($row=mysqli_fetch_array($result,MYSQLI_BOTH)) { $_SESSION['email']=$row['email']; $flag=TRUE; }
Во-первых, у вас нет одиночных кавычек '
около $_POST[password]
:
$query = "SELECT * FROM teacher WHERE tremail='". $_POST['email'] ."' and trpasssword='" . $_POST['password'] . "'"; $result = mysqli_query($con, $query) or die(mysqli_error($con)); $flag = FALSE; while ($row = mysqli_fetch_array($result, MYSQLI_BOTH)) { $_SESSION['email'] = $row['email']; $flag = TRUE; }
Но прошло ли это, у вас даже есть подключение к базе данных MySQL здесь? Я вижу $con
но это действительно работает?
Кроме того, проверьте, есть ли ошибки, добавив or die(mysql_error($con))
в mysqli_query($con, $query)
.
Кроме того, у вас есть значение $_SESSION
, но вы даже session_start
в начале вашего скрипта?
Но я также рекомендую вам использовать mysqli_stmt_bind_param
для ваших значений, чтобы избежать их, если вы не собираетесь выполнять базовую проверку:
$query = "SELECT * FROM teacher WHERE tremail=? and trpasssword=?"; mysqli_stmt_bind_param($query, 'ss', $_POST['email'], $_POST['password']); $result = mysqli_query($con, $query) or die(mysqli_error($con)); $flag = FALSE; while ($row = mysqli_fetch_array($result, MYSQLI_BOTH)) { $_SESSION['email'] = $row['email']; $flag = TRUE; }
$r =$mysqli->query("select * from users"); while ( $row = $r->fetch_assoc() ) { ?> <tr> <td><?php echo $i++; ?></td> <td><?php echo $row['name']; ?></td> <td><?php echo $row['pwd']; ?></td> </tr> <?php } ?>