开发者

problem with fetching results from mysql via php function

can some one point out the problem with this code? It supposed to fetch data fr开发者_高级运维om mysql but it returns blank. Here is the full code.

<ul class="list">

<?php

require("object/db.class.php");

error_reporting(0);

function entry_tickets() {

if($_SESSION['dojopress_global:root'] == false) {

$entry_ticket .= <<<ENTRY_TICKET
<li><p><img src="http://cdn1.iconfinder.com/data/icons/humano2/32x32/apps/gnome-keyring-manager.png" />Access denied</p></li>
ENTRY_TICKET;

} elseif($_SESSION['dojopress_global:root'] == true) {

$q = "SELECT * FROM `notice` ORDER BY nid LIMIT 12 DESC";
$r = mysql_query($q);

if ( mysql_num_rows($r) == 0 ) {

$entry_ticket .= <<<ENTRY_TICKET
<li><p><img src="http://cdn1.iconfinder.com/data/icons/humano2/32x32/status/dialog-information.png" /> Nothing to display</p></li>
ENTRY_TICKET;

} elseif ( $r !== false && mysql_num_rows($r) > 0 ) {
    while ( $a = mysql_fetch_array($r) ) {

        $nid = stripslashes($a['nid']);
        $note = stripslashes($a['note']);
        $type = stripslashes($a['type']);
        $private = stripslashes($a['private']);
        $date = stripslashes($a['date']);
        $author = stripslashes($a['author']);


    function note_type($type) {

       if($type == 1) { $type = "posted a comment!"; } elseif($type == 2) { $type = "raised a support ticket!"; } else { }
       return ($type);
    }

$entry_ticket .= <<<ENTRY_TICKET
<li><p><a href="viewer.php?nid=$nid" id="record-$nid"> $athor, note_type($type)</a></p></li>
ENTRY_TICKET;

    return $entry_ticket;

    }
}


}
}

echo entry_tickets();

?>

</ul>

<div style="clear:both;height:10px;"></div>

sorry forgot db.class.php

<?php
session_start();
//connect.php
$host = "localhost";
$db_user = "root";
$db_pass = "";
$db_name = "au";

$connectClass = mysql_connect("$host", "$db_user", "$db_pass") or die ("Couldn't establish connection to database server.");
$dbObject = mysql_select_db("$db_name", $connectClass) or die ("Couldn't select database.");
?>

error reporting disabled error code

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in D:\wamp\www\ageis\note.php on line 22


Your mysql syntax looks bad. You have:

 SELECT * FROM `notice` ORDER BY nid LIMIT 12 DESC

try

 SELECT * FROM `notice` ORDER BY nid DESC LIMIT 12

Erik's comments should have pointed you in the right direction, however:

  1. Figure out where PHP logs errors. Either turn up php's error reporting level so you see more errors, or start tailing your apache error_log
  2. You should always check for errors after running mysql_query and do some sort of logging on failure. This is probably best accomplished by writing a wrapper function for mysql_query that does this, or using a 3rd party db wrapper that has already solved this problem.


You're redefining function note_type every time through your while loop. You have a return call outside the function, below it. Really I can't see how this is even syntactically correct. It looks like you have a large problem with mismatched brackets.

As for an actual database issue, you should check mysql_error() if no rows return from the call because it's likely something went wrong.

Also I recommend using PDO which is a true database class instead of the native function based ones.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜