मेरे पास content.php पृष्ठ है कि जब मैं "अधिक" पर क्लिक करता हूं तो मुझे आईडी नंबर के साथ वही सामग्री देनी होगी

<a class="btn text_3 color_3" href="contentdesc.php?contentid=<?=$content["id"]?>">more</a>

समस्या यह है कि जब मैं अधिक पर क्लिक करता हूं, तो यह मुझे contentdesc.php पर निर्देशित करता है और मुझे इस क्वेरी द्वारा तालिका में अंतिम पंक्ति देता है:

  <?php   
   $select="SELECT * FROM content WHERE id HAVING COUNT(*) > 1";
                $query=mysql_query($select);
                while($row=mysql_fetch_assoc($query)) {
                    ?>

                <div class="grid_12">   
                            
                <div class="box3">
        <h3 class="text_4   equal" data-mh="3"><?=$row['name']?></h3>
                                
        <div class="divider"></div>

                                
        <p class="text_8 color_6"><?=$row['description']?></p>
                                
                            </div>
                            
                        </div>  
                        
                        
        <?php } ?>

कृपया क्या कोई मेरी मदद कर सकता है ताकि सामग्री को पंक्ति में समान आईडी नंबर के रूप में लाया जा सके?

0
Ahmad Baba 16 मार्च 2017, 14:15
यह सामान्य व्यवहार है क्योंकि आप अपनी स्क्रिप्ट को बता रहे हैं कि href="contentdesc.php?contentid=<?=$content["id"]?>"
 – 
hassan
16 मार्च 2017, 14:18
हाँ, यह स्क्रिप्ट काम कर रही है, मैं पूछ रहा हूँ कि "contentdesc.php" पेज की सामग्री मुझे समान आईडी नंबर वाली पंक्ति नहीं दे रही है।
 – 
Ahmad Baba
16 मार्च 2017, 14:24

1 उत्तर

सबसे बढ़िया उत्तर

आपके contentdesc.php पेज में आपकी SQL क्वेरी थोड़ी अजीब है।

SELECT * FROM content WHERE id HAVING COUNT(*) > 1

इसका क्या मतलब है?

  • SELECT * सभी कॉलम लौटाएं
  • FROM content इस तालिका से
  • WHERE id जहां id कॉलम का मान सही होता है। यानी गैर-शून्य आईडी वाली प्रत्येक पंक्ति के लिए। (शायद वह नहीं जो आप चाहते थे।)
  • HAVING COUNT(*) > 1 यदि तालिका में दो या अधिक पंक्तियाँ हैं। (शायद वह नहीं जो आप चाहते थे)।

यह शायद गलत है। आपको शायद इसके बजाय इस SQL ​​​​कथन का उपयोग करने की आवश्यकता है:

  SELECT name, description FROM content WHERE id=DESIRED_ID_VALUE;

PHP में, यह कुछ इस तरह दिखेगा।

 $select="SELECT name, description FROM content WHERE id=" . 
             intval($_REQUEST["contentid"]) . ";";

आपकी पहली कोड लाइन में हाइपरलिंक एक ऐसा URL जेनरेट करता है जो इस तरह दिखता है।

contentdesc.php?contentid=123

$_REQUEST["contentid"] का मान उस contentid पैरामीटर से आता है URL. intval() मान को एक पूर्णांक में बदल देता है a>, से एसक्यूएल इंजेक्शन से बचें

चेतावनी। आप जिन mysql_ कॉलों का उपयोग कर रहे हैं वे अप्रचलित और असुरक्षित हैं। कृपया इसके बजाय mysqli_ या PDO का उपयोग करने पर विचार करें।

0
Community 23 मई 2017, 15:09