Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.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 多个名称相同、id不同的MySQL记录_Php_Mysql_Sql_Database - Fatal编程技术网

Php 多个名称相同、id不同的MySQL记录

Php 多个名称相同、id不同的MySQL记录,php,mysql,sql,database,Php,Mysql,Sql,Database,也许有一个简单的答案,但我不能用我的生命让这个工作 我使用的是PHP和MySQL,设置如下: $studentname = mysql_real_escape_string($_POST['sname']); $studentnumber = mysql_real_escape_string($_POST['snumber']); $course = mysql_real_escape_string($_POST['courseselect']);

也许有一个简单的答案,但我不能用我的生命让这个工作

我使用的是PHP和MySQL,设置如下:

    $studentname = mysql_real_escape_string($_POST['sname']);
        $studentnumber = mysql_real_escape_string($_POST['snumber']);
        $course = mysql_real_escape_string($_POST['courseselect']);

        $bike3 = mysql_query("SELECT stoodnumber FROM bikes505 WHERE stoodname='" . $studentname . "'");
        $bikestoods = mysql_fetch_array($bike3);

    while($row = mysql_fetch_array($stoodlistq))
            {
                $stoodentname = $row['stoodname'];
                $stoodentnumber = $row['stoodnumber'];
                //$coursename = $row2['coursename'];
                //$coursecode = $row2['coursecode'];


                if($studentname == $stoodentname && $studentnumber == $stoodentnumber){
                    //$success = 1;
                        //$success = "yupp";
                        //echo "SUCCESS, WE CAN REGISTER YOOOU!";
                        echo "<br>";

                        //echo "INSERT INTO " . $course . "";
                        switch($course){
                            case "Biking Safely":
                                if($studentnumber = $bikestoods[0] or $bikestoods[1]){
                                    echo "Sorry, this student has already registered";
                                } else if($bikecurrent < $bikemax){
                                    mysql_query("INSERT INTO bikes505 VALUES ('" . $stoodentname . "','" . $stoodentnumber . "')");
                                    echo "Yay, successfully registered " . $stoodentname . " - " . $stoodentnumber . " for " . $course;
                                    echo "<br>";
                                } else{
                                    echo "Sorry, class is full!";
                                }
                                break;
$studentname=mysql\u real\u escape\u字符串($\u POST['sname']);
$studentnumber=mysql\u real\u escape\u字符串($\u POST['snumber']);
$course=mysql\u real\u escape\u字符串($\u POST['courseselect']);
$bike3=mysql_query(“从bikes505中选择stoodnumber,其中stoodname='”“$studentname.”);
$bikestods=mysql\u fetch\u数组($bike3);
while($row=mysql\u fetch\u数组($stoodlistq))
{
$stoodentname=$row['stoodname'];
$stoodentnumber=$row['stoodnumber'];
//$coursename=$row2['coursename'];
//$coursecode=$row2['coursecode'];
如果($studentname==$stoodentname&$studentnumber==$stoodentnumber){
//$success=1;
//$success=“yupp”;
//echo“成功,我们可以注册YOOOU!”;
回声“
”; //echo“插入到“$course.”; 转换(课程){ 案例“安全骑自行车”: 如果($studentnumber=$bikestoods[0]或$bikestoods[1]){ echo“对不起,该学生已注册”; }否则如果($bikecurrent<$bikemax){ mysql_查询(“插入到bikes505值(““$stoodentname.”,“$stoodentnumber.”)中; echo“耶,成功注册了“$stoodentname.”-“$stoodentnumber.”,“$course; 回声“
”; }否则{ echo“对不起,已经满了!”; } 打破
…等等。我唯一的问题是,如果我有两个同名的学生,列表中的第二个会重复信息不正确

例如,MySQL表有'stoodname'和'stoodnumber',如果'Jimmy St.James'、'1010'和'Jimmy St.James'、'1090'都是表中的记录,那么我只能在课程中注册Jimmy 1010,而不能注册Jimmy 1090


我是不是在验证的过程中偏离了方向?还是我遗漏了一些非常明显的东西?起初我认为这只是因为我只使用了数组中的第一项
$bikestods[0]
,所以我将其更改为
$bikestods[0]或$bikestods[1]
但它仍然不起作用。

您正在进行查询,查找
stoodname
。当您执行类似操作时,使用可以重复的值执行此语句是不好的。可能您希望他们使用用户名和密码登录,或者使用您提供给他们的id登录,但除非这里有更好的idea、 我认为你不能以这个名字做这件事

$bikestoods = mysql_fetch_array($bike3);
仅引用
bike3
查询的第一个结果,并且只有2列:[0]和[stoodnumber]否[1]。如果要收集bike3中的所有ID,必须诅咒结果一次

while($stoodnumbers[] = mysql_fetch_array($bike3)); 

根据注释,您将$stoodlistq定义为:

$stoodlistq = mysql_query("SELECT * FROM stoodinfo");
稍后,将使用以下代码块:

$studentname = mysql_real_escape_string($_POST['sname']);
$studentnumber = mysql_real_escape_string($_POST['snumber']);
...
while($row = mysql_fetch_array($stoodlistq)) {
    ...
    if($studentname == $stoodentname && $studentnumber == $stoodentnumber){
此代码中的
while()
循环迭代每个记录,但是
if语句
检查POST变量。POST变量构成“一个学生”的单个组合-因此,您只能得到一个可以注册的学生


要解决此问题,您需要更新提交“学生姓名”/“学生编号”的表单以接受多个输入,或者更新
if语句
以仅检查学生姓名(这可能导致更不希望出现的情况).

检查它是否在数组中,在它的任何位置。PS:按名称检查通常是一件非常痛苦的事情。真正的唯一数据,如SSN或其他东西,最好使用
while($row=mysql\u fetch\u array($stoodlistq))
,但我在任何地方都没有看到作为MySQL结果的
$stoodlistq
。它在哪里定义?对不起,@newfurniture它被定义为
$stoodlistq=MySQL\u查询(“从stoodinfo选择*)
我有几百行代码,所以我不想复制和粘贴所有东西汉克,我改变了主意,第一个检查是一个
in_array()
检查学生号,然后检查姓名和一切都很好