반응형
PHP 및 SQL 문을 사용하여 RANK() 함수를 사용하여 표를 채우고 순위를 매김
저는 이 MariaDB 데이터베이스로 일하고 있습니다.
서버 버전: 10.3.31-MariaDB-log-clle-lve - MariaDB Server
프로토콜 버전: 10
사용자가 양식을 제출할 때마다 표를 업데이트하고 순위를 매기고 싶습니다.이 코드의 첫 번째 부분은 올바르게 작동하며, 양식을 제출할 때 사용자 항목을 삽입합니다(실행 시 연결을 확인하고 데이터베이스도 확인하여 채워짐).이 시점에서 레코드가 생성되었습니다.( //---RANKING PART----------- 코드에서)
이제 나는 테이블의 순위를 매길 필요가 있어서 https://mariadb.com/kb/en/rank/ 에 보고된 RANK() 기능을 사용하려고 많이 시도했지만 작동하지 않습니다.
add_action( 'gform_after_submission_13', 'myfunction', 10 , 1); // execute myfunction when user submit form 13
function myfunction($entry){
$nome = rgar( $entry, '1' );
$categoria = rgar( $entry, '4' );
$score = rgar( $entry, '2' );
$ig = rgar( $entry, '3' );
$servername = "xxxxxxxxxxx";
$username = "xxxxxxx";
$password = "xxxxxxxxxxxxxxxxxx";
$dbname = "xxxxxxxxxxx";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO Table1 (nome, categoria, score, ig)
VALUES ('$nome','$categoria','$score','$ig')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
//---RANKING PART-------------
$sql2="SELECT
RANK() OVER (PARTITION BY categoria ORDER BY score DESC) AS myrank,
nome, categoria, score, ig
FROM Table1 ORDER BY nome, score DESC";
if ($conn->query($sql2) === TRUE) {
echo "Ranking update";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
}
브라우저 상단에서 테스트 제출을 시도할 때 읽습니다.
새 레코드가 성공적으로 생성되었습니다. 오류: 표 1(이름, 범주, 점수, ig) 값('testname', 'testcategory', '576', 'test_ig')
추신. 제가 워드프레스의 스니펫 플러그인(php 스니펫을 만들기 위한 플러그인)에 이 코드를 넣었다는 것을 아는 것이 유용한지 모르겠습니다.다른 코드로 플러그인을 테스트해보니 정상적으로 작동합니다.
언급URL : https://stackoverflow.com/questions/70204029/populate-and-rank-a-table-using-rank-function-using-php-and-sql-statements
반응형
'programing' 카테고리의 다른 글
| Ubuntu에 특정 버전의 노드를 설치하는 방법은 무엇입니까? (0) | 2023.08.09 |
|---|---|
| MariaDB 속도 저하 - 증상과 원인을 구별하는 방법 (0) | 2023.08.09 |
| Oracle: 비교 작업에서 하위 쿼리의 공백이 있는 별칭을 참조하는 방법 (0) | 2023.08.09 |
| git와 gnome-keyring 통합 사용 방법 (0) | 2023.08.09 |
| Excel 파일을 만들고 ExcelJS로 쓰기 (0) | 2023.08.09 |