Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] FULLTEXT Felder aus Tabelle auslesen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] FULLTEXT Felder aus Tabelle auslesen

    Ich Suche nach einer Möglichkeit (SQL-Statement), die Felder-Namen einer Tabelle x auszulesen, welche mit FULLTEXT markiert sind?

    Mögliche Antworten auch mit Hilfe von PHP.

  • #2
    http://dev.mysql.com/doc/refman/5.0/en/show-index.html sollte weiterhelfen

    Kommentar


    • #3
      Jo, sowas in der Art habe ich bereits:

      PHP-Code:
      <?php
          
      function searchDB($table) {

      header("Content-Type: text/plain");

              
      mysql_connect("test""test""test");
              
      $query "SHOW INDEX FROM ".$table;
              include(
      $cfgpath."scripts/dbExecuteQuery.php");

      $test mysql_fetch_array($result);
      print_r($test);

      //    ...
          
      }
      ?>
      Die Ausgabe dafür ist

      Code:
      Array
      (
          [0] => testTable
          [Table] => testTable
          [1] => 0
          [Non_unique] => 0
          [2] => PRIMARY
          [Key_name] => PRIMARY
          [3] => 1
          [Seq_in_index] => 1
          [4] => ID
          [Column_name] => ID
          [5] => A
          [Collation] => A
          [6] => 8
          [Cardinality] => 8
          [7] => 
          [Sub_part] => 
          [8] => 
          [Packed] => 
          [9] => 
          [Null] => 
          [10] => BTREE
          [Index_type] => BTREE
          [11] => 
          [Comment] => 
      )
      und das Tabellenstruct ist wie folgt:
      Code:
      	CREATE TABLE testTable (
      		ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
      		active TINYINT(1) UNSIGNED NOT NULL,
      		complete bigint(20) unsigned DEFAULT '0' NOT NULL,
      		branch VARCHAR(32),
      		name VARCHAR(50),
      		shortDescription VARCHAR(100),
      		Address VARCHAR(200),
      		Phone VARCHAR(13),
      		EMail VARCHAR(50),
      		Url VARCHAR(200),
      		description TEXT,
      		createDate bigint(20) unsigned DEFAULT '0' NOT NULL,
      		modifyDate bigint(20) unsigned DEFAULT '0' NOT NULL,
      		activationCode VARCHAR(32),
      		PRIMARY KEY (ID),
      		FULLTEXT KEY `name` (`name`),
      		FULLTEXT KEY `shortDescription` (`shortDescription`),
      		FULLTEXT KEY `description` (`description`)
      	) ENGINE=MyISAM DEFAULT CHARSET=latin1
      Jetzt müsste ich in der Funktion searchDB irgendwie an die Felder:
      • name
        shortDescription
        description

      ... rankommen.

      Gibts da eine Lösung?

      Kommentar


      • #4
        Ja, nicht nur einen Datensatz (also die BEschreibung für einen Index) mittels mysql_fetch_array abholebn. Sondern zB eine while Schleife verwenden und sämtliche Datensätze abholen und jeweils auf den entsprechenden Index_type abprüfen.

        Kommentar


        • #5
          Ok, hat geklappt...
          Merci...

          Habs mal so gelöst:

          PHP-Code:
          <?php
              $indexArray 
          = array();
              while(
          $row mysql_fetch_array($result)) {
                  
          array_push($indexArray$row);
              }
              foreach(
          $indexArray as $thisIndex) {
                  print(
          $thisIndex["Index_type"]);
                  print(
          "\n");
              }
          ?>
          Naja...
          Dummheit sollte Bestraft werden

          Kommentar


          • #6
            Wozu erst das Array im while aufbauen, nur um es direkt danach mit foreaach abzuarbeiten?
            Also erstmal herzlich Glückwunsch, so sollte es funktionieren.
            Aber wenn da nicht noch irgendwelcher Code dringed dazwischen steht, ist das (noch) suboptimal.

            Kommentar


            • #7
              Jo, sieht schon ein wenig anders aus jetzt.
              Der obige Code ist aus mehreren Funktionen zusammenkopiert und mehr als Illustration gedacht.

              Die print-Ausgabe macht auch wenig Sinn für mein eingentliches Problem.

              Trotzdem merci für den Hinweis...

              Kommentar

              Lädt...
              X