MySQL запрос не работает на сервере и локально работает нормально

Я не понимаю, что здесь происходит.
Это мой код:

    <?php
function chestnum(){
$servername = "localhost";
$username = "athletics";
$password = "";
$dbname = "athletics";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
//selecting all chest number unallotted students
$query = 'SELECT * FROM student WHERE CHEST = 0';
$result = mysqli_query($conn, $query);
//selecting all departments' max chest number
//$query = 'SELECT MAX(CHEST) FROM student GROUP BY batch';
//$max = mysqli_query($conn, $query);
while($row = mysqli_fetch_assoc($result)){
$batch = $row['batch'];
$roll =  $row['roll'];
$q = "SELECT MAX(`CHEST`) FROM `STUDENT` WHERE `batch`='$batch'";
//$q = "SELECT MAX(CHEST) WHERE batch = $batch";
$allmax = mysqli_query($conn, $q);
while($rowm = mysqli_fetch_assoc($allmax))
{
echo $max=$rowm['MAX(`CHEST`)'];
}
//echo $cse = $bcr;echo $csa = $bcr;echo $me = $bcr; echo $ece = $bcr;echo $eee = $bcr;
/*
CHEST NUMBER ALLOCATION INFO
//100-250mech, 251-400ec, 401-550eee, 551-700cse, 701-850csa
*/
//Checking for the department and setting chest number
if($batch==1 && $max==0){
$q = "UPDATE student SET CHEST = 100 WHERE roll LIKE '$roll'";
} else if($batch==1 && $max == 250) {
$q = "UPDATE student SET CHEST = 900 WHERE roll LIKE '$roll'";
} else if($batch==1){
$max++;
$q = "UPDATE student SET CHEST = $max WHERE roll LIKE '$roll'";
}
if($batch==2 && $max==0){
$q = "UPDATE student SET CHEST = 251 WHERE roll LIKE '$roll'";
} else if($batch==2 && $max == 400) {
$q = "UPDATE student SET CHEST = 1000 WHERE roll LIKE '$roll'";
} else if($batch==2) {
$max++;
$q = "UPDATE student SET CHEST = $max WHERE roll LIKE '$roll'";
}
if($batch==3 && $max==0){
$q = "UPDATE student SET CHEST = 401 WHERE roll LIKE '$roll'";
}  else if($batch==3 && $max == 550) {
$q = "UPDATE student SET CHEST = 1100 WHERE roll LIKE '$roll'";
} else if($batch==3) {
$max++;
$q = "UPDATE student SET CHEST = $max WHERE roll LIKE '$roll'";
}
if($batch==4 && $max==0){
$q = "UPDATE student SET CHEST = 551 WHERE roll LIKE '$roll'";
} else if($batch==4 && $max == 700) {
$q = "UPDATE student SET CHEST = 1200 WHERE roll LIKE '$roll'";
} else if($batch==4) {
$max++;
$q = "UPDATE student SET CHEST = $max WHERE roll LIKE '$roll'";
}
if($batch==5 && $max==0){
$q = "UPDATE student SET CHEST = 701 WHERE roll LIKE '$roll'";
} else if($batch==5 && $max == 850) {
$q = "UPDATE student SET CHEST = 1300 WHERE roll LIKE '$roll'";
} else if($batch==5) {
$max++;
$q = "UPDATE student SET CHEST = $max WHERE roll LIKE '$roll'";
}
//assigning the chest number
mysqli_query($conn, $q);
}
}
?>

Код работает нормально при тестировании на моей локальной машине, но ничего не показывает при выполнении на сервере. Там нет ошибки при выполнении. Функция сундук вызывается из другого файла.

2

Решение

Я сталкивался с этой проблемой раньше. Имя таблицы является проблемой здесь. Имя таблицы чувствительно к регистру.

'SELECT * FROM student WHERE CHEST = 0';

"SELECT MAX(`CHEST`) FROM `STUDENT` WHERE `batch`='$batch'";

измените имя таблицы на STUDENT (и убедитесь, что на сервере MySQL оно совпадает).

1

Другие решения

Это может быть очевидно, но если вы еще этого не сделали, измените ваше имя сервера. если он работает на локальном хосте, это потому, что ваше имя сервера — localhost. На вашем веб-сайте перейдите в панель управления и найдите область mysql, в которой будет указано имя сервера, которое вы должны использовать, хотя оно может называться Host Name. Скопируйте это туда, где у вас есть localhost. Также имя базы данных, скорее всего, будет другим, но оно будет указано на панели управления вашего веб-сервера.

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector