رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل نمایش محتوا فارسی دیتابیس
#1
سلام

این تابع را ببنید.یک تابع از کلاس است و از آن کلاس نمونه سازی صورت گرفته
  function post_content(){
      global $con;
       $sqlm = "SELECT * FROM news ";
      $result = $con->query($sqlm);


      $row3 = $result->fetch_all();
      var_dump($row3);
      
  }

فایل کافیگ که حاوی کد اتصال است :
<?php
 $con = mysqli_connect('localhost', 'root','','paraq');
if(mysqli_connect_errno($con) > 0)
                echo "Can not connect to server:<br/>".mysqli_connect_error();
        mysqli_set_charset($con,"utf8");
?>
وقتی توی صفحه ایندکس var_dump میگیرم ازrow3 خروجی 2تا مشکل اره اول اینکه فارسی ها بهم ریختس .دوم اینکه اندیس های دوم عددی است مگر باید هم نام فیلد جدول باشه؟



فایل ایندکسم :

<?php
include_once('cfn.php');
include_once('config-main.php');
include_once('tempclass.php');
$template= new template();
include_once('function.php');
//include_once('theme/'.TEMPLATE.'/index.php');

postcontent();

echo'<br>';

            
             $sqlm = "SELECT * FROM news ";
            $result = $con->query($sqlm);


            $row3 = $result->fetch_all();
            echo $row3['1']['1'];


?>


و خروجی :
array (size=3)
  0 => 
   array (size=6)
     0 => string '2' (length=1)
     1 => string 'تست2' (length=7)
     2 => string '/upload/files/1.jpg' (length=19)
     3 => string '<p>تیت</p>

' (length=15)
     4 => string '1458033961' (length=10)
     5 => string '0' (length=1)
 1 => 
   array (size=6)
     0 => string '6' (length=1)
     1 => string 'خبر تست دسته بندی' (length=31)
     2 => string '/upload/files/o7tzgt5bvu5rm62a6ays.jpg' (length=38)
     3 => string '<p>تست است</p>



<p>Ú†Ú¯</p>

' (length=37)
     4 => string '1457896697' (length=10)
     5 => string '0' (length=1)
 2 => 
   array (size=6)
     0 => string '10' (length=2)
     1 => string 'خبر تست دسته بندی' (length=31)
     2 => string '/upload/images/1.jpg' (length=20)
     3 => string '<p>تست</p>

' (length=15)
     4 => string '1458032702' (length=10)
     5 => string '0' (length=1)


خبر تست دسته بندی


ممنون میشم راهنمایی نمایید
پاسخ
تشکر شده توسط:
#2
مشکل فارسی حل شد مونده مشکل اندیس گذاری کو من نمیخام عددی باشه ...میخامبا اسم فیلد جدول باشه

کد کلاس :
<?php

class template{

	private $i=-1;	


	function havepost(){
			global $con;
			$sel_post ="SELECT * FROM news ";

			$run_post = mysqli_query($con, $sel_post);

			$check_post = mysqli_num_rows($run_post);
			return $this->i < --$check_post;
	}
	
	
		function thepost(){
			$this->i++;	
	}

	function post_content(){
			global $con;
			
 			$sqlm = "SELECT * FROM news ";
			$result = $con->query($sqlm);


			$row3 = $result->fetch_assoc();
			var_dump($row3);
			
	}
	
	
	
	
	
	
	
	
	
	
	
	
}



?>

کد
تابع post_content
global $com;
$sql=$con->prepare('select * from news');
$sql->execute();
$fetch=$sql->fetchall();
return $fetch[$this->i]['body'];
این بدنه تابع post_contentکه من با mysqli اونجوری نوشتمه

توی فیلم با pdo نوشته بود من به mysqli نوشتم اما ظاهرا اشتباه نوشتم
پاسخ
تشکر شده توسط:
#3
class Template
{
    private $i = -1;
    private $posts;
 
    public function havepost() {
        global $con;
        $sql = 'SELECT * FROM `news`';
        $run_post = mysqli_query($con, $sql);
        return mysqli_num_rows($run_post) > 0;
    }

    function thepost()
    {
        $this->i++;
        return (is_array($this->posts) && isset($this->posts[$this->i]) ? $this->posts[$this->i] : null);
    }
 
    public function post_content()
    {
        global $con;
        $sql = 'SELECT * FROM `news`';
        if($result = mysqli_query($con, $sql)) {
            $this->posts = array();
            if(mysqli_num_rows($result) > 0) {
                while($row = mysqli_fetch_assoc($result)) {
                    $this->posts[] = $row;
                }
            }
            mysqli_free_result($result);
        }
    }
}
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 2 مهمان