wenn datensatz nicht gefunden = fehlermeldung

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

  • #31
    Ich kann suchen ohne Probleme, die Datensätzte werden auch ausgegeben aber wenn der Suchbegriff nicht gefunden wird, wird der Meldung Keine id gefunden ausgegeben.

    hier nochmals unverändert:

    PHP-Code:
    <?php
    if (isset($_POST['submit'])) {
    unset(
    $submit);
    //Zuweisungen
    $id trim($_POST["id"]);
    $titel $_POST["titel"]; // select names
    $text $_POST["text"];
    $autor $_POST["autor"];

    if (
    $id ==""){$id '%';}
    if (
    $titel ==""){$titel '%';}
    if (
    $text ==""){$text '%';}
    if (
    $autor ==""){$autor '%';}

    $db->query("SELECT * FROM news WHERE id LIKE '$id%' AND titel 
    LIKE '
    $titel%' AND text LIKE '$text%' AND autor LIKE '$autor%'")
     or die(
    'Selection failed: '.mysql_error());
    while(
    $db->next_record()){

                    
    $stil=="#CCFFCC"?$stil "#CCCCFF":$stil="#CCFFCC";

    ?>
    <tr bgcolor="<?php echo $stil ?>"> 
        <td class="listedb">
    <?php !empty($id) ? print $db->f("id") : 'Keine id'?>&nbsp;</td>
        <td  class="listedb"><?php echo $db->f("titel"); ?>&nbsp;</td>
        <td  class="listedb"><?php echo $db->f("text"); ?>&nbsp;</td>
        <td  class="listedb"><?php echo $db->f("datum"); ?>&nbsp;</td>
        <td  class="listedb"><?php echo $db->f("zeit"); ?>&nbsp;</td>
        <td  class="listedb"><?php echo $db->f("autor"); ?>&nbsp;</td>
        <td  class="listedb"><?php echo $db->f("anzeigen"); ?>&nbsp;</td>
        <td  align="center" class="listedb"> 
        <input type="checkbox" value="<?php echo $db->f('id'); ?>" name="ids[]"></td>
        <td align="center" class="listedb" bgcolor="<?php echo $stil ?>">
        <a href="?section=news_edit&id=<?php echo $db->f('id'); ?>">[ J A ]</a></td>
    </tr>
      <?      
        }
        }
    ?>

    Kommentar


    • #32
      Original geschrieben von lan
      Ich kann suchen ohne Probleme, die Datensätzte werden auch ausgegeben aber wenn der
      Suchbegriff nicht gefunden wird, wird der Meldung Keine id gefunden ausgegeben.
      Meinst du wenn der Suchbegriff $text und leer ist, soll die meldung "keinen Text gefunden" anstatt
      "keine id gefunden" ausgeben? Wenn ja wiederholst du die Bedingung für alle Suchbegriffe:
      PHP-Code:
      <?php !empty($row['text']) ? print $row['text'] : 'Kein Text gefunden'?>
      usw...
      kann es aber auch sein, dass du völlig was anderes meinst!?
      Zuletzt geändert von pippo; 12.09.2005, 21:58.
      In Flames - Pinbal Map
      Becoming the Archetype - No Fall Too Far
      Pantera

      Kommentar


      • #33
        Eigentlich schon, ich hab eine Suchmaske wo ich nach ID, Titel, Text und Autor suchen kann.

        Ist momentan, ich kann so wie der Fomular aufgebaut ist suchen Ohne weiteres, ich kann ein ID eingeben und Suchen oder nach Titel, Text und Autor es werden mir alle Datensätze ausgegeben.

        Was ich möchte ist, wenn ich eine ID, Titel, Text oder Autor eingebe die in der Datenbank gar nicht existiert dies auch ausgegeben wird, in form von z.B Datensätze mit ID oder kein Titel, Text oder Autor gefunden.

        Kommentar


        • #34
          man könnte es so probieren:

          PHP-Code:
          if($id) //wenn z.B. suchbegriff id ist...
          $sql = "SELECT COUNT(id) AS count FROM news WHERE id LIKE '%$id%'";
          $result = mysql_query($sql);  
          $count_ergbniss = mysql_result($result, 0, 'count');
          if($count_ergbniss < 1) 
          {
                  print "Leider keine Ergebnisse mit '.$id;
          }
          else
          }

          //ergebnisse für id ausgeben lassen:
          $sql = "SELECT * FROM news WHERE id LIKE '$id'";
          $result = mysql_query($sql);  
          while($row = mysql_fetch_assoc($result))
              {
          ?>
          <tr><td  class="listedb"><?php print $row['id']; ?>&nbsp;</td>
          ...
          In Flames - Pinbal Map
          Becoming the Archetype - No Fall Too Far
          Pantera

          Kommentar


          • #35
            1. ich kenne diese klasse nicht und weiß immer noch nicht, was $db ist. ist sie überhaupt von dir?

            2. das
            PHP-Code:
            while($db->next_record()){ 
            müsste dafür sorgen, dass bei 0 treffern nichts ausgegeben wird.

            Kommentar


            • #36
              danke für deine hilfe bis jetzt, bin ko, ich hab getestet geht nicht, die klasse ist nicht von mir leider, bin mir am überlegen ob ich diese klasse ganz weg lassen wil.

              ich werde die Suchmaske neu gestalten müssen.

              Kommentar


              • #37
                diese klasse muss doch irgendwoher stammen. es wäre sehr hilfreich, wenn du sagen würdest, welche methoden sie hat. es wäre anzunehmen, dass die anzahl der gelieferten ergebnisse sich damit ermitteln lässt.

                sowas wie
                PHP-Code:
                if ( $db->resCount() > 
                {
                   
                // <tr> zeile ausgeben
                }
                else
                {
                   echo 
                "nichts";

                Kommentar


                • #38
                  die klasse ist von:
                  * Copyright (c) 1998-2000 NetUSE AG
                  * Boris Erdmann, Kristian Koehntopp

                  Kommentar


                  • #39
                    sagt mir nichts.

                    Kommentar


                    • #40
                      hier die Classe:

                      PHP-Code:
                      <?php
                      /*
                       * Session Management for PHP3
                       *
                       * Copyright (c) 1998-2000 NetUSE AG
                       *                    Boris Erdmann, Kristian Koehntopp
                       *
                       * $Id: db_mysql.inc,v 1.3 2001/05/17 00:57:31 chrisj Exp $
                       *
                       */ 
                      class DB_Sql {
                        
                      /* public: connection parameters */
                        
                      var $Host     "";
                        var 
                      $Database "";
                        var 
                      $User     "";
                        var 
                      $Password "";
                        
                      /* public: configuration parameters */
                        
                      var $Auto_Free     0;     ## Set to 1 for automatic mysql_free_result()
                        
                      var $Debug         0;     ## Set to 1 for debugging messages.
                        
                      var $Halt_On_Error "yes"## "yes" (halt with message), "no" (ignore errors quietly), "report" (ignore errror, but spit a warning)
                        
                      var $Seq_Table     "db_sequence";
                        
                      /* public: result array and current row number */
                        
                      var $Record   = array();
                        var 
                      $Row;
                        
                      /* public: current error number and error text */
                        
                      var $Errno    0;
                        var 
                      $Error    "";
                        
                      /* public: this is an api revision, not a CVS revision. */
                        
                      var $type     "mysql";
                        var 
                      $revision "1.2";
                        
                      /* private: link and query handles */
                        
                      var $Link_ID  0;
                        var 
                      $Query_ID 0;
                        
                      /* public: constructor */
                        
                      function DB_Sql($query "") {
                            
                      $this->query($query);
                        }
                        
                      /* public: some trivial reporting */
                        
                      function link_id() {
                          return 
                      $this->Link_ID;
                        }
                        function 
                      query_id() {
                          return 
                      $this->Query_ID;
                        }
                        
                      /* public: connection management */
                        
                      function connect($Database ""$Host ""$User ""$Password "") {
                          
                      /* Handle defaults */
                          
                      if ("" == $Database)
                            
                      $Database $this->Database;
                          if (
                      "" == $Host)
                            
                      $Host     $this->Host;
                          if (
                      "" == $User)
                            
                      $User     $this->User;
                          if (
                      "" == $Password)
                            
                      $Password $this->Password;   
                          
                      /* establish connection, select database */
                          
                      if ( == $this->Link_ID ) { 
                            
                      $this->Link_ID=mysql_pconnect($Host$User$Password);
                            if (!
                      $this->Link_ID) {
                              
                      $this->halt("pconnect($Host$User, \$Password) failed.");
                              return 
                      0;
                            }
                            if (!@
                      mysql_select_db($Database,$this->Link_ID)) {
                              
                      $this->halt("cannot use database ".$this->Database);
                              return 
                      0;
                            }
                          } 
                          return 
                      $this->Link_ID;
                        }
                        
                      /* public: discard the query result */
                        
                      function free() {
                            @
                      mysql_free_result($this->Query_ID);
                            
                      $this->Query_ID 0;
                        }
                        
                      /* public: perform a query */
                        
                      function query($Query_String) {
                          
                      /* No empty queries, please, since PHP4 chokes on them. */
                          
                      if ($Query_String == "")
                            
                      /* The empty query string is passed on from the constructor,
                             * when calling the class without a query, e.g. in situations
                             * like these: '$db = new DB_Sql_Subclass;'
                             */
                            
                      return 0;
                          if (!
                      $this->connect()) {
                            return 
                      0/* we already complained in connect() about that. */
                          
                      };
                          
                      # New query, discard previous result.
                          
                      if ($this->Query_ID) {
                            
                      $this->free();
                          }
                          if (
                      $this->Debug)
                            
                      printf("Debug: query = %s<br>\n"$Query_String);
                          
                      $this->Query_ID = @mysql_query($Query_String,$this->Link_ID);
                          
                      $this->Row   0;
                          
                      $this->Errno mysql_errno();
                          
                      $this->Error mysql_error();
                          if (!
                      $this->Query_ID) {
                            
                      $this->halt("Invalid SQL: ".$Query_String);
                          }
                          
                      # Will return nada if it fails. That's fine.
                          
                      return $this->Query_ID;
                        }
                        
                      /* public: walk result set */
                        
                      function next_record() {
                          if (!
                      $this->Query_ID) {
                            
                      $this->halt("next_record called with no query pending.");
                            return 
                      0;
                          }
                          
                      $this->Record = @mysql_fetch_array($this->Query_ID);
                          
                      $this->Row   += 1;
                          
                      $this->Errno  mysql_errno();
                          
                      $this->Error  mysql_error();
                          
                      $stat is_array($this->Record);
                          if (!
                      $stat && $this->Auto_Free) {
                            
                      $this->free();
                          }
                          return 
                      $stat;
                        }
                        
                      /* public: position in result set */
                        
                      function seek($pos 0) {
                          
                      $status = @mysql_data_seek($this->Query_ID$pos);
                          if (
                      $status)
                            
                      $this->Row $pos;
                          else {
                            
                      $this->halt("seek($pos) failed: result has ".$this->num_rows()." rows");
                            
                      /* half assed attempt to save the day, 
                             * but do not consider this documented or even
                             * desireable behaviour.
                             */
                            
                      @mysql_data_seek($this->Query_ID$this->num_rows());
                            
                      $this->Row $this->num_rows;
                            return 
                      0;
                          }
                          return 
                      1;
                        }
                        
                      /* public: table locking */
                        
                      function lock($table$mode="write") {
                          
                      $this->connect(); 
                          
                      $query="lock tables ";
                          if (
                      is_array($table)) {
                            while (list(
                      $key,$value)=each($table)) {
                              if (
                      $key=="read" && $key!=0) {
                                
                      $query.="$value read, ";
                              } else {
                                
                      $query.="$value $mode, ";
                              }
                            }
                            
                      $query=substr($query,0,-2);
                          } else {
                            
                      $query.="$table $mode";
                          }
                          
                      $res = @mysql_query($query$this->Link_ID);
                          if (!
                      $res) {
                            
                      $this->halt("lock($table$mode) failed.");
                            return 
                      0;
                          }
                          return 
                      $res;
                        }
                        function 
                      unlock() {
                          
                      $this->connect();
                          
                      $res = @mysql_query("unlock tables"$this->Link_ID);
                          if (!
                      $res) {
                            
                      $this->halt("unlock() failed.");
                            return 
                      0;
                          }
                          return 
                      $res;
                        }
                        
                      /* public: evaluate the result (size, width) */
                        
                      function affected_rows() {
                          return @
                      mysql_affected_rows($this->Link_ID);
                        }
                        function 
                      num_rows() {
                          return @
                      mysql_num_rows($this->Query_ID);
                        }
                        function 
                      num_fields() {
                          return @
                      mysql_num_fields($this->Query_ID);
                        }
                        
                      /* public: shorthand notation */
                        
                      function nf() {
                          return 
                      $this->num_rows();
                        }
                        function 
                      np() {
                          print 
                      $this->num_rows();
                        }
                        function 
                      f($Name) {
                          return 
                      $this->Record[$Name];
                        }
                        function 
                      p($Name) {
                          print 
                      $this->Record[$Name];
                        }
                        
                      /* public: sequence numbers */
                        
                      function nextid($seq_name) {
                          
                      $this->connect();    
                          if (
                      $this->lock($this->Seq_Table)) {
                            
                      /* get sequence number (locked) and increment */
                            
                      $q  sprintf("select nextid from %s where seq_name = '%s'",
                                      
                      $this->Seq_Table,
                                      
                      $seq_name);
                            
                      $id  = @mysql_query($q$this->Link_ID);
                            
                      $res = @mysql_fetch_array($id);      
                            
                      /* No current value, make one */
                            
                      if (!is_array($res)) {
                              
                      $currentid 0;
                              
                      $q sprintf("insert into %s values('%s', %s)",
                                       
                      $this->Seq_Table,
                                       
                      $seq_name,
                                       
                      $currentid);
                              
                      $id = @mysql_query($q$this->Link_ID);
                            } else {
                              
                      $currentid $res["nextid"];
                            }
                            
                      $nextid $currentid 1;
                            
                      $q sprintf("update %s set nextid = '%s' where seq_name = '%s'",
                                     
                      $this->Seq_Table,
                                     
                      $nextid,
                                     
                      $seq_name);
                            
                      $id = @mysql_query($q$this->Link_ID);
                            
                      $this->unlock();
                          } else {
                            
                      $this->halt("cannot lock ".$this->Seq_Table." - has it been created?");
                            return 
                      0;
                          }
                          return 
                      $nextid;
                        }
                        
                      /* public: return table metadata */

                      Kommentar


                      • #41
                        2te Teil :

                        PHP-Code:
                          function metadata($table='',$full=false) {
                            
                        $count 0;
                            
                        $id    0;
                            
                        $res   = array();
                            
                        /*
                             * Due to compatibility problems with Table we changed the behavior
                             * of metadata();
                             * depending on $full, metadata returns the following values:
                             *
                             * - full is false (default):
                             * $result[]:
                             *   [0]["table"]  table name
                             *   [0]["name"]   field name
                             *   [0]["type"]   field type
                             *   [0]["len"]    field length
                             *   [0]["flags"]  field flags
                             *
                             * - full is true
                             * $result[]:
                             *   ["num_fields"] number of metadata records
                             *   [0]["table"]  table name
                             *   [0]["name"]   field name
                             *   [0]["type"]   field type
                             *   [0]["len"]    field length
                             *   [0]["flags"]  field flags
                             *   ["meta"][field name]  index of field named "field name"
                             *   The last one is used, if you have a field name, but no index.
                             *   Test:  if (isset($result['meta']['myfield'])) { ...
                             */

                            // if no $table specified, assume that we are working with a query
                            // result
                            
                        if ($table) {
                              
                        $this->connect();
                              
                        $id = @mysql_list_fields($this->Database$table);
                              if (!
                        $id)
                                
                        $this->halt("Metadata query failed.");
                            } else {
                              
                        $id $this->Query_ID
                              if (!
                        $id)
                                
                        $this->halt("No query specified.");
                            } 
                            
                        $count = @mysql_num_fields($id);
                            
                        // made this IF due to performance (one if is faster than $count if's)
                            
                        if (!$full) {
                              for (
                        $i=0$i<$count$i++) {
                                
                        $res[$i]["table"] = @mysql_field_table ($id$i);
                                
                        $res[$i]["name"]  = @mysql_field_name  ($id$i);
                                
                        $res[$i]["type"]  = @mysql_field_type  ($id$i);
                                
                        $res[$i]["len"]   = @mysql_field_len   ($id$i);
                                
                        $res[$i]["flags"] = @mysql_field_flags ($id$i);
                              }
                            } else { 
                        // full
                              
                        $res["num_fields"]= $count;   
                              for (
                        $i=0$i<$count$i++) {
                                
                        $res[$i]["table"] = @mysql_field_table ($id$i);
                                
                        $res[$i]["name"]  = @mysql_field_name  ($id$i);
                                
                        $res[$i]["type"]  = @mysql_field_type  ($id$i);
                                
                        $res[$i]["len"]   = @mysql_field_len   ($id$i);
                                
                        $res[$i]["flags"] = @mysql_field_flags ($id$i);
                                
                        $res["meta"][$res[$i]["name"]] = $i;
                              }
                            }    
                            
                        // free the result only if we were called on a table
                            
                        if ($table) @mysql_free_result($id);
                            return 
                        $res;
                          }
                          
                        /* private: error handling */
                          
                        function halt($msg) {
                            
                        $this->Error = @mysql_error($this->Link_ID);
                            
                        $this->Errno = @mysql_errno($this->Link_ID);
                            if (
                        $this->Halt_On_Error == "no")
                              return;
                            
                        $this->haltmsg($msg);
                            if (
                        $this->Halt_On_Error != "report")
                              die(
                        "Session halted.");
                          }
                          function 
                        haltmsg($msg) {
                            
                        printf("</td></tr></table><b>Database error:</b> %s<br>\n"$msg);
                            
                        printf("<b>MySQL Error</b>: %s (%s)<br>\n",
                              
                        $this->Errno,
                              
                        $this->Error);
                          }
                          function 
                        table_names() {
                            
                        $this->query("SHOW TABLES");
                            
                        $i=0;
                            while (
                        $info=mysql_fetch_row($this->Query_ID))
                             {
                              
                        $return[$i]["table_name"]= $info[0];
                              
                        $return[$i]["tablespace_name"]=$this->Database;
                              
                        $return[$i]["database"]=$this->Database;
                              
                        $i++;
                             }
                           return 
                        $return;
                          }
                        }
                        ?> 

                        Kommentar


                        • #42
                          hab's kurz überflogen - speichert $db->Record also das array mit den ergebnissen?

                          dann reicht eine überprüfung auf die art:
                          PHP-Code:
                          if ( count$db->Record ) > )
                          {
                           
                          // <tr> ausgeben
                          }
                          else
                          {
                           
                          // "nichts gefunden"

                          Kommentar


                          • #43
                            vielen dank für dein antwort, leider klappt es immer noch nicht.
                            Ich hab folgendes eingereit:

                            PHP-Code:
                            <?php if ( count$db->Record ) > ) { echo $db->f("id"); ?>

                            <?php
                            }
                            else
                            {
                             echo 
                            "nichts gefunden";
                            }
                            ?>

                            Kommentar


                            • #44
                              du hast immer noch nicht verstanden, dass man mit solchen postings nichts anfangen kann. stimmt's?

                              Kommentar


                              • #45
                                Ich seh da eine Methode

                                function num_rows

                                Vielleicht sollte man die benutzen!
                                mein Sport: mein Frühstück: meine Arbeit:

                                Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                                Kommentar

                                Lädt...
                                X