社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

条件不适用于PHP和mysqli

Yerkin • 3 年前 • 1251 次点击  

我的数据库中有两个表:学生和教师。我试着给每位老师分配4名学生,他们正在写关于老师主题的论文。为此,我创建了第三个表:赋值。我提出了两个条件:如果学生被分配(他或她分配的表值为1),那么代码应该跳过该学生,如果老师有超过3个分配的学生(他或她分配的表值小于4),那么代码应该跳过该老师。这是我尝试过的代码:

<?php

    require('config_teachers.php');
    require('config_students.php');

    // We get all the info as associative arrays: $students_info and $teachers_info.

    $serverName = "localhost";
    $user = "root";
    $password = "";
    $dbName = "yerkindb";
    
    foreach($students_info as $student_info){
        foreach($teachers_info as $teacher_info){
            if($student_info['assigned'] == 0 && $student_info['ee_subject'] == $teacher_info['ee_subject_1_choice'] && $teacher_info['assigned'] < 4 ){

                $conn = mysqli_connect($serverName, $user, $password, $dbName);

                if(mysqli_connect_errno()){
                        
                    echo "Failed to connect to mysqli.".mysqli_connect_errno();
                        
                } else {
                        
                    $name_student = $student_info['name'];
                    $name_teacher = $teacher_info['name'];
                    $subject = $student_info['ee_subject'];

                    $query = "INSERT INTO assignment(student_name, advisor_name, subject) values('$name_student', '$name_teacher', '$subject')";
                            
                    mysqli_query($conn, $query);

                    $assigned_teacher = $teacher_info['assigned'];

                    $assigned_teacher = $assigned_teacher + 1;

                    $query = "UPDATE teachers SET assigned = $assigned_teacher WHERE name = '$name_teacher'";

                    mysqli_query($conn, $query);

                    $query = "UPDATE students SET assigned = 1 WHERE name = '$name_student'";

                    mysqli_query($conn, $query);

                    mysqli_close($conn);
                }
            }
        }
    }

?>

排队

if($student_info['assigned'] == 0 && $student_info['ee_subject'] == $teacher_info['ee_subject_1_choice'] && $teacher_info['assigned'] < 4 ){

有我想要指定的条件,但是,当我运行代码时,我会让每个学生被指定给每一位老师,他们的主题与他或她正在写文章的主题相同。

有人能解释为什么这些条件会被忽略,即使

$student_info['ee_subject'] == $teacher_info['ee_subject_1_choice']

这种情况并没有被忽视。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/133846
 
1251 次点击  
文章 [ 1 ]  |  最新文章 3 年前