Ankündigung

Einklappen
Keine Ankündigung bisher.

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource

Einklappen

Neue Werbung 2019

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

  • Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource

    hi

    folgendes Problem

    ich schreibe im moment einen Code, der einen Text zusammenfügt und die einzelnen Kapitel aus einer Datenbank ausließt.
    Hierzu habe ich jetzt auch ein Glosar erstellt, in dem die wichtigsten Begriff beschrieben werden.
    Wiederum möchte ich gerne die Beschreibung der Wörter durch einen Adminbereich verändern können und hab dazu folgenden Code geschrieben

    PHP-Code:
    <?php
      
      $GlossaryIndex 
    = new GlossaryIndex();
      
    $glossaries $GlossaryIndex->GetGlossaries();
      
      foreach(
    $glossaries as $glossary)
      {
        echo 
    '<li><a href="index.php?glossar_admin=1&id=' $glossary->GetID() . '">' $glossary->GetTitle() . '</a>';
        echo 
    '</li>';
        
        if(isset(
    $_GET['id']))
        {
          if (
    $_GET['id'] == $glossary->GetID())
          {
            echo 
    '<form>';
              echo 
    '<input type="text" name="title" value="' $glossary->GetTitle() . '"/><br>';
              echo 
    '<textarea name="description" cols="80" rows="5">' $glossary->GetText() . '"</textarea>';
              echo 
    '<input type="hidden" value="' $_GET['editglossary'] . '" name="glossaryid hidden">  
                    <input type="submit" value="ändern" name="glossarydo"></form>'
    ;
              
              if (isset(
    $_POST['glossarydo']))
              { 
              
    $editglossary = new Glossary($_POST['id']);
              
    $editglossary->SetTitle($_POST['title']);
              
    $editglossary->SetText($_POST['description']);
              
              echo 
    'Das Glosar (' $editglossary->GetDescription() . ') wurde erfolgreich geändert! <br><a href="index.php?ilib_admin=1">Zurück zur iLibrary-Überischt</a>';
              }
              else
              {         
              
    $this->page "error04.php";
              
              }
            echo 
    '</form>';
          }
        }
      }
    ?>

    hierzu die notwendigen Funktionen:
    PHP-Code:
    public function GetID()
      {  
          
    $qry mysql_query('SELECT ID FROM glossary');    
          
    $res mysql_fetch_assoc($qry);
          
    $this->SetTitle($res['ID']);    
        return 
    $this->id;
      } 
    -------------------------------------------------------------------------
    PHP-Code:
    public function GetTitle() 
      {
          
    $qry mysql_query('SELECT Name FROM glossary WHERE ID = '$this->id);    
          
    $res mysql_fetch_assoc($qry); :mad:
          
    $this->SetTitle($res['Name']);   
        return 
    $this->title;
      } 
    -------------------------------------------------------------------------
    PHP-Code:
    public function GetText() 
      {
        if(
    $this->text == NULL)
        {
          
    $qry mysql_query('SELECT Description FROM glossary WHERE ID =' $this->id);    
          
    $res mysql_fetch_assoc($qry); :mad:
          
    $this->text $res['Description'];
        }
        return 
    $this->text;
      } 
    -------------------------------------------------------------------------
    PHP-Code:
    function SetTitle($title
      {
        
    $this->title $title;
      } 
    -------------------------------------------------------------------------
    PHP-Code:
     public function SetText($text
      {
          
    $qry mysql_query("UPDATE glossary SET Name = '" $this->GetTitle() . "',  Description = '" $this->GetText() . "' WHERE ID = '" $this->id "'");
          
    $res mysql_fetch_assoc($qry); :mad:
          
    $this->text $res['Description'];
        return 
    $this->text;
      } 

    Fehler schmeißt es mir in den Zeilen die mit einem markiert sind

    weiß einer von euch was dieses ' Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource ' bedeutet und was ich umändern muss?

  • #2
    Hi,

    benutze bitte die php-Tags für deinen Code.

    Diese Fehlermeldung bekommst du weil ein SQL String nicht korrekt war und mysql_query dann in dein $qry keine "MySQL result resource" schreibt sondern einfach false.

    Du solltest dir angewöhnen mysql_query(...) or die(mysql_error()); zu benutzen, dann schreibt er dir ggf. auch hin warum dein SQL-Statement nicht ausgeführt werden konnte.

    Gruß
    Cy

    [edit]
    Da ich so keinen Fehler in deinen SQL-Statements sehe, wird es wohl daran liegen das $this->id zum Abfragezeitpunkt einfach leer ist, denn diese Variable kommt in allen SQL-Statements vor die nicht funktionieren. Und wenn du an den SQL-Server eine Abfrage "SELECT blub FROM tab WHERE id = " schickst, dann bekommtst du logischerweise einen Syntax-Error vom Server zurück

    Kommentar


    • #3
      thx werd ich gleich mal ausprobieren

      Kommentar


      • #4
        also ich habe meine SQL Befehle mal manuel im Query Browser eingegeben, diese werfen aber wiederum das passende ergebnis

        könnte es sein dass durch $this->GetTitle() & $this->GetText() falsche werte übergeben werden? wenn ja woran könnte das lieben?
        PHP-Code:
        $qry mysql_query("UPDATE glossary SET Name = '" $this->GetTitle() . "', Description = '" $this->GetText() . "' WHERE ID = '" $this->id "'"

        Kommentar


        • #5
          Lies mal was ich dir oben geschrieben habe, im [edit] Bereich

          Kommentar


          • #6
            ich hab ihn $this->id ausgeben lassen und er schreibt sie mir auch hin

            also daran wirds nicht liegen .....

            Kommentar


            • #7
              wie wärs wenn du einfach deinen sql-string vorher in eine variable schreibst und die vorm query ausgeben lässt?

              ausserdem kann $this->GetTitle() dir gar nicht das richtige zurück geben wenn du da schon ne Fehlermeldung bekommst (laut deinem ersten Posting)

              Kommentar


              • #8
                danke, hat sicher erledigt

                gab ein problem, weil ich $this->text nicht zurückgegeben hatte

                habs dann so umgeschrieben und die funktion Save hinzugefügt:
                PHP-Code:
                  public function SetText($text
                  {
                      
                $this->text $text;
                  }  


                public function 
                Save()
                  { 
                    
                $qry mysql_query("UPDATE glossary SET Name = '" $this->GetTitle() . "',  Description = '" $this->GetText() . "' WHERE ID = '" $this->GetID() . "'"); 
                  } 
                jetzt gehts

                vielen dank auf jeden fall

                Kommentar

                Lädt...
                X