मैं एक कठिन समय इस पता लगाना हो रही है ...मैं दो mysql तालिकाओं को एक बड़े बहुआयामी सरणी में कैसे व्यवस्थित करूं?
मैं दो तालिकाओं ... ticket_winners, और टिकट
ticket_winners मेंमेज, उपयोगकर्ता नाम/प्रोफ़ाइल जानकारी ... है
टिकट तालिका इन उपयोगकर्ताओं के पास एक उपयोगकर्ता आईडी के लिए सभी टिकट हैं, इस तालिका में प्रत्येक उपयोगकर्ता के लिए 10+ टिकट हो सकते हैं।
प्रश्न: मैं कैसे कर सकते हैं डेटा की दूसरी यात्रा जब तालिका टिकट 1 से अधिक प्रत्येक उपयोगकर्ता
function pullTickets() {
$sql = $this->mysql->retrieve("SELECT * FROM ticket_winners ORDER BY id DESC LIMIT 5");
$sql2 = $this->mysql->retrieve("SELECT id, userId, ticketId FROM tickets ORDER BY id ASC LIMIT 5");
while($row = mysql_fetch_array($sql)) {
$results[$row['id']]['user'] = $row['userId'];
while($row2 = mysql_fetch_array($sql2)) {
if($results[$row['id']]['user'] == $row2['userId']) {
$results[$row['id']]['tickets'][$row2['id']] = $row2['ticketId'];
} else {
}
}
}
return $results;
}
पीएचपी पेज उदाहरण के लिए पंक्ति है के माध्यम से लूप: ठीक काम करता है
$data = $obj->pullTickets();
foreach($data as $user) {
echo $user['username'];
foreach($data['ticket'] as $ticket) {
echo $ticket['ticketId'];
}
}
अब सरणी कैसा दिखता है:
[1] => Array
(
[batch] => 1
[userId] => 200
[userName] => Craig
[tickets] => Array
(
[1] => GH7JNm72hN
[2] => JudM3rT3is
[3] => KiLPoXCmDF
)
)
[2] => Array
(
[batch] => 1
[userId] => 100
[userName] => Hewbie
needs to continue looping
)
टिकट तालिका को प्रत्येक उपयोगकर्ता के माध्यम से [1] सरणी में लूप नहीं किया जा रहा है। यह अन्य सभी उपयोगकर्ताओं के टिकट छोड़ देता है।
अच्छी तरह से एक एसक्यूएल शामिल एक अच्छी शुरुआत की तरह लगता है ... –
हाँ, मैंने कोशिश की।जब मैं एक जॉइन का उपयोग कर डेटा आउटपुट करता हूं, तो डुप्लिकेट पंक्तियां दिखायी जाती हैं, क्योंकि टिकट तालिका में एक ही उपयोगकर्ता के लिए एकाधिक प्रविष्टियां होती हैं। – Krunk
धन्यवाद टोनी! – Krunk