2010-06-29 11 views
5

उत्पन्न करता है मैं केवल उस तालिका के ऑटो वृद्धिशील मान को प्राप्त करने का प्रयास कर रहा हूं जो वर्तमान में उच्चतम है। मुझे यह जानने की जरूरत नहीं है कि अगला ऑटो वृद्धि क्या है, अभी तालिका में क्या है इसका उच्चतम मूल्य। मैं नीचे दिए गए कोड का उपयोग कर रहा हूं, लेकिन वास्तविक ऑटो वृद्धि क्या है, मैं किस तालिका में आखिरी बार डाला गया था, आखिरी बार अपडेट/संशोधित किया गया था, या कोई अन्य कारक जो मैं देख सकता हूं, मूल्य हमेशा देता है। यह दो कारणों से मुझे परेशान कर रहा है। सबसे पहले मुझे समझ में नहीं आता कि संख्या हमेशा 4 क्यों है, दूसरी बात यह नहीं समझती कि मैं केवल एक पूर्णांक की बजाय स्ट्रिंग मान (अक्षरों और प्रतीक के साथ) क्यों वापस प्राप्त कर रहा हूं। यहां क्या सौदा है?PHP से बुलाया MySQL MAX (id) अजीब मान

<?php $highest_id = mysql_query("SELECT MAX(c_id) FROM customers"); ?>

उत्तर

13

mysql_query क्वेरी से मूल्य वापस नहीं करता है, यह एक परिणाम संसाधन देता है। वास्तविक मान प्राप्त करने के लिए, आपको फ़ंक्शंस में से एक का उपयोग करने की आवश्यकता है, इसे mysql_query से प्राप्त परिणाम संसाधन पास करना होगा।

<?php 
    $result = mysql_query("SELECT MAX(c_id) FROM customers"); 
    $row = mysql_fetch_row($result); 
    $highest_id = $row[0]; 
?> 

या कम ...

<?php 
    $highest_id = mysql_result(mysql_query("SELECT MAX(c_id) FROM customers"), 0); 
?> 
+0

मुझे लगता है कि वहां पर बेवकूफ पोस्टिंग की तरह लग रहा है, लेकिन हाँ, वास्तव में मुझे पहले ऐसा ही मिला था, लेकिन परिणाम लौटाया गया था। मैं आपको अपनी पोस्ट को संपादित करने के लिए संपादित करूंगा जो मैंने पहले किया था (जो आप सुझाव दे रहे हैं)। – ubiquibacon

+0

ठीक है, मैं देखता हूं कि मैंने अभी क्या किया है। मेरा मूल कोड मैंने 'mysql_fetch_array' का उपयोग किया और फिर मैंने गड़बड़ की जहां आपके पास' 0' '$ पंक्ति [0]' ''' है। आपकी सहायताके लिए धन्यवाद! – ubiquibacon

3

mysql_query रिटर्न एक परिणाम के हैंडल, न कि वास्तविक परिणाम। दूसरे शब्दों में, आपकी क्वेरी का परिणाम संसाधन आईडी # 4 के रूप में सहेजा जाता है (और यह हमेशा एक जैसा होने की गारंटी नहीं है, यह संयोग है यदि आप इसे हर समय देखते हैं)।

परिणाम तक पहुंचने के लिए आपको mysql_fetch_array या उसी परिवार के अन्य कार्यों में से किसी एक का उपयोग करने की आवश्यकता है।

कुछ इस तरह:

<?php 

$query = mysql_query("SELECT MAX(c_id) as max FROM customers"); 
$row = mysql_fetch_array($query); 
$highest_id = $row['max']; 

?> 
0
$highest_id = mysql_result(mysql_query("SELECT MAX(c_id) FROM customers")); 
+0

बहुत संक्षेप में, लेकिन होना चाहिए: $ high_id = mysql_result (mysql_query ("ग्राहकों से चयन MAX (c_id)"), 0); – TomWilsonFL

0

ऐसा करने के 2015 रास्ते
मान लीजिए कि आप डेटाबेस है ($ this-> db)

$maxid = $this->db->query('SELECT MAX(c_id) FROM `customers`')->fetchColumn(); 
2

यह मेरा जवाब है:

require_once 'db_cconnection.php'; 
$query = "SELECT MAX(stud_id) FROM student_tbl"; 
$result = mysqli_query($connection, $query); 
$row = mysqli_fetch_row($result); 
echo $row[0]; 

जब आप mysqli_fetch_row का उपयोग करते हैं तो यह केवल एक पंक्ति प्राप्त करेगा, क्योंकि हम केवल एक पंक्ति चाहते हैं। $row एक सरणी होगी। तो हमें सरणी सूचकांक के माध्यम से अपना मूल्य प्राप्त करने की आवश्यकता है।

संबंधित मुद्दे