ช่วยดูปัญหาจากการ JOIN MySQL หน่อยนะ (ค่า id ที่ส่งมันเท่ากับ 0)+มีรูปประกอบอธอิบาย
งั้นต้องเอาโค้ดในหน้าที่มีลิงค์ Read more มาลงด้วยครับ
Date :
2014-04-20 13:15:13
By :
sakuraei
โค้ดหน้า read more แบบเต็มคะ
Code (PHP)
<?php
include "script/mapscript.php";
include('connect099.inc.php');
$id = $_GET["id"];
mysql_query('SET NAMES utf8');
$query = mysql_query("SELECT*FROM maptravel WHERE maptravel.map_id = '$id'");
$result = mysql_fetch_array($query); //mysql_fetch_assoc
?>
<table class="table table-bordered">
<tr>
<td>
<center> <h2> <b>ยุคประวัติศาสตร์ที่เกี่ยวข้องสถานที่ท่องเที่ยวแห่งนี้</b></h2> </center>
<br>
<center>
<?php
$ckjoin = mysql_query("SELECT * FROM historygen AS h
LEFT JOIN join_place_and_subhistory AS j ON h.history_id = j.history_id
WHERE j.map_id = '" . $_REQUEST['id'] . "' ");
if (mysql_num_rows($ckjoin) == 0) {
echo "<div style=\"padding:0px\"> <center><i> ยังไม่มีการระบุความสัมพันธ์ระหว่างสถานที่ท่องเที่ยวและยุคประวัติศาสตร์ </i></center></div>";
} else {
while ($row = mysql_fetch_array($ckjoin)) {
echo "<button class='btn btn-small'><a href='showallhistory.php?&id=" . $row["history_id"] . "'>" . $row['history_name'] . "</button> ";
}
}
?>
</center>
</td>
</tr>
</table>
<table>
<tr>
<td width="49%"><h4>สถานที่ท่องเที่ยว : <?php echo $result["map_name"]; ?></h4> <br>
<p><?php
if ($result['map_picture'] != "") {
?>
<a href="script/imgmap/<?= $result['map_picture']; ?>" rel="lightbox[roadtrip]"><img src="script/imgmap/<?= $result['map_picture']; ?>" width="150"/></a>
<?php } else { ?>
<img src='no.png' width="150">
<?php
}
?> </p>
<p> <b>หมวดหมู่เส้นทางการเดินทาง : </b>
<?php
$strSQL33 = "SELECT * FROM maptravel AS a LEFT JOIN mapway_type AS b ON a.map_type = b.waytype_id WHERE a.map_id = '$id'";
$objQuery33 = mysql_query($strSQL33) or die("Error Query [" . $strSQL33 . "]");
$objResult33 = mysql_fetch_array($objQuery33);
?>
<?php echo $objResult33["waytype_name"]; ?>
</p> <br>
<p> <b>ที่อยู่สถานที่ท่องเที่ยว : </b> <?php
if ($result['map_address'] != "") {
?>
<?php echo $result["map_address"]; ?>
<?php
} else {
echo "<i>ไม่มีรายละเอียดในส่วนนี้</i>";
}
?> </p> <br>
<p> <b> บทนำเนื้อหาประวัติศาสตร์ : </b> <?php
if ($result['map_detail'] != "") {
?>
<?php echo $result["map_detail"]; ?>
<?php
} else {
echo "<i>ไม่มีรายละเอียดในส่วนนี้</i>";
}
?> </p> <br>
<p><b>ไฟล์เอกสารความรู้</b></p>
<p><?php
if ($result['map_doc'] != "") {
?>
<button class="btn btn-small"><i class="icon-star"></i><a href="download.php?file=script/filemap/<?php echo $result["map_doc"]; ?>">Download File KM</a></button>
<p><b>ชื่อไฟล์ : </b> <?= $result["map_doc"]; ?><?php echo $_FILES["docmapmap"]["name"]; ?></p>
<?php
} else {
echo "<i>ไม่มีเอกสารความรู้ในส่วนนี้</i>";
}
?> </p> <br>
</td>
<td>
<b>คลิปวีดีโอประกอบ (Youtube)</b>
<p>
<?PHP
if ($result['map_youtube'] !== '') {
echo $result['map_youtube'];
} else {
echo "<i>ยังไม่ได้คัดลอกลิงคฺแบบฝั่งจาก Youtube มาวาง</i>";
}
;
?>
</p>
<p>
<?PHP
if ($result['map_youtubedes'] !== '') {
echo $result['map_youtubedes'];
} else {
echo "";
}
;
?> </p>
</td>
</tr>
<tr>
<td colspan="9">
<p><b>รูปภาพประกอบอื่นๆ (เพิ่มเติม)</b></p>
<?php
$strSQL4 = "SELECT * FROM picture WHERE fk_id = '" . $_GET["id"] . "' AND type_id = '1' ";
$objQuery4 = mysql_query($strSQL4) or die("Error Query [" . $strSQL4 . "]");
?>
<center>
<?php
if (mysql_num_rows($objQuery4) == 0) {
?>
<center><img src="no.png" width="350"></center>
<?php
} else {
echo"<table border=\"0\"><tr>";
$intRows = 0;
while ($objResult4 = mysql_fetch_array($objQuery4)) {
echo "<td>";
$intRows++;
?>
<a href="../pic/<?= $objResult4["pic_pic"]; ?>" rel="lightbox[roadtrip]" title="<?= $objResult4["pic_name"]; ?><br><b>Credit :</b> <?= $objResult4["pic_cr"]; ?>"><img src="../pic/<?= $objResult4["pic_pic"]; ?>" width="70" height="70"></a><br>
<br>
<?php
echo"</td>";
if (($intRows) % 12 == 0) {
echo"</tr>";
}
}
echo"</tr></table>";
}
?> </center>
</td>
</tr>
</table>
Date :
2014-04-20 13:23:04
By :
sunz เจ้าของกระทู้
ไม่ใช่ครับ ต้องการโค้ด หน้าก่อนหน้านี้ หน้าที่มีปุ่มที่เขียนว่า Read more..
Date :
2014-04-20 13:28:50
By :
sakuraei
โค้ดก่อนหน้า read more ค่ะ
Code (PHP)
<?php
if($_POST["ddlCountryCode"] != "")
{
include 'connect099.inc.php';
$sql = "SELECT maptravel.*,mapway_type.* FROM maptravel LEFT JOIN mapway_type ON maptravel.map_type = mapway_type.waytype_id WHERE (map_type = '".$_POST["ddlCountryCode"]."') ORDER BY maptravel.map_id ASC";
$sqlquery = mysql_query($sql) or die ("Error Query [".$sql."]");
}
?>
<?php $Num_Rows = mysql_num_rows($sqlquery); ?>
<h2><i class="icon-edit"></i>ค้นหาเส้นทางท่องเที่ยว- Search Paths</h2>
<b>จำนวนรายการทั้งหมด</b> <?= $Num_Rows; ?> <b>รายการ</b> <br> <br>
<table class="table table-striped table-bordered">
<thead>
<tr>
<th>รูปภาพ</th>
<th>รายละเอียด</th>
</tr>
</thead>
<?php
if (mysql_num_rows($sqlquery) == 0) {
echo "<div style=\"padding:20px\"> <i>ไม่พบข้อมูลจากการค้นหาดังกล่าว</i> </div>";
} else {
while ($result = mysql_fetch_array($sqlquery)) {
?>
<tbody>
<tr>
<td width="18%">
<?php
if($result['map_picture'] != "")
{
?>
<img src="script/imgmap/<?= $result['map_picture']; ?>" width="250"/>
<?php
}else{ ?>
<img src='no.png' width="250">
<?php
}
?>
</td>
<td width="">
<p><b>ชื่อสถานที่ท่องเที่ยว : </b><?php echo"<b>". $result["map_name"] . "</b>"; ?><br/>
<p><b>ที่อยู่สถานที่ท่องเที่ยว :</b> <?php
if ($result['map_address'] != "") {
?>
<?php echo $result["map_address"]; ?>
<?php
} else {
echo "<i>ยังไม่มีที่อยู่สถานที่ท่องเที่ยวส่วนนี้</i>";
}
?><br/>
<p><b>หมวดหมู่เส้นทางการเดินทาง:</b>
<?php echo $result["waytype_name"];?><br/>
<p> <b>คำอธิบายโดยย่อ</b> </p><?php
if ($result['map_detail'] != "") {
?>
<?php echo $result["map_detail"]; ?>
<?php
} else {
echo "<i>ยังไม่มีรายละเอียดข้อมูลส่วนนี้</i>";
}
?><br/> <br>
<p><b> <a href="showallmap.php?type=&id=<?php echo $result["map_id"]; ?>"><i>Read more..</i> </a>
</b></p>
</tr>
<?php } ?>
</tbody>
<?php } ?>
</table>
<br>
<b>จำนวนรายการทั้งหมด</b> <?= $Num_Rows; ?> <b>รายการ</b> <br> <br>
<?php
mysql_close();
?>
Date :
2014-04-20 13:33:18
By :
sunz เจ้าของกระทู้
เพิ่ม
อันนี้เป็นโค้ดก่อนหน้าเลือก seach เส้นทางการเดินทางค่ะ
โค้ดก่อนหน้าจะ search หน้าปกติค่ะ
<?php
include 'connect099.inc.php';
$sql = "select * from maptravel";
$sqlquery = mysql_query($sql) or die("Error Query [" . $sql . "]");
$Num_Rows = mysql_num_rows($sqlquery);
//echo $sqlquery;
?>
<form name="frmSearch" method="get" action="showsearch.php">
<table width="599" border="0">
<tr>
<td><b>ค้นหาสถานที่ท่องเที่ยว : </b>
<input name="txtKeyword" type="text" id="txtKeyword" value="<?= $_GET["txtKeyword"]; ?>">
<input type="submit" value="Search"<i class="icon-search"></i> </td>
</tr>
</table>
</form>
<form name="frmSearch" method="post" action="showsearchdrop.php">
<table>
<tr>
<th>ค้นหาสถานที่ท่องเที่ยวจากเส้นทางการเดินทาง
<select name="typeway" id="typeway">
<option value="" /> ---เลือกเส้นทาง---
<option value="1" /> เส้นทางจักรยาน (Bike Path)
<option value="2"/> เส้นทางเรือ (Boat Path)
<option value="3"/> เส้นทางท่องเที่ยวภายในเมืองและชุมชน (Citylife Path)
<input type="submit" value="Search"<i class="icon-search"></i> </td>
</select>
</th>
</tr>
</table>
</form>
<table class="table table-striped table-bordered">
<thead>
<tr>
<th>รูปภาพ</th>
<th>รายละเอียด</th>
</tr>
</thead>
<?php
while ($result = mysql_fetch_array($sqlquery)) {
?>
<tbody>
<tr>
<td width="18%">
<?php
if ($result['map_picture'] != "") {
?>
<img src="script/imgmap/<?= $result['map_picture']; ?>" width="250"/>
<?php } else {
?>
<img src='no.png' width="250">
<?php
}
?>
</td>
<td width="">
<p><b>ชื่อสถานที่ท่องเที่ยว : </b><?php echo"<b>". $result["map_name"] . "</b>"; ?><br/>
<p><b>ที่อยู่สถานที่ท่องเที่ยว :</b> <?php
if ($result['map_address'] != "") {
?>
<?php echo $result["map_address"]; ?>
<?php
} else {
echo "ไม่มีรายละเอียดในส่วนนี้";
}
?><br/>
<p><b>หมวดหมู่เส้นทางการเดินทาง:</b>
<?php
if($result["map_type"] == "1")
{
echo "Bike Path (เส้นทางจักรยาน)";
}
elseif($result["map_type"] == "2")
{
echo "Boat Path (เส้นทางเรือ)";
}
elseif($result["map_type"] == "3")
{
echo "Citylife Path (เส้นทางภายในเมืองเชียงใหม่)";
}
?>
<br/>
<p> <b>คำอธิบายโดยย่อ</b> </p><?php
if ($result['map_detail'] != "") {
?>
<?php echo $result["map_detail"]; ?>
<?php
} else {
echo "ไม่มีรายละเอียดในส่วนนี้";
}
?><br/> <br>
<p><b> <a href="showallmap.php?type=&id=<?php echo $result["map_id"]; ?>"><i>Read more..</i> </a>
</b></p>
<!----- google ---->
</tr>
<?php } ?>
</tbody>
</table>
<br>
<b>จำนวนรายการทั้งหมด</b> <?= $Num_Rows; ?> <b>รายการ</b>
<?php
mysql_close();
?>
Date :
2014-04-20 13:40:20
By :
sunz เจ้าของกระทู้
หลังจากทำตาม ค่าที่เช็คมีทุกค่าคะ ค่า map_id ก็ขึ้นมาทุกค่าเช่นกัน ตามรูปภาพ
Date :
2014-04-20 14:03:16
By :
sunz เจ้าของกระทู้
ตอนเอาเมาส์ไปวางเหนือลิงค์
<a href="showallmap.php?type=&id=<?php echo $result["map_id"]; ?>"><i>Read more..</i> </a>
จะแสดง url เป็น showallmap.php?type=&id=0
id=0 ทุกๆ Read more.. เลยเหรอครับ ที่ถามเพราะว่าดูโค้ดและเอาพุทแล้วก็ไม่น่าผิดนี่นา
Date :
2014-04-20 14:10:00
By :
sakuraei
ใช่ค่ะ มันเป็นแบบนี้ทุกอันเลย ก็เลยไม่รู้จริงๆ ว่ามันเป็นเพราะอะไร -- ทีแรกคิดว่าน่าจะ MySQL ผิดสักที แต่ก็เหมือนไม่ผิด
Date :
2014-04-20 14:17:04
By :
sunz เจ้าของกระทู้
ลองเปลี่ยนจาก mysql_fetch_array ไปเป็น mysql_fetch_assoc ดูซิครับ อย่างน้อยก็ช่วยลดขนาดตัวแปร $result ให้เล็กลง
อยู่เชียงใหม่หรือครับ ผมเองก็อยู่ ชม.
Date :
2014-04-20 14:22:52
By :
sakuraei
ไฟล์ showsearchdrop.php คือไฟล์ไหนครับ
Date :
2014-04-20 14:38:28
By :
sakuraei
ไฟล์ showsearchdrop.php คือไฟล์นี้ค่ะ เป็นไฟล์ที่ส่งค่าหลังจาก search หรือเลือกเส้นทางการท่องเที่ยวคะ มันก็จะมาส่งค่าในนี้ (ไฟล์เดียวกันกับ ความคิดเห็นที่ 4 ด้านบนค่ะ
Code (PHP)
<?php
if($_POST["ddlCountryCode"] != "")
{
include 'connect099.inc.php';
$sql = "SELECT maptravel.*,mapway_type.* FROM maptravel LEFT JOIN mapway_type ON maptravel.map_type = mapway_type.waytype_id WHERE (map_type = '".$_POST["ddlCountryCode"]."') ORDER BY maptravel.map_id ASC";
$sqlquery = mysql_query($sql) or die ("Error Query [".$sql."]");
}
?>
<?php $Num_Rows = mysql_num_rows($sqlquery); ?>
<h2><i class="icon-edit"></i>ค้นหาเส้นทางท่องเที่ยว- Search Paths</h2>
<b>จำนวนรายการทั้งหมด</b> <?= $Num_Rows; ?> <b>รายการ</b> <br> <br>
<table class="table table-striped table-bordered">
<thead>
<tr>
<th>รูปภาพ</th>
<th>รายละเอียด</th>
</tr>
</thead>
<?php
if (mysql_num_rows($sqlquery) == 0) {
echo "<div style=\"padding:20px\"> <i>ไม่พบข้อมูลจากการค้นหาดังกล่าว</i> </div>";
} else {
while ($result = mysql_fetch_array($sqlquery)) {
?>
<tbody>
<tr>
<td width="18%">
<?php
if($result['map_picture'] != "")
{
?>
<img src="script/imgmap/<?= $result['map_picture']; ?>" width="250"/>
<?php
}else{ ?>
<img src='no.png' width="250">
<?php
}
?>
</td>
<td width="">
<p><b>ชื่อสถานที่ท่องเที่ยว : </b><?php echo"<b>". $result["map_name"] . "</b>"; ?><br/>
<p><b>ที่อยู่สถานที่ท่องเที่ยว :</b> <?php
if ($result['map_address'] != "") {
?>
<?php echo $result["map_address"]; ?>
<?php
} else {
echo "<i>ยังไม่มีที่อยู่สถานที่ท่องเที่ยวส่วนนี้</i>";
}
?><br/>
<p><b>หมวดหมู่เส้นทางการเดินทาง:</b>
<?php echo $result["waytype_name"];?><br/>
<p> <b>คำอธิบายโดยย่อ</b> </p><?php
if ($result['map_detail'] != "") {
?>
<?php echo $result["map_detail"]; ?>
<?php
} else {
echo "<i>ยังไม่มีรายละเอียดข้อมูลส่วนนี้</i>";
}
?><br/> <br>
<p><b> <a href="showallmap.php?type=&id=<?php echo $result["map_id"]; ?>"><i>Read more..</i> </a>
</b></p>
</tr>
<?php } ?>
</tbody>
<?php } ?>
</table>
<br>
<b>จำนวนรายการทั้งหมด</b> <?= $Num_Rows; ?> <b>รายการ</b> <br> <br>
<?php
mysql_close();
?>
Date :
2014-04-20 14:41:37
By :
sunz เจ้าของกระทู้
เดี๋ยวขอเวล้แก้ไขตามข้อความแปปนะคะ
Date :
2014-04-20 14:58:47
By :
sunz เจ้าของกระทู้
ใน table Maptravel และ mapway_type มี waymap_id ที่เหมือนกันน่ะคะ คือ เส้นทาง
โดย Maptravel.map_type = mapway_type.mapway_id ใช้เส้นทางเลือกต่ะ แต่แค่เอาชื่อเส้นทางมา echo อย่างเดียวน่ะค่ะ
Date :
2014-04-20 15:10:22
By :
sunz เจ้าของกระทู้
สังเกตดีๆน่ะครับ มี map_id อยู่ทั้งสองเทเบิ้ล และมีค่าเป็น 0 ทั้งหมดเสียด้วย
เพราะฉะนั้นอาจ drop field map_id จากเทเบิ้ล mapway_type ทิ้งซะ
Date :
2014-04-20 15:32:47
By :
sakuraei
Load balance : Server 04