dongyong1942 2014-05-15 00:05
浏览 44
已采纳

PHP mysql_fetch_array多个表

So I have the below code that I'm trying to run partly as a login script, and partly to gather some information for another program. I don't get any errors with the script, I just don't get any information from the second and third mysql_fetch_array which I read is a common problem but that should only apply to the same table. Even so, I followed the recommended advice and used mysql_data_seek to reset the $result. I've also tried using different $result and $row variables but I still don't get any data back from those queries. Any thoughts on how I can do this?

    $result = mysql_query("SELECT * FROM user WHERE username = '$username'");
    $row = mysql_fetch_array($result);
    $salt = $row['salt'];
    $id = $row['id'];
    $usergroup = $row['usergroupid'];
    $mysql_pass = $row['password'];
    $md5_pass = md5($password.$salt);
    mysql_data_seek ($result, 0);
        if($mysql_pass == $md5_pass)
        {
            $result = mysql_query("SELECT teamid FROM tmnt_members WHERE teamid = '$id'");
            $row = mysql_fetch_array($result);
            $team = $row['teamid'];
            $captain = $row['leader'];
            $cocaptain = $row['coleader'];
            mysql_data_seek ($result, 0);
            $result = mysql_query("SELECT * FROM tmnt_teams WHERE teamid = '$team'");
            $row = mysql_fetch_array($result);
            $teamname = $row['teamname'];
        }
  • 写回答

2条回答 默认 最新

  • doulongsi1831 2014-05-15 00:22
    关注

    I've converted your code to MySQLi at least. I have quoted my comments inside. And did try to clean your code. Try this:

    <?php
    
    $con=mysqli_connect("Host","Username","Password","Database"); /* REPLACE NECESSARY DATA INSIDE */
    
    if(mysqli_connect_errno()){
    
    echo "Error".mysqli_connect_error();
    }
    
    $username=mysqli_real_escape_string($con,$_POST['username']); /* ASSUMING $username COMES FROM A POST DATA. JUST REPLACE IF NECESSARY */
    
    $result = mysqli_query($con,"SELECT * FROM user WHERE username = '$username'");
    while($row = mysqli_fetch_array($result)){
    
    $salt = mysqli_real_escape_string($con,$row['salt']);
    $id = mysqli_real_escape_string($con,$row['id']);
    $usergroup = mysqli_real_escape_string($con,$row['usergroupid']);
    $mysql_pass=mysqli_real_escape_string($con,$row['password']);
    $md5_pass = md5($password.$salt); /* MAKE SURE YOU HAVE $password AND $salt VARIABLES DECLARED ABOVE */
    
            if($mysql_pass == $md5_pass)
            {
                $result2 = mysqli_query($con,"SELECT teamid, leader, coleader FROM tmnt_members WHERE teamid = '$id'"); /* ADDED leader AND coleader */
                while($row2 = mysqli_fetch_array($result2)){
                $team = mysqli_real_escape_string($con,$row2['teamid']);
                $captain = mysqli_real_escape_string($con,$row2['leader']);
                $cocaptain = mysqli_real_escape_string($con,$row2['coleader']);
    
                     $result3 = mysqli_query($con,"SELECT * FROM tmnt_teams WHERE teamid = '$team'");
                     while($row3 = mysqli_fetch_array($result3)){
                     $teamname = mysqli_real_escape_string($con,$row3['teamname']);
                     } /* END OF THIRD LOOP */
    
                } /* END OF SECOND WHILE LOOP */
    
            } /* END OF IF MYSQL_PASS IS EQUALS TO MD5_PASS */
    
    /* IS THIS WHERE YOU WANT TO PRINT YOUR RESULTS? */
    echo $id." ".$usergroup." ".$team." ".$captain." ".$cocaptain. " ".$teamname;
    
    } /* END OF WHILE LOOP */
    
    ?>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集