주의: 정의되지 않은 오프셋: 0 in
이 PHP 에러가 발생하고 있는데, 무슨 뜻입니까?
Notice: Undefined offset: 0 in
C:\xampp\htdocs\mywebsite\reddit_vote_tut\src\votes.php on line 41
이 코드부터:
<?php
include("config.php");
function getAllVotes($id)
{
$votes = array();
$q = "SELECT * FROM entries WHERE id = $id";
$r = mysql_query($q);
if(mysql_num_rows($r)==1)//id found in the table
{
$row = mysql_fetch_assoc($r);
$votes[0] = $row['votes_up'];
$votes[1] = $row['votes_down'];
}
return $votes;
}
function getEffectiveVotes($id)
{
$votes = getAllVotes($id);
$effectiveVote = $votes[0] - $votes[1]; //ERROR THROWN HERE
return $effectiveVote;
}
$id = $_POST['id'];
$action = $_POST['action'];
//get the current votes
$cur_votes = getAllVotes($id);
//ok, now update the votes
if($action=='vote_up') //voting up
{
$votes_up = $cur_votes[0]+1; //AND ERROR THROWN HERE
$q = "UPDATE threads SET votes_up = $votes_up WHERE id = $id";
}
elseif($action=='vote_down')
{
$votes_down = $cur_votes[1]+1;
$q = "UPDATE threads SET votes_down = $votes_down WHERE id = $id";
}
$r = mysql_query($q);
if($r)
{
$effectiveVote = getEffectiveVotes($id);
echo $effectiveVote." votes";
}
elseif(!$r) //voting failed
{
echo "Failed!";
}
?>
있어요.0
$votes
이 키가 포함되지 않은 배열입니다.
" " "$votes
않기 에, 가 키 「」에 하면, PHP 는 키에 하려고 하고 있습니다.0
배열의 [0] 및 [1]에 대해 정의되지 않은 오프셋이 발생하여 오류가 발생합니다.
어레이가 있는 경우:
$votes = array('1','2','3');
이제 다음 항목에 액세스할 수 있습니다.
$votes[0];
$votes[1];
$votes[2];
접속을 시도하면:
$votes[3];
오류 "Notice:정의되지 않은 오프셋: 3 인치
먼저 어레이가 실제로 존재하는지 확인하십시오.
if (isset($votes)) {
// Do bad things to the votes array
}
이 답변은 https://stackoverflow.com/a/18880670/1821607을 지원하는 데 도움이 되었습니다.크러쉬 이유 - 인덱스 0은 설정되지 않았습니다.간단하죠.$array = $array + array(null)
가 0으로 설정되어 확인해야 .isset($array[0])
두 번째 변형은 저에게 가장 좋은 접근법입니다.
print_r($votes);
을 $votes
이 0
을 사용하다늘
getAllVotes()
는 인덱스가 0
★★★★★★★★★★★★★★★★★」1
결과를 호출하여 원하는 데이터를 반환하고 있는지 확인합니다.
이치노해결 방법은 간단합니다.코드의 어레이 인덱스 위치를 하드 코드하지 마세요. $data[0]['somekey']
하다 foreach($data as $data_item) { echo $data_item['somekey']; }
는 다른 할 수 .그 위에 다른 체크도 추가할 수 있습니다.첫 번째 위치나 다른 위치만 필요한 경우 변수를 추가하고 for in loop으로 늘려 루프를 제한할 수도 있습니다.
했듯이, 이 는 이 때문에 합니다.$cur_votes[0]
그 결과 오류가 발생합니다.
가 올바르게하기 위해, 을하기 전에 실시합니다."$votes_up = $cur_votes[0]+1;"
$cur_votes[0]
값을 지정하여 저장된 값이 있는지 여부를 확인합니다.
물론, 저장된 가치는 없습니다.
function getEffectiveVotes($id)
헤더에 변수는입니다.$id
에서는, 「27」이 votes[]
어레이가 정의되지 않았으며 범위를 벗어났습니다. ""가 해야 .getEffectiveVotes()
2년 전하다★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
function getEffectiveVotes($id, $votes)
이렇게 해야 한다고 말하는 것은 아니지만 PHP가 어레이를 어떻게 통과시키는지 알아보고 참조로 통과시키도록 명시적으로 명시할 필요가 있는지 결정하는 것이 좋습니다.
function getEffectiveVotes($id &$votes) <---I forget, no time to look it up right now.
마지막으로 콜 함수getEffectiveVotes()
두 가지 주장이 모두 들어맞는다는 것은 어디에나 있습니다.
건배.
당신은 이미 그 오류를 알고 있었을지도 모른다.이는 빈 어레이에 액세스하려고 하거나 어레이의 빈 키 값에 액세스하려고 하기 때문입니다.제 프로젝트에서는 어레이를 카운트하고 결과를 표시하는 데 있어서 이 에러가 발생하고 있습니다.
다음과 같이 할 수 있습니다.
if(count($votes) == '0'){
echo 'Sorry, no votes are available at the moment.';
}
else{
//do the stuff with votes
}
count($votes)
의 수를 세다$votes
배열이 0일 경우(0)
커스텀 메시지를 표시하거나 특정 페이지로 리다이렉트 할 수 있습니다.$votes
이렇게 하면,Notice: Undefined offset: 0
PHP로 통지합니다.
괄호를 생략하면 기본적으로 PHP가 키를 할당합니다.
이것을 시험해 보세요.
$votes = $row['votes_up'];
$votes = $row['votes_down'];
내 경우엔 단순한 타입이었다.
$_SESSION['role' == 'ge']
올바른 닫힘 브래킷이 누락되었습니다.
$_SESSION['role'] == 'ge'
dompdf/dompdf를 사용하는 경우 vendor/dompdf/dompdf/src/Cellmap에서 오류가 발생합니다.php update_row_group 메서드에서 잘못된 프레임 ID를 사용하고 있는 것 같습니다.초기 테스트에서 확인되었습니다.이것은 엄밀히 말하면 페이지 테이블 문제이고 테스트 베드에 있는 문서 중 페이지 테이블이 많지 않기 때문일 수도 있습니다.
800번 선을 다음과 같이 변경해 볼 수 있습니까?
$r_rows = $this->_frames[$g_key]["rows"];
$r_key 대신 $g_key)
https://github.com/dompdf/dompdf/issues/1295
대신 mysql 행 사용
mysql_sysql_rowsqr)
한편, mysqli 또는 PDO의 사용을 검토한다.
?>
다음 명령을 사용하여 데이터 시드 시도:php artisan db:seed
.
경고 사용일 뿐입니다.
error_reporting(0);
배열을 초기화하지 않고 인덱스에 직접 값을 할당하는 경우를 나타냅니다.
somefunction{
$raja[0]="this";
$raja[1]="that";
}
대신 다음과 같이 입력합니다.
somefunction{
$raja=array(0=>'this',1='that');
//or
$raja=array("this","that");
}
출력 오류나 예기치 않은 출력을 생성하지 마십시오.
언급URL : https://stackoverflow.com/questions/6549561/notice-undefined-offset-0-in
'programing' 카테고리의 다른 글
레코드의 변경 내역을 추적하는 MySQL 옵션/기능이 있습니까? (0) | 2023.01.21 |
---|---|
한 줄로 동적으로 인쇄 (0) | 2023.01.21 |
폴더 또는 파일 크기 가져오기 (0) | 2023.01.21 |
값을 붙여 임시 열을 추가하다 (0) | 2023.01.21 |
JUnit에서는 assertNotEquals 메서드가 제공되지 않는 이유는 무엇입니까? (0) | 2023.01.21 |