Tôi chỉ mới bắt đầu học SQL nâng cao hơn cùng với PHP và tôi thực sự đang cố gắng tìm hiểu cách truy vấn cơ sở dữ liệu của mình cho một bài kiểm tra tôi đang xây dựng.Làm cách nào để truy xuất kết quả dưới dạng mảng đa chiều từ mySQL và PHP?
Cuối cùng, tôi đang cố gắng để trả về một đối tượng json với cấu trúc sau đó mang lại cho tôi một danh sách các câu hỏi và câu trả lời tất cả các khả năng như một mảng đa chiều:
{
"questions":
[
{
"question": "question text here",
"answers":
[
{ "answer": "answer text here", "points": 10 },
{ "answer": "answer text here", "points": 20 },
{ "answer": "answer text here", "points": 30 },
{ "answer": "answer text here", "points": 40 }
]
},
{
"question": "question text here",
"answers":
[
{ "answer": "answer text here", "points": 10 },
{ "answer": "answer text here", "points": 20 },
{ "answer": "answer text here", "points": 30 },
{ "answer": "answer text here", "points": 40 }
]
}
]
{
... từ tôi bảng mySQL có cấu trúc sau:
đố
id | title
1 | quiz title here
quiz_question
id | quiz_id (FK) | question_text
1 | 1 | question text here
2 | 1 | question text here
quiz_answer
id | quiz_question_id (FK) | answer_text | points
1 | 1 | answer text here | 10
2 | 1 | answer text here | 20
3 | 1 | answer text here | 30
4 | 1 | answer text here | 40
... với các phím nước ngoài sau đây:
quiz_question.quiz_id is FK to quiz.id
quiz_answer.quiz_question_id is FK to quiz_question.quiz_id
... bằng cách sử dụng PHP sau đây (trong đó là hình thức đơn giản nhất đó là hiện chỉ trả lại câu hỏi của tôi):
//query the db
$query = mysql_query("
SELECT quiz_question.question_text
FROM quiz_question
JOIN quiz ON quiz.id = quiz_question.quiz_id
WHERE quiz.id = 1;
");
$numrows = mysql_num_rows($query);
for ($i = 0; $i < $numrows; $i++) {
$row = mysql_fetch_assoc($query);
$quiz_data[$i] = array("question" => $row["question_text"]);
}
//echo JSON to page
$response = $_GET["jsoncallback"] . "(" . json_encode($quiz_data) . ")";
echo $response;
... và sử dụng jQuery $ .getJSON() trong JavaScript của tôi mà được một đối tượng JSON định dạng của tôi từ PHP của tôi mà được tôi lại như sau:
[
{"question":"question text here"},
{"question":"question text here"}
]
Vì vậy, câu hỏi của tôi là, làm thế nào tôi có thể viết SQL và PHP của tôi để tạo ra một mảng đa chiều như rất ở trên thay vì một mảng duy nhất như tôi hiện đang nhận được trở lại bây giờ? Tôi cần phải tìm ra cách bao gồm các câu hỏi và tất cả các câu trả lời liên quan như một mảng đa chiều.
'$ _GET [" jsoncallback "]()' làm gì? Nó trông đáng sợ: P – PeeHaa
@PeeHaa đó là cho jsonp –
Điều đó có chạy trong JS không? Nếu có, người dùng có thể làm điều gì đó như: 'http: // url? Jsoncallback = alert ('something'); gọi lại? <- url được mã hóa – PeeHaa