sql >> Database teknologi >  >> Database Tools >> phpMyAdmin

PhpMyAdmin eksportprocedure resultat

Dette er ikke en ordentlig løsning, men snarere en løsning:

Du kan kopiere den ydre HTML af enhver eksportknap fra et almindeligt forespørgselsresultat ved at bruge elementinspektøren fra din browser og indsætte det i resultatet af en CALL-kommando for at eksportere resultaterne. Nogle ændringer er nødvendige.

Du bør kopiere ankertagget med href="tbl_export.php" fra en almindelig forespørgselseksportknap. Bemærk, at <a> tag har et data-post attribut, som indeholder url-kodede formulardata. Blandt alle felterne i data-post streng, er vi interesserede i sql_query og table felter. Vi ønsker nemlig at erstatte sql_query og påstå, at table feltet er ikke tomt.

Når du udfører en CALL-kommando i PhpMyAdmin, skal du åbne elementinspektøren i feltsættet nederst på siden, indsætte den kopierede ydre HTML som det sidste underordnede af feltsættet og redigere sql_query værdi for at matche værdien af ​​sql_query i den tilstødende Opret visning knap.

Følgende Greasemonkey-script gør alt ovenstående automatisk og opretter en "Tvungen eksport"-knap, når det er muligt:

// ==UserScript==
// @name      Force export button in phpMyAdmin
// @namespace https://<your phpmyadmin host>/*
// @include   https://<your phpmyadmin host>/*
// @version   1
// @grant     none
// ==/UserScript==

setInterval(function() {
  // See https://stackoverflow.com/a/35385518/5254685
  /**
   * @param {String} HTML representing a single element
   * @return {Element}
   */
  function htmlToElement(html) {
      var template = document.createElement('template');
      html = html.trim(); // Never return a text node of whitespace as the result
      template.innerHTML = html;
      return template.content.firstChild;
  }

  let create_view_a = document.querySelector('span>a.create_view');
 
  if (create_view_a == null) {
    return;
  }
  
  if (document.querySelector('a[href="tbl_export.php"]') != null) {
    return;
  }

  let data_post = create_view_a.getAttribute('data-post');

  let fieldset = create_view_a.parentElement.parentElement;
  
  let form_data = Object.fromEntries(
    data_post.split('&').map(v => v.split('=', 2))
    );


  if (form_data['table']) {
    let forced_export_btn = htmlToElement(`
      <a href="tbl_export.php" data-post="${data_post}">
        <span class="nowrap"><img src="themes/dot.gif" title="Export" alt="Export" class="icon ic_b_tblexport">&nbsp;Forced Export</span>
      </a>
    `);
    fieldset.appendChild(forced_export_btn);
  }
}, 2500);



  1. SSMS går ned, når du prøver at ændre databasediagram (v18.2)

  2. En gyldig destinationsmappe for installationen kunne ikke bestemmes ved installation af SQL Server Management Studio 2016

  3. SSMS 2012 Intellisense-adfærd

  4. Gruppér tabeller efter skema i SSMS