这是我代码的一部分,echo是为了测试值,它给了我资源ID#5
$id = mysql_query("SELECT id FROM users WHERE firstname='$submittedfirstname' AND lastname='$submittedlastname' AND email='$submittedemail'") or die(mysql_error());
$counter = mysql_num_rows($id);
echo $id;
我刚开始编程,最近在使用数据库时看到了很多资源ID输出/错误。
有人能纠正我代码中的错误吗?请解释为什么它没有给我所需的输出?
这不是一个错误。这类似于在不指定索引的情况下打印数组,并且只打印字符串"array"。您可以使用mysql_fetch_array()等函数访问该资源中包含的实际数据(可以将其视为数据集合)。
事实上,如果这里有一个错误,$id的值将不是一个资源。在使用应该包含资源的变量之前,我通常使用is_resource()函数来验证一切是否正常。
我想你打算做的是:
$result = mysql_query("SELECT id FROM users WHERE firstname='$submittedfirstname' AND lastname='$submittedlastname' AND email='$submittedemail'") or die(mysql_error());
if(is_resource($result) and mysql_num_rows($result)>0){
$row = mysql_fetch_array($result);
echo $row["id"];
}
你是指echo $counter
吗?CCD_ 2是资源,因为CCD_。
如果您试图从查询中获取id
列的值,则需要使用例如mysql_fetch_array()
。
以下是摘录自http://php.net/mysql.examples-basic:
$query = 'SELECT * FROM my_table';
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
// Printing results in HTML
echo "<table>'n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo "'t<tr>'n";
foreach ($line as $col_value) {
echo "'t't<td>$col_value</td>'n";
}
echo "'t</tr>'n";
}
echo "</table>'n";
根据您提供的代码进行调整,它可能看起来像这样:
$result =
mysql_query("SELECT id FROM users WHERE firstname='$submittedfirstname' AND lastname='$submittedlastname' AND email='$submittedemail' LIMIT 1")
or die(mysql_error());
if( $row = mysql_fetch_array($result, MYSQL_ASSOC) )
{
$id = $row['id'];
}
else
{
// No records matched query.
}
请注意,在我的代码中,我还向查询添加了LIMIT 1
,因为您似乎只对获取一行感兴趣。
你在找吗
while ($row = mysql_fetch_array($id)) {
echo $row['id'];
}
$kode_gel=substr($_GET['gel'],0,3);$no_gel=substr($_GET['gel'],3,5);
$cek = mysql_query("SELECT id_arisan
FROM arisan WHERE kode_gel = '".$kode_gel."'
AND no_gel = '".$no_gel."'");
$result = mysql_fetch_array($cek);
$id = $result['id_arisan'];
header("location: ../angsuran1_admin.php?id=".$id);