Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP从数据库打印数据_Php_Mysql_Database_Phpmyadmin - Fatal编程技术网

使用PHP从数据库打印数据

使用PHP从数据库打印数据,php,mysql,database,phpmyadmin,Php,Mysql,Database,Phpmyadmin,每个人都说从MySQL数据库打印数据很容易,但到目前为止,我被难倒了。我是PHP新手,正在尝试从数据库打印个人数据。例如,Joe Bloggs已经登录,然后他可以查看他的兴趣爱好等。所以我试图实现的是让用户登录并查看他们的信息 基本上,用户可以登录,但是我尝试设置一个变量来存储SQL查询,如果用户成功登录,则将其打印出来,但是我现在收到以下错误消息-这不会消失 ( ! ) SCREAM: Error suppression ignored for ( ! ) Warning: mysql_fet

每个人都说从MySQL数据库打印数据很容易,但到目前为止,我被难倒了。我是PHP新手,正在尝试从数据库打印个人数据。例如,Joe Bloggs已经登录,然后他可以查看他的兴趣爱好等。所以我试图实现的是让用户登录并查看他们的信息

基本上,用户可以登录,但是我尝试设置一个变量来存储SQL查询,如果用户成功登录,则将其打印出来,但是我现在收到以下错误消息-这不会消失

( ! ) SCREAM: Error suppression ignored for
( ! ) Warning: mysql_fetch_array() expects parameter 1 to be resource, string given in    C:\wamp\www\myfiles\login.inc.php on line 32
Call Stack
#   Time    Memory  Function    Location
1   0.0015  365584  {main}( )   ..\index.php:0
2   1.0144  387472  include( 'C:\wamp\www\myfiles\login.inc.php' )  ..\index.php:6
3   1.0427  390752  mysql_fetch_array ( )   ..\login.inc.php:32

像几乎所有的初学者一样,我犯了一个错误,创建了一个庞大的文件,这使我试图编写的代码过于复杂(而且已经很晚了,我很累,因此我可能看不到任何错误)。然而,这是很好的评论

如果您有任何意见和建议,我将不胜感激

//如果用户未输入UN和PW发送错误消息,则创建变量username和password
if(isset($\u POST['username'])和&isset($\u POST['password'])){
$username=$_POST['username'];
$password=$_POST['password'];
if(空($username)和空($password)){
echo“提供用户名和密码”;
}
//将MySQl查询保存为变量,以便以后引用它们
//用于登录
$query=“从`students`中选择*,其中`username`='$username'和`password`='$password';
//用户登录结果
$result=mysql\u query($query);
//显示用户正在学习的课程
$user=“从“学生”中选择*”;
//设置登录条件
如果($结果){
//如果数据按行匹配,则发送一条消息,说明用户已登录
如果(mysql_num_rows($result)>0){
会话_重新生成_id();
$member=mysql\u fetch\u assoc($result);
$\会话['姓氏\名称]=$member['username'];
$_会话['SESS_ID']=$member['password'];
会话写入关闭();
//如果登录,则列出他们正在学习的课程
echo“您现在已登录”;
while($row=mysql\u fetch\u数组($user))
{
echo$row['GivenName']、$row['username']、$row['password']、$row['Course1']、$row['Course2']、$row['Course2'];
回声“
”; } 退出(); }否则{ //创建布尔条件-如果不匹配,则发送错误消息 $errflag=true; 如果($errflag){ 会话写入关闭(); 回显“无效的用户名/密码组合”; 退出(); } } }否则{ //显示错误 echo mysql_errno().“:”.mysql_error();exit(); } } ?> 用户名:密码:
如果您是php和mysql的初学者,则以下是一些基础步骤,这些步骤可能会帮助您,这取决于您适合使用的连接

MYSQLI

第一:设置数据库用户、PASS、HOST和DBNAME的配置

$conn = new mysqli('database_server','database_username','database_password','database_name');
$conn = mysql_connect('database_server','database_username','database_password');
mysql_select_db($conn,'databasename')
第二:创建查询(您可以在此处插入查询)

最终:显示使用MYSQL函数的记录,如

while($row = $result->fetch_assoc()){
    echo $row['dabatase_columnname'];
    echo $row['database_columnname'];
}
while($row = $result->mysql_fetch_array($result)){
    echo $row['dabatase_columnname'];
    echo $row['database_columnname'];
}
PDO

连接到数据库 db=新的PDO(“…”)

创建查询

$statement = $db->prepare("select id from some_table where name = :name");
使用bind参数执行查询

$statement->execute(数组(':name'=>“Jimbo”)

获取通过查询返回的所有数据

$row = $statement->fetch(); // Use fetchAll() if you want all results, or just iterate over the statement, since it implements Iterator
MYSQL

第一:设置数据库用户、PASS、HOST和DBNAME的配置

$conn = new mysqli('database_server','database_username','database_password','database_name');
$conn = mysql_connect('database_server','database_username','database_password');
mysql_select_db($conn,'databasename')
第二:创建查询(您可以在此处插入查询)

最终:显示使用MYSQL函数的记录,如

while($row = $result->fetch_assoc()){
    echo $row['dabatase_columnname'];
    echo $row['database_columnname'];
}
while($row = $result->mysql_fetch_array($result)){
    echo $row['dabatase_columnname'];
    echo $row['database_columnname'];
}

问题是你没有这样做:

 mysql_query($user);
只需在
mysql\u fetch\u数组之前添加如下内容:

$user_result = mysql_query($user);
while($row = mysql_fetch_array($user_result)){
     //...
}
但是,是的,正如另一个人所说,请改用
MySqli
PDO
。它们不再被维护,并被正式弃用

下面是一个使用PDO和准备好的语句的代码示例。您可能只需要更改连接信息

<?php
// Get your connection sorted.
$db = new PDO('mysql:host=localhost;dbname=testdb;charset=utf8', 'username', 'password');
// Prepare a few statements for use later.
$stmtResult = $db->prepare("SELECT * FROM `students` WHERE `username`=?AND `password`=?");
$stmtUser = $db->prepare("SELECT * FROM `students`");

// create variables username and password,if a user doesn't enter a UN and PW send error message
if (isset($_POST['username'])&& isset ($_POST['password'])){
    $username= $_POST['username'];
    $password= $_POST['password'];

    if (empty ($username)&&empty ($password)){
        echo 'supply username and password';
    }

    // Use the try catch paradigm instead of if/else, because PDO will
    // throw an exception if things go sideways.
    try{
        // Execute the prepared statement, passing in the variables.
        $stmtResult->execute(array($username, $password));
        // Get the results in an array & then get the result count.
        $rows = $stmtResult->fetchAll(PDO::FETCH_ASSOC);
        $row_count = $stmt->rowCount()

        if($row_count > 0) {
            session_regenerate_id();
            $member = $rows[0];

            $_SESSION['SURNAME_NAME'] = $member['username'];
            $_SESSION['SESS_ID'] = $member['password'];
            session_write_close();
            //if logged on list course they are studying
            echo 'you are now logged in.<a href = "logout.inc.php">Log out</a>';
            $stmtUser->execute();

            // I moved this next call down to the loop because
            // there is no real reason to call it sooner than this
            while($row =  $stmtResult->fetchAll(PDO::FETCH_ASSOC))
            {
                echo $row['GivenName'],$row['username'], $row['password'],$row['Course1'],$row['Course2'], $row['Course2'];
                echo "<br />";
            }
            exit();
        }else {
            // create boolean condition- if no match send error message
            $errflag = true;
            if($errflag) {
            session_write_close();
            echo 'invalid username/password combination';   
            exit();

            }
        }
    }catch(PDOException $ex) {
        // This is what happens if something did go sideways.
        echo $ex->getCode() . ": " . $ex->getMessage(); 
        exit();
    }
}

?>
<form method="POST">
Username: <input type = "text" name="username"> Password: <input type ="password" name="password">
<input type="submit" value="Log in">
</form

。它们不再得到维护。看到了吗?改为了解,并使用或-将帮助您决定哪个.Variable$user包含字符串“select…”。Mysql_fetch_数组需要资源作为参数。因此,尝试$tMP= MySqLyQualQuy($Author)和下一个($ROL= MyQuLLFETCHCHYARM数组($TMP))…如果您的用户可以有多个课程,您也可以考虑将其存储在您的学生表和课程表之间的单独查找表中。您的查找表将具有用户id和课程id。请慢慢开始,然后逐步建立。凯伊给了你第一步。