sql 로 리스트 만드는중인데요 문의드립니다.
본문
<?
$host = "localhost"; // 자신의 mysql
$user = "아이디"; // 기본 사용자.
$password = "암호"; // apm 기본 암호
$DB_name = "데이터베이스이름"; // 데이터베이스 이름 : test
$conn = mysqli_connect($host, $user, $password, $DB_name);
mysqli_query($conn, 'set names utf8');
$rows = 25; // 한페이지에 보여질 갯수
$sql = mysqli_query($conn, "SELECT count(*) as cnt from tablename ");
$row = mysqli_fetch_array($sql);
$total_count = $row[cnt];
$total_page = ceil($total_count / $rows);
if ($page == "") { $page = 1; }
$from_record = ($page - 1) * $rows;
$sql = mysqli_query($conn, "select * from tablename order by no desc limit $from_record, $rows ");
$result = mysqli_fetch_array($sql);
for ($i=0; $row=mysql_fetch_row($result); $i++) {
echo $row[name];
}
?>
위와같이 하면 $row[cnt] 값은 잘 나오더라구요.. 그런데 ㅜㅜ
FOR 문 돌리면 아무런 자료가 나오지 않습니다...
어떻게 해야 될까요??
고수님들께 부탁드립니다. 수정해야할 부분만이라 ㅜㅜ ~ 고맙습니다.
답변 3
기존 코드랑 비교해 보시고
어느 부분이 다른지 확인하시면 될듯 싶습니다.
<?php
$host = "localhost"; // 자신의 mysql
$user = "아이디"; // 기본 사용자.
$password = "암호"; // apm 기본 암호
$DB_name = "데이터베이스이름"; // 데이터베이스 이름 : test
$conn = mysqli_connect($host, $user, $password, $DB_name);
mysqli_query($conn, 'set names utf8');
$rows = 25; // 한페이지에 보여질 갯수
$sql = mysqli_query($conn, "SELECT count(*) as cnt from tablename ");
$row = mysqli_fetch_array($sql);
$total_count = $row['cnt'];
$total_page = ceil($total_count / $rows);
if (isset($page) === false) { $page = 1; }
$from_record = ($page - 1) * $rows;
$sql = mysqli_query($conn, "select * from tablename order by no desc limit $from_record, $rows ");
//$result = mysqli_fetch_array($sql);
//for ($i=0; $row=mysql_fetch_row($result); $i++) {
for ($i=0; $row=mysqli_fetch_array($sql); $i++) {
echo $row['name'];
}
?>
select * from tablename order by no desc limit $from_record, $rows
이 쿼리 부분을 직접 찍으셔서 phpMyAdmin에서 쿼리를 확인해 보셔야 할듯 보입니다. 제대로 가져오고 있는지 확인을 해보시는게 좋을듯 합니다.
echo
$row
[name];
에서 출력되는 부분이 없다면,
칼럼명이 'name' 이 아니거나, 'name' 칼럼에 값이 없을 가능성이 있습니다.
다음의 코드로, 칼럼명이 맞는지 또는 해당 칼럼의 값이 정상적으로 저장되어 있는 것인지 확인해볼 수 있습니다. (array 내용을 출력해주는 print_r 사용)
for ($i=0; $row = mysql_fetch_row($result); $i++) {
print_r($row);
}
답변을 작성하시기 전에 로그인 해주세요.