Abfrage mit 2 Parametern

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

  • Abfrage mit 2 Parametern

    Hi,

    ich hab folgendes Problemchen:

    mit der unten stehenen Abfrage, checke ich ab,
    welcher punkt in der dem dropdown ausgewählt
    ist (also aktive) .... dieses geschiet in dem Bereich
    wo ich die Seite editieren kann...

    PHP-Code:
    <select name="extension">
        <option value="0"><?php echo PAGE_NO_EXTENSION ?></option>
        
        <?php
        
        $extension_sql 
    "SELECT id, name FROM extensions" ;
        
    $extension_result mysql_query($extension_sql) ;
        
        while(
    $extension mysql_fetch_assoc($extension_result)) {
            
                echo 
    '<option value="'.$extension['id'].'"';
            
                    if (
    $row['extension'] == $extension['id']) { echo ' selected="selected"' ; }
            
                echo 
    '>'.$extension['name'].'</option>' ;
        
        }
        
        
    ?>
        
    </select>
    Nun möchte ich zusätzlich eingrenzen, welche der extensions
    a. noch nicht verwendet sind und b. muss aber die die in der
    activen seite ist, angezeigt werden...

    PHP-Code:
    <select name="extension">
        <option value="0"><?php echo PAGE_NO_EXTENSION ?></option>
        
        <?php
        
        $extension_sql 
    "SELECT id, name FROM extensions" ;
        
    $extension_result mysql_query($extension_sql) ;
        
        while(
    $extension mysql_fetch_assoc($extension_result)) {
            
            
    $xsql "SELECT * FROM pages WHERE id != '".$_GET['id']."' OR extension = '".$row['extension']."'" ;
            
    $xresult mysql_query($xsql) ;

            if (
    mysql_num_rows($xresult) == 0) {
        
                echo 
    '<option value="'.$extension['id'].'"';
            
                    if (
    $row['extension'] == $extension['id']) { echo ' selected="selected"' ; }
            
                echo 
    '>'.$extension['name'].'</option>' ;
            
            }
        
        }
        
        
    ?>
        
    </select>
    irgendeine Idee?
    Design & Coding with a breeze of madness at xjonx

  • #2
    irgendeine Idee?
    'ne ganze menge. aber willst du nicht auch eine frage stellen?

    übrigens, query in einer schleife über die datensätze auszuführen lässt sich in fast allen fällen durch ein JOIN ersetzen. das ist sicherer und effizienter.

    Kommentar


    • #3
      ich hab es jetzt folgener massen gelöst... ich bitte um vorschläge es zu optimieren:

      PHP-Code:
      $extension_sql "  SELECT 
                                      extensions.id AS id, 
                                      extensions.type AS ability, 
                                      extensions.name AS name, 
                                      pages.id AS page, 
                                      pages.extension AS status 
                                  FROM 
                                      extensions 
                                  LEFT JOIN 
                                      pages ON pages.extension=extensions.id" 
      ;

              
      $extension_result mysql_query($extension_sql) ;
              while(
      $extension mysql_fetch_assoc($extension_result)) {

                  if (
      $extension['status'] == '' && $extension['ability'] == '1') {

                      echo 
      '<option value="'.$extension['id'].'"';
                      if (
      $row['extension'] == $extension['id']) { echo ' selected="selected"' ; }
                      echo 
      '>'.$extension['name'].'</option>' ;
                  
                  } 
                  if (
      $extension['page'] == $_GET['id']) {

                      echo 
      '<option value="'.$extension['id'].'"';
                      if (
      $row['extension'] == $extension['id']) { echo ' selected="selected"' ; }
                      echo 
      '>'.$extension['name'].'</option>' ;
                  
                  }
                  
              } 

      hier die datenbank strukturen:
      PHP-Code:
      CREATE TABLE `extensions` (
        `
      idint(11NOT NULL auto_increment,
        `
      namevarchar(255NOT NULL default '',
        `
      descriptionlongtext NOT NULL,
        `
      pathvarchar(255NOT NULL default '',
        `
      typeint(11NOT NULL default '0',
        
      PRIMARY KEY  (`id`)
      TYPE=MyISAM AUTO_INCREMENT=;


      CREATE TABLE `pages` (
        `
      idint(11NOT NULL auto_increment,
        `
      titlevarchar(255NOT NULL default '',
        `
      headlinevarchar(255NOT NULL default '',
        `
      contentlongtext NOT NULL,
        `
      typevarchar(255NOT NULL default '',
        `
      activetinyint(1NOT NULL default '0',
        `
      menuint(11NOT NULL default '0',
        `
      childint(11NOT NULL default '0',
        `
      afterparentint(11NOT NULL default '0',
        `
      extensionint(11NOT NULL default '0',
        `
      extension_pathvarchar(255NOT NULL default '',
        `
      hitsint(255NOT NULL default '0',
        `
      timestampdatetime NOT NULL default '0000-00-00 00:00:00',
        
      PRIMARY KEY  (`id`)
      TYPE=MyISAM AUTO_INCREMENT=21 
      die datenbank struktur an sich, werde ich noch optimieren,
      da noch weitere felder hinzu kommen werden.
      Design & Coding with a breeze of madness at xjonx

      Kommentar

      Lädt...
      X