|
|
|
พอดีต้องการดึงข้อมูล 2 ตารางมาแสดงหน้าเว็บแต่ติดปัญหาไม่รู้จะเขียนยังไงดีครับ |
|
|
|
|
|
|
|
พอดีต้องการดึงข้อมูลจากตาราง 2 ตารางมาแสดงหน้าเว็บแต่ติดปัญหาไม่รู้จะเขียนยังไงดีครับตัวเดิมไม่มีปัยหาแต่พอดีโดนให้เขียนแบบอาเรย์เลยไม่รู้เขียนไงดีทามมาก้อรันออกครับเลยให้เพื่อนๆหรือท่านที่พอรู้ช่วยแก้ให้หน่อยครับปัยหาคือตัวแปร $j ซึ่งในโค๊ดเดิมรันไม่มีปัญหาครับแต่อาจารย์สั่งให้เขียนเป็นอาร์เรย์แทนรันออกครับแต่ผลมันออกมาแปลกๆวึ่งตัวเดิมทำงานได้ครับเลยคิดว่าน่าจะผิดที่ตัวแปร $j หรือการวางเงื่อนไขกันแน่
ฐานข้อมูล
--
-- ฐานข้อมูล: `test`
--
-- --------------------------------------------------------
--
-- โครงสร้างตาราง `choice`
--
CREATE TABLE `choice` (
`Choice_Id` int(3) NOT NULL auto_increment,
`Choice` varchar(255) NOT NULL,
`Point` float NOT NULL default '0',
`Question_Id` varchar(3) NOT NULL,
PRIMARY KEY (`Choice_Id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=9 ;
--
-- dump ตาราง `choice`
--
INSERT INTO `choice` VALUES (1, '1', 1, '4');
INSERT INTO `choice` VALUES (2, '2', 0, '3');
INSERT INTO `choice` VALUES (3, '3', 0, '3');
INSERT INTO `choice` VALUES (4, '4', 0, '3');
INSERT INTO `choice` VALUES (5, '7', 0.5, '4');
INSERT INTO `choice` VALUES (6, '8', 0, '4');
INSERT INTO `choice` VALUES (7, '11', 0.5, '4');
-- --------------------------------------------------------
--
-- โครงสร้างตาราง `question`
--
CREATE TABLE `question` (
`Question_Id` int(3) NOT NULL auto_increment,
`Question_Detail` text NOT NULL,
`Question_Type` enum('S','M') NOT NULL default 'S',
`Picture` varchar(255) NOT NULL,
PRIMARY KEY (`Question_Id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ;
--
-- dump ตาราง `question`
--
INSERT INTO `question` VALUES (3, '1+1', 'M', 'pic1');
INSERT INTO `question` VALUES (4, '2+2', 'M', 'pic2');
โค๊ดตัวเดิมครับ
Code (PHP)
<?php
$host="localhost";
$username="root";
$password="1234";
$db="test";
mysql_connect( $host,$username,$password) or die ("ติดต่อกับฐานข้อมูล Mysql ไม่ได้ ");
mysql_select_db($db) or die("เลือกฐานข้อมูลไม่ได้");
$sql = "select * from question q, choice c where q.Question_Id = c.Question_Id order by c.Question_Id order by rand()";
$query = mysql_query($sql);
$i = 0;
while($row = mysql_fetch_array($query))
{
$tye = $row["Question_Type"];
/// m = mutiple choice /// s = single choice
if($tye=='S'){
if($i == 0){
$value = $row['Question_Id'];
$tye = $row["Question_Type"];
$pic = $row["Picture"];
echo $pic. "<br>";
echo $row['Question_Detail']. "<br>";
echo $tye. "<br>";
}
if($row['Question_Id'] == $value)
{
echo '<input type="radio" name= "'.rdo.$value .'" value = "' . $row['Choice_Id'] . '">'." " . $row['Choice']." point : ".$row['Point']."<br>";
$i++;
}
else if($row['Question_Id'] != $value)
{
$value = $row['Question_Id'];
$tye = $row["Question_Type"];
$pic = $row["Picture"];
echo $pic. "<br>";
echo $row['Question_Detail']. "<br>";
echo $tye. "<br>";
echo '<input type="radio" name= "'.rdo.$value .'" value = "' . $row['Choice_Id'] . '">'." " . $row['Choice']." point : ".$row['Point']."<br>";
/*<input name="answer[<?=$i;?>]" type="hidden" value="<?=$result["answer"];?>">*/
$i = 1;
}
}
else{
if($i == 0){
$value = $row['Question_Id'];
$tye = $row["Question_Type"];
$pic = $row["Picture"];
echo $pic. "<br>";
echo $row['Question_Detail']. "<br>";
echo $tye. "<br>";
}
if($row['Question_Id'] == $value)
{
echo '<input type= "checkbox" name= "checkbox[]" value = "' . $row['Choice_Id'] . '">'." " . $row['Choice']." point : ".$row['Point']."<br>";
$i++;
}
else if($row['Question_Id'] != $value)
{
$value = $row['Question_Id'];
$tye = $row["Question_Type"];
$pic = $row["Picture"];
echo $pic. "<br>";
echo $row['Question_Detail']. "<br>";
echo $tye. "<br>";
echo '<input type= "checkbox" name= "checkbox[]" value = "' . $row['Choice_Id'] . '">'." " . $row['Choice']." point : ".$row['Point']."<br>";
$i = 1;
}
}}
?>
ตัวที่สั่งให้เขียนใหม่แต่ทำงานผิดผลาดครับ
Code (PHP)
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
$host="localhost";
$username="root";
$password="1234";
$db="test";
mysql_connect( $host,$username,$password) or die ("µÔ´µè͡Ѻ°Ò¹¢éÍÁÙÅ Mysql äÁèä´é ");
mysql_select_db($db) or die("àÅ×Í¡°Ò¹¢éÍÁÙÅäÁèä´é");
$sql = "select * from question q, choice c where q.Question_Id = c.Question_Id ";
$dbqurey = mysql_query($sql);
$array_question_db = array();
$j =0;
while ($result = mysql_fetch_array($dbqurey))
{
$array_question_db['qid'][$j] = $result['Question_Id'];
$array_question_db['detail'][$j]= $result['Question_Detail'];
$array_question_db['picture'][$j] = $result['Picture'];
$array_question_db['choice_id'][$j] = $result['Choice_Id'];
$array_question_db['choice'][$j] = $result['Choice'];
$array_question_db['point'][$j] = $result['Point'];
$j= $j+1;
}
//echo print_r($array_question_db,true)."<br>";
echo print_r($array_question_db['qid'],true)."<br>";
echo print_r($array_question_db['choice_id'],true)."<br>";
echo print_r($array_question_db['choice'],true)."<br>";
for($j=0;$j<sizeof($array_question_db['qid']);$j++){
if($j==0 )
{
$value = $array_question_db['qid'][$j];
echo $array_question_db['qid'][$j]." -- " . $array_question_db['detail'][$j]. "<br>";
}
if($value == $array_question_db['qid'][$j] )
{
echo $array_question_db['choice_id'][$j]."".$array_question_db['choice'][$j]."</br>" ;
$j++;
}
else if($value != $array_question_db['qid'][$j] )
{
$value = $array_question_db['qid'][$j];
echo $array_question_db['qid'][$j]." -- " . $array_question_db['detail'][$j]. "<br>";
echo $array_question_db['choice_id'][$j]."".$array_question_db['choice'][$j]."</br>" ;
$j=1;
}
}
?>
อยากให้แสดงอย่างนี้ครับ
ข้อ 1.
ไอดีคำถามและ คำถาม
ตัวเลือกที่ 1
ตัวเลือกที่ 2
ข้อ 2.
ไอดีคำถามและ คำถาม
ตัวเลือกที่ 1
ตัวเลือกที่ 2
แต่พอเปลี่ยนมาเป็น array รันไม่ได้เลย
Tag : PHP
|
|
|
|
|
|
Date :
2013-01-18 22:32:40 |
By :
dannan882 |
View :
838 |
Reply :
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช้ Loop ซ้อน Loop ก็ไม่น่าจะมีปัญหาอะไรน่ะครับ
Code (PHP)
<?
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("mydatabase");
$strSQL = "SELECT * FROM tb_question";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
while($objResult = mysql_fetch_array($objQuery))
{
echo $objResult["QuestionName"];
$strSQL2 = "SELECT * FROM tb_question WHERE QuestionID = '"$objResult["QuestionID"].."' ";
$objQuery2 = mysql_query($strSQL) or die ("Error Query [".$strSQL2."]");
while($objResult2 = mysql_fetch_array($objQuery2))
{
echo $objResult2["OptionName"];
}
}
mysql_close($objConnect);
?>
|
|
|
|
|
Date :
2013-01-19 08:27:27 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|