0

很抱歉这个愚蠢的问题,但是我看不到/不足以解决这个问题:

我有一个 MYSQL 数据库和一个 php 表单,一切正常,但我不能只输出一条记录 - 可能是语法错误:

    $SQL = "SELECT * FROM massfelh WHERE user = $uname AND pass = md5($pword)"; - this is working
    $result = mysql_query($SQL); - this is too
    $catg = $result['categ']; - help
    $num_rows = mysql_num_rows($result); - this is ok too
    echo $catg; - for test and I can't print it on screen

数据库结构:id、user、pass、categ

我只需要类别(1 或 0),但它不会显示在屏幕上。

任何帮助将不胜感激 - 请说我也很愚蠢:)

更新:

谢谢大家!!!!!!!帮了我很多。我已经为我的代码找到了最佳解决方案,但是所有回复都是正确的。再次感谢 hop 这将有助于某些人和我一样的初学者:) 再次感谢你

4

8 回答 8

5

试试这个..

$SQL = "SELECT * FROM massfelh WHERE user = $uname AND pass = md5($pword)"; 
    $result = mysql_query($SQL);
    $result = mysql_fetch_assoc($result);
    $catg = $result['categ'];
    $num_rows = mysql_num_rows($result); 
    echo $catg;
于 2012-07-03T10:47:53.493 回答
1

LIMIT 1如果您只期望一行,则将a 添加到您的选择中是一种很好的做法。

如果您只想选择类别,则仅选择它SELECT categ FROM...。然后你可以使用$catg = mysql_result($result, 0); http://php.net/manual/de/function.mysql-result.php

于 2012-07-03T10:46:47.453 回答
0
$result = mysql_query($SQL); - this is too
$catg   = mysql_fetch_assoc($result);
print_r($catg);

mysql_query返回一个资源。要获取数据,您必须使用一些下一个函数: - mysql_fetch_row(将结果作为数字数组返回) - mysql_fetch_assoc(将结果作为 assoc 数组返回 - 数组的键是 db 表中的字段名称) - mysql_fetch_array(返回数字和 assoc 结果,如果你不传递第二个参数)

但如果你使用 Mysqli 扩展或 PDO_Mysql 会更好

于 2012-07-03T10:42:04.760 回答
0

如果您只需要“分类”,只需选择它。在 $result 上也使用 var_dump。

SELECT categ FROM massfelh WHERE user = $uname AND pass = md5($pword)
于 2012-07-03T10:43:33.540 回答
0

目前您没有使用任何 php 函数在执行查询后退出。

$result = mysql_query($SQL);
$res   = mysql_fetch_assoc($result);
echo $res['columnName'];
于 2012-07-03T10:46:04.180 回答
0
$SQL = "SELECT * FROM massfelh WHERE user = $uname AND pass = md5($pword)";
$result = mysql_query($SQL);
$num_rows = mysql_num_rows($result);
$catg   = mysql_fetch_assoc($result);

echo $num_rows.' rows matched';
echo '<pre>';
print_r($catg);
echo '</pre>';
于 2012-07-03T10:46:12.667 回答
0

你错过了mysql_fetch_assoc那里。它应该是

$SQL = "SELECT * FROM massfelh WHERE user = $uname AND pass = md5($pword)";
$query = mysql_query($SQL);
$result = mysql_fetch_assoc($query);
$catg = $result['categ'];
$num_rows = mysql_num_rows($result);
echo $catg;

当然查询也可以SELECT categ FROM massfelh WHERE user = $uname AND pass = md5($pword)

于 2012-07-03T10:46:21.550 回答
0

mysql_query返回结果资源,您需要将其传递给 fetch 函数才能访问返回的数据。例如:

$query = mysql_query($SQL);
$result = mysql_fetch_assoc($query);
$catg = $result['categ'];

不鼓励使用mysql_扩展并且社区已经开始弃用过程,您应该阅读mysql_query文档:

http://php.net/manual/en/function.mysql-query.php

于 2012-07-03T10:47:11.653 回答