Unable to save...

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

  • Unable to save...

    Salü...

    Ich habe ein Script geschrieben das Datensätze aus einer DB in einer Tabelle darstellt. Jede Zeile Kann gelöscht oder geändert werden. Geht man das erste Mal auf diese Seite, wird diese Tabelle angezeigt, will man nun eine Zeile löschen. Erscheint folgende Fehlermeldungen:

    Warning: MySQL: Unable to save result set in c:\phpdev5\www\inventar\delete_entry.php on line 43

    Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in c:\phpdev5\www\inventar\delete_entry.php on line 45

    In Zeile 43 steht die SQL-Abfrage und in Zeile 45 dass hier:

    PHP-Code:
    while ($ligne mysql_fetch_object ($res))
    {
        
    SystemOutput($ligne);

    Die Funktion
    PHP-Code:
    SystemOutput() 
    gibt die Daten aus.

    Nach dieser Fehlermeldung startete ich den Service PhpMyAdmin um zu schauen welche Fehlermeldung dort erscheint. Wie bei PhpMyAdmin als auch in der Dos-Konsole stand das hier:

    Got error 127 from table handler

    Was bedeutet das??...Danke

  • #2
    Anstatt mysql_fetch_object() solltest du etwas anderes nehmen, z.B. mysql_fetch_row() oder mysql_fetch_array().

    Wie sieht die SQL-Abfrage denn aus?
    it's not a bug,
    it's a feature!

    Kommentar


    • #3
      Die SQL-Abfrage sieht so aus:

      PHP-Code:
      $res mysql_query("SELECT inventar_id, person_idfs, filiale_idfs, hersteller_idfs, os_idfs, typ_idfs FROM inventar");

      while (
      $ligne mysql_fetch_object ($res))
      {
          
      SystemOutput($ligne);

      Die Funktion SystemOutput() enthält das hier (gekürzt):

      PHP-Code:

      print "<td><font size='3' face=arial >$ligne->inventar_id</font></td>";

      $result mysql_query("SELECT typ.bezeichnung FROM typ where typ.typ_id = $ligne->typ_idfs");
      $res mysql_fetch_object ($result);
            
      if (
      $res->bezeichnung){
            print 
      "<td><font size='3' face=arial >$res->bezeichnung</font></td>";
      }
      else{
            print 
      "<td>&nbsp</td>";

      Kommentar


      • #4
        Original geschrieben von XGremliN
        Anstatt mysql_fetch_object() solltest du etwas anderes nehmen, z.B. mysql_fetch_row() oder mysql_fetch_array().
        Wie schonmal gesagt.
        Die SQL-Abfrage sieht eigentlich richtig aus. Er kann allerdings die zurückgegebenen Ergebnisse nicht mit mysql_fetch_object abfangen, also nimm was anderes.
        it's not a bug,
        it's a feature!

        Kommentar


        • #5
          das liegt nicht an mysql_fetch_object

          das select is ok, wie löschst du denn?

          error 127 heißt, dass dein record file geringfügig im eimer is (nachzulesen hier)

          eventuelle hilfe: http://www.mysql.com/doc/de/Disaster_Prevention.html

          lass einfach mal
          Code:
          CHECK TABLE inventar EXTENDED
          laufen
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • #6
            Dieser Link befindet sich unmittelbar neben jeder Zeile:

            PHP-Code:
            echo "<a href='delSysVerify.php?inventar_id=$ligne->inventar_id'><font color=blue size=2>delete</font></a>"
            die inventar_id wird dabei der Datei delSysVerify.php übergeben, dort wird dann nochmals gefragt, ob der Eintrag wirklich gelöscht werden soll. Danach wird die Zeile in der Tabelle Inventar, WHERE inventar_id='$inventar_id' gelöscht.

            Aber eben, ich probiere mal deine Tips aus....

            Kommentar


            • #7
              Ich habe nun mal deine vorgeschlagene Zeile in die Konsole eingegeben:

              CHECK TABLE inventar EXTENDED

              ...erschienen lauter errors, habe darum mit der Zeile:

              REPAIR TABLE inventar

              die Tabelle repariert. Jetzt funktionierts auch wieder, d.h man kann den Datensatz wieder löschen. Mal ne Frage... Woran könnte es liegen, wenn ein Datensatz in der Datenbank vorhanden ist, aber in PhpMyAdmin und auf meiner Seite nicht mehr angezeigt wird?

              Kommentar


              • #8
                freut mich
                Original geschrieben von PaTrIcE
                Woran könnte es liegen, wenn ein Datensatz in der Datenbank vorhanden ist, aber in PhpMyAdmin und auf meiner Seite nicht mehr angezeigt wird?
                und woher weißt du, dass er da is?
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  1.) Habe Script geschrieben, das die Einträge aus der Datenbank herausliest und in einer Auswahlieste einfügt -> gelöschter Eintrag ist dort noch vorhanden.

                  2) SELECT * FROM ....; in der DOS-Konsole eingegeben -> gelöschter Eintrag ist dort noch vorhanden

                  Könnte es vielleicht sein, dass ich den Eintrag nur aus der Tabelle lösche? Aber das kann ja nicht sein, da er in PhpMyAdmin nicht mehr angezeigt wird.

                  Ich hasse solche unerklärbaren Probleme!!!

                  Aber da finde ich schon noch was dagegen...Wegen vorhin, als ich die Tabelle reparieren musste, damit es wieder funktionierte... muss ich jetzt ein REPAIR TABLE inventar in die PHP-Datei einbauen, damit dies nie mehr passiert?
                  Zuletzt geändert von PaTrIcE; 30.10.2003, 09:47.

                  Kommentar


                  • #10
                    Original geschrieben von PaTrIcE
                    Wegen vorhin, als ich die Tabelle reparieren musste, damit es wieder funktionierte... muss ich jetzt ein REPAIR TABLE inventar in die PHP-Datei einbauen, damit dies nie mehr passiert?
                    bringst du dein auto vor jeder fahrt in die werkstatt, selbst wenn es nur kurz zum einkaufen geht ...?

                    natürlich baust du REPAIR TABLE nicht standardmässig überall ein.
                    versuche herauszufinden, wer oder was dir die tabelle(n) zerschossen hat, und beseitige die ursache.
                    wenn du die ursache nicht findest, dann warte erst einmal ab, ob das problem noch öfters auftritt (regelmässig die tabellendaten sichern wäre ratsam).
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar

                    Lädt...
                    X