고급 MySql이 좋지 않아 여러 테이블을 조인 한 결과를 단일 PHP 배열에 넣으려고했습니다.MySql INNER JOIN의 결과가 "이상한"배열
SELECT * FROM AAA
INNER JOIN BBB ON AAA.Aufg_id = BBB.Aufg_id
INNER JOIN CCC ON AAA.SchuelerNr = CCC.schuelernr AND AAA.Schulnummer = CCC.schulnummer AND AAA.Klasse = CCC.klasse
WHERE AAA.Schulnummer='$x' AND AAA.Klasse='$y' AND AAA.SchuelerNr='$z'
결과가
mysqli_fetch_all($mysqli_result, MYSQLI_BOTH);
삭제 그러므로 나는 루프를 통해 반복에 대한 연관 또는 번호 값을 얻을 수 있어요.
[0] => DEMO11
[sn] => DEMO11
[1] => 2014-03-31 10:05:14
[zt] => 2014-03-31 11:47:45
[2] => 8a_D1
[kl] => 8a_D1
[3] => 4
[snr] => 4
[4] => 1
[Aufg_id] => 1
[5] => f
[erg] => f
[6] => 1 <<<< WHERE DOES THIS COME FROM?
[7] => 1
[th] => 1
[8] => Deu
[fac] => Deu
값은 하나의 모든 행으로 증가하고있다 : 거의 모든 것을 거기에 있어야되지 않은 두 값을 제외하고 괜찮 았는데. 테이블 AAA와 BBB 사이에 바로 연관 키가 없습니다.
모든 행의 맨 끝에, 다른 열 중 하나에서 날짜를 나타내는 더욱 자극 값이있다 :
[43] => 8
[NA_Eng] => 8
[44] => 4
[NA_Fra] => 4
[45] => 2014-03-31 11:47:45 <<<<<< ???
질문 : 그 값에서 온 할 ? 나는 어떻게 그들을 제거 할 수 있습니까 ?? 당신이 당신의 결과에 숫자 키를 얻을 것이다,
mysqli_fetch_all($mysqli_result, MYSQLI_ASSOC);
이 방법을 :
**'*'를 사용하는 대신 SELECT에 열 이름을 지정하십시오. ** – Sebas
@Sebas에 동의하지만 그 값의 출처를 알려면 스키마에 대해 더 많이 알아야합니다. 당신은'SELECT *'를 사용하는 대신 리턴하고자하는 컬럼을 지정해야만한다. –
물론 컬럼을 지정하여 출력을 제한 할 수는 있지만 처음부터 문제가 해결되지는 않는다. 나는 그 값이 내가 만든 한 가지 끔찍한 sql 실수로 인한 것이라고 생각했습니다. @brian : 실제 프로젝트의 일부이기 때문에 더 많은 데이터베이스 구조를 온라인화할 수 없습니다. ( – Orliburli