gpt4 book ai didi

php - mysql_fetch_array 显示问题

转载 作者:行者123 更新时间:2023-11-30 23:33:50 26 4
gpt4 key购买 nike

下面的脚本是在数据库中搜索查询 ( $matric_no ),以便它返回名称(名字,姓氏, 其他名称)和其他学生信息。它工作正常,只要它返回一行,但每当返回两行或更多行时 名称(所有行都相同)的迭代次数也与返回的行数相同。我怎么能够 让它只返回学生姓名的一个实例 不管受影响的行数如何?

我也尝试过使用 LIMT 和 GROUP BY 但无济于事。

我在手机上打字,因此格式不规则。我没有不尊重社区的意思。

提前致谢。

<?php session_start(); ?>
<?php require('includes/dbconnect.php'); ?>
<?php require 'includes/header.inc.php'; ?>
<?php
$matric_no = mysql_real_escape_string($_POST['matric_no']) ;
if ( $_POST['matric_no'] == "")
{
echo"<div id=\"contentRight\">";
echo"<div id=\"msg\">" ;
echo "You didn't enter a <span style=\"color:red\"> Matric Number</span>";
echo"</div>" ;
echo"</div>" ;
exit();
}
$query = "SELECT matric_no
FROM main_table
WHERE main_table.matric_no = '$_POST[matric_no]'";
$result = mysql_query($query) ;
$duplicates = mysql_num_rows($result);
if ($duplicates < 1)
{
echo"<div id=\"contentRight\">";
echo"<idv id=\"msg\">" ;
echo "You dont have a record for <span style=\"color:red\">
$matric_no</span>" ;
echo"</div>" ;
echo"</div>" ;
exit();
}
{
$query = mysql_query("SELECT main_table.matric_no ,
main_table.session,
main_table.semester , main_table.course_name ,
(test+exam+practical) AS Total,
students.first_name, students.last_name, students.other_name,
students.level
FROM main_table INNER JOIN students ON
main_table.matric_no = students.matric_no
WHERE main_table.matric_no = '$_POST[matric_no]'")
or die (mysql_error());
while ($row = mysql_fetch_assoc($query)) {
echo $row["matric_no"] ;
echo "<br />";
echo $row["session"]; echo "<br />";
echo $row["semester"];
echo "<br />";
echo $row["course_name"];
echo "<br />";
echo $row["first_name"];
echo "<br />";
echo $row["last_name"];
echo "<br />";
echo $row["other_name"];
echo "<br />";
echo $row["level"]; echo "<br />";
}
}
?>

最佳答案

这只是对你的问题的一个建议,因为我不知道你想停止复制哪个字段。如果 first_name 一次又一次重复,我在这里向您建议一种停止打印 first_name 的方法。在这里,您必须确保您的查询也按该值集排序。

请验证此代码。

已编辑

 <?php session_start(); ?>
<?php require('includes/dbconnect.php'); ?>
<?php require 'includes/header.inc.php'; ?>
<?php
$matric_no = mysql_real_escape_string($_POST['matric_no']) ;
if ( $_POST['matric_no'] == "")
{
echo"<div id=\"contentRight\">";
echo"<div id=\"msg\">" ;
echo "You didn't enter a <span style=\"color:red\"> Matric Number</span>";
echo"</div>" ;
echo"</div>" ;
exit();
}
$query = "SELECT matric_no
FROM main_table
WHERE main_table.matric_no = '$_POST[matric_no]'";
$result = mysql_query($query) ;
$duplicates = mysql_num_rows($result);
if ($duplicates < 1)
{
echo"<div id=\"contentRight\">";
echo"<idv id=\"msg\">" ;
echo "You dont have a record for <span style=\"color:red\">
$matric_no</span>" ;
echo"</div>" ;
echo"</div>" ;
exit();
}
{
$query = mysql_query("SELECT main_table.matric_no ,
main_table.session,
main_table.semester , main_table.course_name ,
(test+exam+practical) AS Total,
students.first_name, students.last_name, students.other_name,
students.level
FROM main_table INNER JOIN students ON
main_table.matric_no = students.matric_no
WHERE main_table.matric_no = '$_POST[matric_no]' ORDER BY students.first_name")
or die (mysql_error());

$matchingString = "";
while ($row = mysql_fetch_assoc($query)) {
echo $row["matric_no"] ;
echo "<br />";
echo $row["session"]; echo "<br />";
echo $row["semester"];
echo "<br />";
echo $row["course_name"];
echo "<br />";
$checkingString = $row["first_name"] . $row["last_name"] . $row["other_name"] . $row["level"];

if($matchingString != $checkingString)
{
echo $row["first_name"];
echo "<br />";
echo $row["last_name"];
echo "<br />";
echo $row["other_name"];
echo "<br />";
echo $row["level"]; echo "<br />";
$matchingString = $checkingString;
}
}
}
?>

问题修改后的回答

只需将您的两个循环更改为如下所示。

for ($i = 0; $i < ($number_cols - 4); $i++) 

关于php - mysql_fetch_array 显示问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9185889/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com