Выяснив, почему я получаю ошибку ID ресурса №5

Это часть моего кода, а эхо – проверка значения, и оно дает мне идентификатор ресурса № 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 ресурсов при работе с базами данных.

Может ли кто-то исправить ошибку в моем коде? И объясните мне, почему он не дает мне требуемый результат?

Это не ошибка. Это похоже на то, когда вы пытаетесь распечатать массив без указания индекса, и печатается только строка «Массив». Вы можете получить доступ к фактическим данным, содержащимся в этих ресурсах (которые вы можете представить как набор данных), используя такие функции, как 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 ? $id – ресурс, потому что mysql_query() возвращает ресурс .

Если вы пытаетесь получить значение столбца 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);