2013-03-10 9 views
6

के माध्यम से mysql परिणामों को फ़िल्टर करना मैं स्टैक ओवरफ्लो का एक नया सदस्य हूं, और हालांकि मैं लंबे समय से वेबसाइट का उपयोग कर रहा हूं, यह मेरी पहली बार एक प्रश्न पोस्ट कर रहा है, उम्मीद है कि कोई मदद करने में सक्षम होगा मुझे। मैं यह कहकर शुरू करूंगा कि PHP और MySQL का मेरा ज्ञान मूलभूत है, लेकिन जो मैं करने की कोशिश कर रहा हूं वह मेरी राय में बहुत जटिल नहीं है, इसलिए उम्मीद है कि मैं ज्यादा मांग नहीं करूँगा। मैंने बहुत पहले से शोध किया है, लेकिन मुझे सही जवाब नहीं मिला।चुनिंदा ड्रॉपडाउन

मैं एक HTML रूप है, जो प्रस्तुत करने पर एक डेटाबेस में डेटा लिखता है, और फिर एक अलग html पृष्ठ पर एक टेबल प्रकाशित करता है:

संक्षेप में, यह मैं क्या करने की कोशिश कर रहा हूँ है। प्रत्येक सफल सबमिशन के साथ एक नई तालिका जेनरेट और प्रकाशित हो जाती है, जबकि पुराना व्यक्ति नीचे धकेलता है। यह सब ठीक काम करता है, और मैंने पेजिनेशन भी लागू किया है ताकि प्रति पृष्ठ केवल 5 टेबल दिखाई दे सकें।

मैं जो करने में सक्षम होना चाहता हूं वह लोगों को एक विशिष्ट मानदंड के आधार पर परिणाम (तालिकाओं) को देखने/प्रदर्शित करने की अनुमति देता है, इस मामले में "रेटिंग", ड्रॉप-डाउन से रेटिंग का चयन करके पृष्ठ जहां टेबल प्रकाशित हैं। रेटिंग मेरे रूप में फ़ील्ड में से एक है जो डेटाबेस में जमा हो जाती है और फिर तालिका में पंक्तियों में से एक में प्रकाशित होती है।

नीचे कोड है जो तालिकाओं को प्रकाशित करता है। आपकी सहायता के लिये पहले से ही धन्यवाद!

<?php 
include('dbconnect.php'); 

mysql_select_db("vtracker", $con); 
$result = mysql_query("SELECT * FROM userdata"); 
$age = "Age:"; 
$rating = "Rating:"; 
$country = "From:"; 
$name = "Name:"; 

     while($row = mysql_fetch_array($result)) 
     { 

         echo "<table id='mft_table' cellspacing='0'>"; 
         echo "<tbody>"; 
         echo "<tr>"; 
         echo "<td class='row1'>" .$name . " " . $row['personsname'] . "</td>"; 
         echo "<td rowspan='4'>"; 
         echo "<div class='mft_column'>" . $row['mft'] . "</div>"; 
         echo "</td>"; 
         echo "</tr>"; 
         echo "<tr>"; 
         echo "<td class='row2'>" . $country . " " . $row['nationality'] . "</td>"; 
         echo "</tr>"; 
         echo "<tr>"; 
         echo "<td class='row3'>" . $age . " " . $row['personsage'] . "</td>"; 
         echo "</tr>"; 
         echo "<tr>"; 
         echo "<td class='row4'>" . $rating . " " . $row['rating'] . "</td>"; 
         echo "</tr>"; 
         echo "</tbody>"; 
         echo "<br>"; 
         echo "</table>"; 

     } 
    ?> 

उत्तर

1
दोनों सही और झूठे उपयोग अपने कोड में thid जोड़ सकते हैं के लिए

:

if($_POST['rating_dropdown']!='') 
{ 
    $temp_rating = $_POST['rating_dropdown']; 
    $query=mysql_query("SELECT * FROM userdata WHERE rating = '$temp_rating'"); 
} 
else 
{ 
    $query=mysql_query("SELECT * FROM userdata"); 
} 
+1

धन्यवाद, सभी ठीक काम कर रहे हैं, मैंने सलाह दी है। पिचिंग के लिए सभी को धन्यवाद। – Zeus

0

अगर यह काम करता है पता नहीं, यह सिर्फ एक hinch है। haha। यह देखेंगे कि रेटिंग सही है (शून्य नहीं), अगर यह सच है तो यह परिणाम गूंज जाएगा।

$temp_rating = $_POST['rating_dropdown']; 
mysql_query("SELECT * FROM userdata WHERE rating = '$temp_rating'"); 

ध्यान रखें, हालांकि, आप का उपयोग करना चाहिए कि पीडीओ या mysqli विस्तार, नहीं mysql विस्तार:

while($row = mysql_fetch_array($result)) 
{ 
if ($rating) 
       echo "<table id='mft_table' cellspacing='0'>"; 
       echo "<tbody>"; 
       echo "<tr>"; 
       echo "<td class='row1'>" .$name . " " . $row['personsname'] . "</td>"; 
       echo "<td rowspan='4'>"; 
       echo "<div class='mft_column'>" . $row['mft'] . "</div>"; 
       echo "</td>"; 
       echo "</tr>"; 
       echo "<tr>"; 
       echo "<td class='row2'>" . $country . " " . $row['nationality'] . "</td>"; 
       echo "</tr>"; 
       echo "<tr>"; 
       echo "<td class='row3'>" . $age . " " . $row['personsage'] . "</td>"; 
       echo "</tr>"; 
       echo "<tr>"; 
       echo "<td class='row4'>" . $rating . " " . $row['rating'] . "</td>"; 
       echo "</tr>"; 
       echo "</tbody>"; 
       echo "<br>"; 
       echo "</table>"; 
} 

} 
0

एक बार लटकती का चयन किया और अपने प्रदर्शन पेज पर पोस्ट हो जाती, इस कोड का उपयोग । PHP की वेबसाइट के अनुसार:

यह एक्सटेंशन PHP 5.5.0 के रूप में बहिष्कृत है, और भविष्य में में हटा दिया जाएगा। इसके बजाय, MySQLi या PDO_MySQL एक्सटेंशन का उपयोग किया जाना चाहिए। MySQL भी देखें: अधिक जानकारी के लिए एक एपीआई मार्गदर्शिका और संबंधित FAQ का चयन करना।

+0

जवाब देने के लिए धन्यवाद। रेटिंग विकल्पों के साथ ड्रॉपडाउन हमेशा प्रदर्शन पृष्ठ पर होता है, जिसे मैंने 'filter.php' फ़ाइल से लिंक किया है जिसे उपयोगकर्ता "सबमिट" बटन पर क्लिक करते समय बुलाया जा रहा है। Filter.php फ़ाइल में मेरे कोड का तर्क वास्तव में वही है जैसा आपने सुझाया था, लेकिन यह काम नहीं करता है, यानी परिणाम (टेबल) उपयोगकर्ता चयन के आधार पर फ़िल्टर नहीं किए जाते हैं। Filter.php फ़ाइल में कोड यहां दिया गया है: – Zeus

+0

बस एहसास हुआ कि मेरे पास सब कुछ पोस्ट करने के लिए पर्याप्त जगह नहीं है ... – Zeus

+0

filter.php फ़ाइल में मेरे पास है: $ फ़िल्टर किया गया = mysql_real_escape_string ($ _ POST ["फ़िल्टर किया गया]]); $ परिणाम = mysql_query ("चयन * उपयोगकर्ता डेटा से रेटिंग = '$ फ़िल्टर' '); और फिर थोड़ी देर लूप जो टेबल को प्रिंट करता है, जैसे कि मेरे मूल कोड में। – Zeus

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