No database selected ผมสงสัยอ่ะครับ ว่าเป็นเพราะอะไร
เหตุการณ์เป็นอย่างนี้น่ะครับ
พบแบ่งออกเป็น 3 ส่วน ตามภาพน่ะครับ
ส่วนที่ 1 คือการ กรอกข้อมูลลงไป ผลลัพย์ ได้ครับ มีข้อมูลอยู่ใน ฐานข้อมูล
ส่วนที่ 2 เรียกข้อมูลขึ้นมา แสดงผล ไม่ได้ครับ มันขั้น Not select database
ผมเริ่มงง เหมื่อนกัน ถ้า Not select database ทำไม ตอนกรอกข้อมูล ถึง กรอกเข้าไปเก็บ ในฐานข้อมูลได้
แต่พอเรียก ขึ้นมาแสดงผล ไม่ได้อ่ะครับ
ตัวconnect ผมก้อ include ตัวเดียว
แล้วอันนี้คือส่วนแสดงผลครับ
Code (PHP)
<?php
include "paging.inc.php";
$current_page = 1;
if(isset($_GET['page'])) {
$current_page = $_GET['page'];
}
$rows_per_page = 20;
$start_row = paging_start_row($current_page, $rows_per_page);
//อ่านข้อมูลจากตาราง topic โดยเรียงลำดับจากกระทู้ล่าสุดไปยังกระทู้ก่อนหน้านี้
$sql = " SELECT SQL_CALC_FOUND_ROWS *,
DATE_FORMAT(date_post, '%d-%m-%Y') AS datepost
FROM topic
ORDER BY date_post DESC
LIMIT $start_row, $rows_per_page;";
$result = mysql_query($sql) or die (mysql_error());
$found_rows = mysql_query("SELECT FOUND_ROWS();") or die (mysql_error());
$total_rows = mysql_result($found_rows, 0, 0);
$total_pages = paging_total_pages($total_rows, $rows_per_page);
//สีพื้นหลังสำำหรับการสลับสีระหว่างแถว
$bgcolor1 = "#eeeeff";
$bgcolor2 = "#ddeeff";
$bgcolor = $bgcolor1;
while($data = mysql_fetch_array($result)) {
$bgcolor = ($bgcolor == $bgcolor1) ? $bgcolor2 : $bgcolor1;
//แต่ละหัวข้อกระทู้ จะทำเป็นลิงค์เชื่อมโยงไปยังเพจ reply.php
//เพื่อให้สามารถคลิกเข้าไปดูรายละเอียดของกระทู้นั้นได้
//โดยแนบหมายเลข(id)ของกระทู้นั้นไปด้วย
echo "<tr bgcolor=$bgcolor valign=top>
<td>{$data['datepost']}</td>
<td><a href=\"reply.php?topicid={$data['topic_id']}\" target=_blank>
{$data['title']}</a></td>
<td>{$data['name']}</td>
<td>{$data['num_reply']}</td>
</tr>";
}
//แสดงหมายเลขเพจ
echo "<tr> <td colspan=4 align=center>";
$page_range = 5;
$qry_str = "";
$pagenum = paging_pagenum($current_page, $total_pages,
$page_range, $qry_str);
echo "หน้า: " . $pagenum;
echo "</td></tr>";
?>
อันนี้ คือ "paging.inc.php";
Code (PHP)
<?php
function paging_start_row($current_page,$rows_per_page){
}
function paging_total_pages($total_rows,$rows_per_page){
}
function paging_pagenum($current_page,$total_pages,$page_range,$query_string){
}
?>
รบกวนหน่อยครับ วันนี้ทั้งวันแหละ ขอบคุณครับTag : PHP
Date :
2014-02-12 16:04:05
By :
beerburn
View :
1567
Reply :
11
ขอดูไฟล์ connect database หน่อยครับ
Date :
2014-02-12 16:09:35
By :
Manussawin
อันนี้เลยครับ
Code (PHP)
<?php
function my_connect(){
mysql_connect("localhost","root","1234") or die (mysql_error());
mysql_select_db("computerma") or die (mysql_error());
}
function has_rudeword($str) {
$rudes = array("xxx","yyy","zzz");
for($i = 0; $i < count($rudes);$i++){
if(eregi($rudes[$i],$str)){
return true;
}
}
return false;
}
?>
Date :
2014-02-12 16:12:18
By :
beerburn
ไฟล์บนสุดเอา my_connect(); แปะไว้ที่บรรทัดที่ 3 ด้วยครับ
Code (PHP)
include "paging.inc.php";
my_connect();
//................................. your code
ปล. function my_connect() อยู่ใน paging.inc.php ใช่ไหมครับ?
ประวัติการแก้ไข 2014-02-12 16:27:14
Date :
2014-02-12 16:26:05
By :
Manussawin
ไม่ใช่ครับ อยู่ใน ไฟลนึง
อันนี้อีกไฟล์นึงครับ คนล่ะไฟล์
<?php
02.function my_connect(){
03.mysql_connect("localhost","root","1234") or die (mysql_error());
04.mysql_select_db("computerma") or die (mysql_error());
05.}
06.function has_rudeword($str) {
07.$rudes = array("xxx","yyy","zzz");
08.for($i = 0; $i < count($rudes);$i++){
09.if(eregi($rudes[$i],$str)){
10.return true;
11.}
12.}
13.return false;
14.}
15.?>
Date :
2014-02-12 16:32:48
By :
beerburn
No 2 อ่ะครับ คนล่ะไฟล์ กับ pagging
Date :
2014-02-12 16:33:17
By :
beerburn
อันนี้เป็นส่วนบน ที่กรอกข้อมูล แล้วบันทีกลงใน ดาต้า อันนี้บันทึกได้ครับ ใช้ connect ตัวเดียวกัน
Code (PHP)
<?php
error_reporting(E_ALL ^ E_NOTICE);
include("webbord.inc.php");
$errmsg = "";
if($_POST){
foreach($_POST as $k => $v){
//ตรวจสอบความถูกต้องของข้อมูล
if(get_magic_quotes_gpc()){
$v = stripslashes($v);
}
$v = trim(htmlspecialchars($v)); //ป้องกันการใส่แท็ก Html
if(empty($v)){
$errmsg = "กรุณาใส่ข้อมูลให้ครบถ้วนด้วยค่ะ";
break;
}
else if(has_rudeword($v)){
$errmsg = "ไม่อนุญาติให้ใช้คำที่เหมาะสมค่ะ";
break;
}
$_POST[$k] = $v;
}
if ($errmsg == ""){
my_connect();
$title = $_POST['title'];
$details = $_POST['details'];
$detalis = nl2br($details);
$name = $_POST['name'];
// $email = $_POST['email'];
$ip = $_SERVER['REMOTE_ADDR'];
$sql = "INSERT INTO topic VALUES
(0,'$title','$details','$name',NOW(),0,'$ip');";
mysql_query($sql) or die (mysql_error());
header("Refresh: 3; url=index.php");
echo"<font size=4>การตั้งกระทู้เสร้จเรียบร้อย<br /> กรุณารอสักครู่</font>";
}
else {
echo"<font size=4 color=red>$errmsg<p />
<a href=\"javascript: history.back()\">ย้อนกลับไปแก้ไข</a></font>";
}
exit;
}
?>
ผม include ครั้งเดียวครับ เพราะผมใช้หน้าเดียว
Date :
2014-02-12 16:40:21
By :
beerburn
จะอธิบายยังไงดี
คือคุณเขียนโค้ดเชื่อมต่อฐานข้อมูลในรูปแบบฟังก์ชั่น ดังนั้น จะสามารถเชื่อมต่อกับฐานข้อมูลได้ก็ต่อเมื่อคุณเรียกใช้ฟังก์ชั่น my_connect();
แล้วฟังก์ชั่น red]my_connect(); คุณเขียนไว้ในไฟล์ไหนก็ include มาซะ จากนั้นก็ เรียกใช้ ฟังก์ชั่น red]my_connect(); (อย่างที่ No. 2 บอก)
Date :
2014-02-12 21:35:42
By :
arm8957
Code (PHP)
error_reporting(E_ALL ^ E_NOTICE);
include("webbord.inc.php"); //-----------------------webbord.inc.php อันนี้เป็นไฟล์ connect ทำเป็นฟั่งชั้นครับ
$errmsg = "";
if($_POST){
foreach($_POST as $k => $v){
//ตรวจสอบความถูกต้องของข้อมูล
if(get_magic_quotes_gpc()){
$v = stripslashes($v);
}
$v = trim(htmlspecialchars($v)); //ป้องกันการใส่แท็ก Html
if(empty($v)){
$errmsg = "กรุณาใส่ข้อมูลให้ครบถ้วนด้วยค่ะ";
break;
}
else if(has_rudeword($v)){
$errmsg = "ไม่อนุญาติให้ใช้คำที่เหมาะสมค่ะ";
break;
}
$_POST[$k] = $v;
}
if ($errmsg == ""){
my_connect(); // อันนี้ เป็น Function connect ครับ
$title = $_POST['title'];
$details = $_POST['details'];
$detalis = nl2br($details);
$name = $_POST['name'];
// $email = $_POST['email'];
$ip = $_SERVER['REMOTE_ADDR'];
$sql = "INSERT INTO topic VALUES
(0,'$title','$details','$name',NOW(),0,'$ip');";
mysql_query($sql) or die (mysql_error());
header("Refresh: 3; url=index.php");
echo"<font size=4>การตั้งกระทู้เสร้จเรียบร้อย<br /> กรุณารอสักครู่</font>";
}
else {
echo"<font size=4 color=red>$errmsg<p />
<a href=\"javascript: history.back()\">ย้อนกลับไปแก้ไข</a></font>";
}
exit;
}
// ส่วนข้างบนที่กล่าวมาข้างต้น เป็นการกรอกข้อมูล เพื่อเก็บไว้ ในฐานข้อมูล ตรงนี้ สามารถเก็บข้อมูลในฐานข้อมูลได้ครับ
// ส่วนข้างล่างนี้จะแสดงผลในฐานข้อมูล ครับ
<table width="650" border="0" align="center" cellpadding="7" cellspacing="1">
<tr><td colspan="4" align="right"><a href="newtopic.php">ตั้งกระทู้ใหม่</a></td></tr>
<tr>
<th width="80">วันที่</th>
<th width="430">หัวข้อ</th>
<th width="120">โดย</th>
<th width="20">ตอบ</th>
</tr>
<?php
include "paging.inc.php";
$current_page = 1;
if(isset($_GET['page'])) {
$current_page = $_GET['page'];
}
$rows_per_page = 20;
$start_row = paging_start_row($current_page, $rows_per_page);
$sql = " SELECT SQL_CALC_FOUND_ROWS *,
DATE_FORMAT(date_post, '%d-%m-%Y') AS datepost
FROM topic
ORDER BY date_post DESC
LIMIT $start_row, $rows_per_page;";
$result = mysql_query($sql) or die (mysql_error()); // ตรงนี้ ขึ้นว่า No select databased ครับ
$found_rows = mysql_query("SELECT FOUND_ROWS();") or die (mysql_error());
$total_rows = mysql_result($found_rows, 0, 0);
$total_pages = paging_total_pages($total_rows, $rows_per_page);
//สีพื้นหลังสำำหรับการสลับสีระหว่างแถว
$bgcolor1 = "#eeeeff";
$bgcolor2 = "#ddeeff";
$bgcolor = $bgcolor1;
while($data = mysql_fetch_array($result)) {
$bgcolor = ($bgcolor == $bgcolor1) ? $bgcolor2 : $bgcolor1;
//แต่ละหัวข้อกระทู้ จะทำเป็นลิงค์เชื่อมโยงไปยังเพจ reply.php
//เพื่อให้สามารถคลิกเข้าไปดูรายละเอียดของกระทู้นั้นได้
//โดยแนบหมายเลข(id)ของกระทู้นั้นไปด้วย
echo "<tr bgcolor=$bgcolor valign=top>
<td>{$data['datepost']}</td>
<td><a href=\"reply.php?topicid={$data['topic_id']}\" target=_blank>
{$data['title']}</a></td>
<td>{$data['name']}</td>
<td>{$data['num_reply']}</td>
</tr>";
}
//แสดงหมายเลขเพจ
echo "<tr> <td colspan=4 align=center>";
$page_range = 5;
$qry_str = "";
$pagenum = paging_pagenum($current_page, $total_pages,
$page_range, $qry_str);
echo "หน้า: " . $pagenum;
echo "</td></tr>";
?>
</table>
ปล ... ผมเปิดแท็ก php 2 ครั้งครับ คือผมทำเพจหน้าเดียวครับ
Date :
2014-02-13 14:32:05
By :
beerburn
คือผมเข้าใจ ว่า เวลา include file connect ผมจะอินคูดได้ครั้งเดียว แล้วมันจะเหมือน กับการ เรียก ฟัง่ชั่น connect ไหมครับ ที่เรียก
ฟั่งชั่น ก้อต้องเรียก ครั้งเดียว อันนี้ผมสับสนครับ
ตามจริงเรา include ครั้งเดียว แล้ว ก้อเรียก function ครั้งเดียว มันก้อน่าจะ ทำงาน ได้ทั้งหมด อันนี้ผมเข้าใจถูกต้องหรือป่าวครับ
ขอบคุณครับ พี่ๆๆ ทุกคน
Date :
2014-02-13 14:38:11
By :
beerburn
ต้องลองไล่ดูนะครับ บางทีมันอยู่เงื่อนไข มันจะทำงานแค่ภายในเงื่อนไขอะครับ ลองย้ายมันออกไปไว้บนสุดดู จริงๆผมว่าทำเป็น config ไฟล์แล้ว include ไปใช้ก็น่าจะได้แล้วนะครับ
Date :
2014-02-13 14:57:56
By :
Manussawin
ผมลอง ทำตามที่บอกแล้วครับ ก้อๆไม่ได้อยู่ดี ผมล่ะงง
ถ้ามันไม่เจอ database จริงๆ ก้อน่าจะไม่เจอ ตั้งแต่ add ข้อมูล
แต่ ข้อมูลนั้น add ได้ แต่เรียกกลับมาแสดง แต่ไม่เจอข้อมูลนั้น
ยังไงช่วยผมหน่อยครับ
Date :
2014-02-13 15:47:49
By :
beerburn
Load balance : Server 01