Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

डेटाबेस में विशिष्ट डेटा पुनर्प्राप्त करने के लिए चेकबॉक्स का उपयोग कैसे करें

मुझे आपके कोड में कम से कम 2 त्रुटियां दिखाई देती हैं।

  1. $column_names सहयोगी सरणी मानों को फ़ील्ड नामों के रूप में पारित किया जाना चाहिए, इसलिए मुझे लगता है कि वे सही नहीं हैं, क्योंकि आपके पास उनमें रिक्त स्थान हैं (और जैसा कि मुझे पता है कि डिफ़ॉल्ट रूप से वर्डप्रेस में ऐसे फ़ील्ड नाम नहीं होते हैं।

  2. यदि उपयोगकर्ता द्वारा कुछ चयन प्रदान किया जाता है तो आप कुछ अतिरिक्त फ़ील्ड नाम जोड़ रहे हैं जो उपयोगकर्ता द्वारा पारित किए गए हैं और आपके पास उनके बाद एक कोलन है, इसलिए यह एक त्रुटि उत्पन्न करेगा।

मैं इस तरह कोड को फिर से लिखूंगा

<?php
$all = false;
$column_names = array('1' => '`field1`', '2' => '`field2`', '3' => '`field3`');
if(isset($_POST['columns'])){
    $column_entries = $_POST['columns'];
    $sql_columns = array();
    foreach($column_entries as $i) {
        if(array_key_exists($i, $column_names)) {
            $sql_columns[] = $column_names[$i];
        }
    }
    $sql_columns[] = "authorss";
    $sql_columns[] = "research_source";
    $sql_columns[] = "research_title";
} else {
    $all = true;
    $sql_columns[] = "*";
}

जैसा कि आपने कहा है कि $wpdb->get_results पहले से ही परिणाम - सरणी देता है, इसलिए आपको त्रुटियां मिलती हैं। साथ ही mysql_fetch_assoc को कॉल करने से पहले यह जांचना बेहतर है कि पारित पैरामीटर संसाधन है या नहीं और पंक्तियों की संख्या 0 नहीं है।

if($result!==false && mysql_num_rows($result)>0){
    while( $row = mysql_fetch_assoc($result)){
        ...
    }
}  

************ अद्यतन करें ************

पिछले परिवर्तनों के अनुसार इस कोड को आजमाएं:

<?php
$all = false;
$column_names = array('1' => '`authorss`', '2' => '`research_source`', '3' => '`research_title`');
if(isset($_POST['columns'])){
    $column_entries = $_POST['columns'];
    $sql_columns = array();
    foreach($column_entries as $i) {
        if(array_key_exists($i, $column_names)) {
            $sql_columns[] = $column_names[$i];
        }
    }
} else {
    $all = true;
    $sql_columns[] = "authorss";
    $sql_columns[] = "research_source";
    $sql_columns[] = "research_title";
}

global $wpdb;

//DNI CHECKBOX + ALL
$tmp = $wpdb->get_results( "SELECT ".implode(",", $sql_columns)." FROM wp_participants_database"); 


echo "<table border='1' style='width:450px'>
    <tr>
    <th>authorss</th>
    <th>research_source</th>
    <th>research_title</th>";
foreach($column_names as $k => $v) { 
    if($all || (is_array($column_entries) && in_array($k, $column_entries)))
        echo "<th>$v</th>";
}
echo "</tr>";

if(count($tmp)>0){
    for($i=0;$i<count($tmp);$i++){
        echo "<tr>";  
            foreach($tmp[$i] as $key=>$value){
                echo "<td>" . $value . "</td>";   
            }
            foreach($column_names as $k => $v) { 
                if($all || (is_array($column_entries) && in_array($k, $column_entries))) {
                    echo "<th>".$row[$v]."</th>";
                }
            }
        echo "</tr>";
    }
}

echo '</table>';
?>



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql में गैर-मिलान परिणामों को कैसे पुनर्प्राप्त करें

  2. एक अलग तालिका बनाएं बिना एक चयन कथन में एक अस्थायी तालिका बनाएं

  3. क्वेरी फ़ील्ड में अंतिम वर्ण द्वारा समूह का चयन करें

  4. 'उपयोगकर्ता' @ 'लोकलहोस्ट' के लिए प्रवेश निषेध

  5. SHA256 हैश कब तक है?