Nick: es werden nicht alle Datensätze gelesen...

Hallo,
ich habe da mal ein Problem - und hoffe ihr könnt mir helfen.
Als Datenbank habe ich MySql 5.0
Ich habe 3 Tabellen (die hier relevant sind)
einmal Tabelle video
id
dateiname
info

tabelle video_person
id
video_id
person_id

tabelle video_produkt
id
video_id
produkt_id

also ganz banal aufgebaut...
jetzt ist mir aufgefallen, dass seid neuestem nicht mehr alle videos richtig ausgelesen werden. Zum Testen habe ich eine einfache Abfrage ala "select id from video" gemacht. Wenn ich die via PHP echo ausgebe werden nicht alle ids ausgegeben
das gleiche wenn ich die anderen beiden tabellen abfrage (es werden immer bis zur gleichen Video ID die Datensätze ausgegeben)
allerdings wenn ich sage zeige mir Video von Person/produkt x an wird der Datensatz angezeigt (auch höhere Datensätze) allerdings nur wenn max. 1 Datensatz zu einer Person/Produkt zugeordnet sind, sind es 2 oder mehr videos kommen wieder nur die Datensätze die unter der ominösen "abbruch" id liegen.
Das ganze ist mir ein absolutes Rätsel. Die IDs werden via auto-increment beim Eintragen vergeben. Zwischen der "abbruch ID" und der nächsten ID ist eine größere Lücke (da hat anscheinend jemand mehrfach versucht Datensätze einzugeben und diese wieder gelöscht - aber die Zuordnungen in die anderen beiden Tabellen sind auch entsprechend gelöscht also liegt es nicht daran, dass da noch irgendwo ein Datensatz rumschwirrt der nicht zugeordnet werden kann)

Falls eine eurer Glaskugeln ausspuckt woran sowas liegen kann, wäre ich über eine kurze Info dankbar - weiß nicht mehr weiter

Grüße,
Nick

  1. Hello,

    Als Datenbank habe ich MySql 5.0

    einmal Tabelle video
    id
    dateiname
    info

    jetzt ist mir aufgefallen, dass seid neuestem nicht mehr alle videos richtig ausgelesen werden. Zum Testen habe ich eine einfache Abfrage ala "select id from video" gemacht. Wenn ich die via PHP echo ausgebe werden nicht alle ids ausgegeben

    Zwei Fragen dazu:

    • Woher weißt Du, dass es nicht die IDs aller vorhandenen Datensätze sind?
    • Wie sieht der Code für die Ausgabe des Resultsets aus?

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Zwei Fragen dazu:

      • Woher weißt Du, dass es nicht die IDs aller vorhandenen Datensätze sind?
      • Wie sieht der Code für die Ausgabe des Resultsets aus?

      ich schreibe:
      while ABFRAGE
      {
      echo ID
      }

      Die Ausgabe vergleiche ich mit phpMyadmin und bekomme unterschiedliche Resultate.

      Grüße

      1. Hello,

        Zwei Fragen dazu:

        • Woher weißt Du, dass es nicht die IDs aller vorhandenen Datensätze sind?
        • Wie sieht der Code für die Ausgabe des Resultsets aus?

        ich schreibe:

        while ABFRAGE
        {
            echo ID
        }

        Echt merkwürdiges Konstrukt. Wieso nimmst Du eine Konstante für die Bedinungung der While-Schleife? Außerdem fehlen da doch auch die Klammern um die Bedingung. Und dann ergibt das entweder keine Ausgabe, oder eine Endlosschleife, die immer dieselbe Konstante ID ausgibt, falls vorhanden.

        Die Ausgabe vergleiche ich mit phpMyadmin und bekomme unterschiedliche Resultate.

        Das ist kein Wunder!

        Liebe Grüße aus dem schönen Oberharz

        Tom vom Berg

        --
         ☻_
        /▌
        / \ Nur wer sich doof genug stellen kann, bekommt viele Erklärungen
        http://bergpost.annerschbarrich.de
        1. Hallo Vinzenz, hallo Tom,
          nein daran sollte es eigentlich nicht liegen. Wollte das ganze nur verkürzt darstellen. Tatsächlicher Code bei der Test-Abfrage ist

          $select_video = "select vid_id from t_video";

          $result = mysql_query($select_video);

          while($row = mysql_fetch_array($result)) {
           echo $row["vid_id"] ."<br>";
          }

          In der eigentlichen Anwendung ist der ganze Code natürlich deutlich umfangreicher und da kann durchaus auch ein PHP Fehler oder nicht beachteter Kontextwechsel etc. etc. vorliegen, daher habe ich auch diesen ganz einfachen Code gewählt um zu testen ob es daran liegt.

          Grüße,
          Nick

          1. Hi,

            $select_video = "select vid_id from t_video";

            Das statement paßt nicht zu den im Anfangsposting vorgestellten Tabellen (weder Tabellen- noch Spaltenname ...).

            Darf man aus Deinen ständigen Falsch-Angaben (siehe auch den angebl. Code für die Ausgabe) und daraus, daß auch wichtige Informationen (z.B. Spaltentypen) komplett fehlen, schließen, daß Du nicht wirklich an einer Problemlösung interessiert bist?

            cu,
            Andreas

            --
            Warum nennt sich Andreas hier MudGuard?
            O o ostern ...
            Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
          2. Hallo,

            $select_video = "select vid_id from t_video";

            $result = mysql_query($select_video);

            while($row = mysql_fetch_array($result)) {
            echo $row["vid_id"] ."<br>";
            }

            und die exakt gleiche Abfrage in phpMyAdmin liefert mehr Datensätze?
            Ich bin erstaunt.

            Was sagt die MySQL-Workbench oder die Kommandozeile?

            Freundliche Grüße

            Vinzenz

            1. Was sagt die MySQL-Workbench oder die Kommandozeile?

              Nur kurz, damit nicht der Eindruck entsteht ich interessiere mich nicht mehr für das Thema oder bin für die Hinweise und Hilfestellungen nicht dankbar. Kann erst morgen wieder an dem Problem arbeiten und melde mich dann noch mal.

              Grüße,
              Nick

            2. und die exakt gleiche Abfrage in phpMyAdmin liefert mehr Datensätze?
              Ich bin erstaunt.

              Habe das ganze nochmals überprüft: die exakt gleiche Abfrage in phpMyAdmin liefert ein anderes Ergebnis (mehr Datensätze). Es gibt keinerlei Fehler- oder sonstige meldungen. Habe die Tabellen neu aufgesetzt und die Daten neu eingespielt und alles läuft wieder so wie es soll, wie es vorher war.
              Woran das liegen kann ist mir ein absolutes Rätsel und wirklich nicht nachvollziehbar....

              Grüße,
              Nick

      2. Hallo,

        Die Ausgabe vergleiche ich mit phpMyadmin und bekomme unterschiedliche Resultate.

        dann hast Du vermutlich ein PHP-Problem und kein Datenbankproblem. Es könnte aber auch sein, dass Du den Kontextwechsel nicht richtig beachtest.

        Freundliche Grüße

        Vinzenz

        1. Hello,

          Die Ausgabe vergleiche ich mit phpMyadmin und bekomme unterschiedliche Resultate.

          dann hast Du vermutlich ein PHP-Problem und kein Datenbankproblem. Es könnte aber auch sein, dass Du den Kontextwechsel nicht richtig beachtest.

          Es könnte aber auch sein, dass er seinen Index zerstört hat. Bei MySQL 5.0 ist mir das auch ein paarmal passiert, wenn ich unerlaubte/unsinnige Statements abgesetzt habe.

          Aber besonders kooperativ ist "Nick" ja sowieso nicht bei der Lösung seines Problems.

          Liebe Grüße aus dem schönen Oberharz

          Tom vom Berg

          --
           ☻_
          /▌
          / \ Nur selber lernen macht schlau
          http://bergpost.annerschbarrich.de
          1. Es könnte aber auch sein, dass er seinen Index zerstört hat. Bei MySQL 5.0 ist mir das auch ein paarmal passiert, wenn ich unerlaubte/unsinnige Statements abgesetzt habe.

            Index zerstört?! Wie kann man so was schaffen? Wenn ich neue Datensätze eingebe, werden die IDs normal weiter hochgezählt - kann das trotzdem daran liegen? Können gleichzeitig 3 Tabellen davon betroffen sein? Hätte das Auswirkungen auf die restliche Datenbank (die nicht direkt auf diese Tabellen zugreift / mit diesen Tabellen verknüpft ist)?
            Meinst Du ich sollte diese drei Tabellen löschen und neu aufsetzen? (Es sind erst um die 30 Datensätze plus eben die Verknüpfungen eingegeben wäre also nicht ganz so dramatisch.

            Grüße,
            Nick

            1. Hello,

              Index zerstört?! Wie kann man so was schaffen?

              Das weiß ich auch nicht. Ich habe es nur schon geschafft.
              Das eine Mal hatte ich auch solche Hänger, wie Du sie beschreibst, das andere Mal hatte ich einen zirkulrären Verlauf, der dann zur Endlosausgabe führte...

              Es helfen dann meistens die Maintenance Statements
              http://dev.mysql.com/doc/refman/5.0/en/table-maintenance-sql.html

              Ich würde die vermeintlich kaputten Tabellen jetzt keinesfalls löschen, sondern die Chance nutzen, um für daran für den Ernstfall zu üben.

              Dass der phpMyAdmin trotzdem eine andere Ausgabe macht, kann an einem geringfügig anders aufgebauten Statement liegen. Welches benutzt Du denn im phpMyAdmin?

              Liebe Grüße aus dem schönen Oberharz

              Tom vom Berg

              --
               ☻_
              /▌
              / \ Nur selber lernen macht schlau
              http://bergpost.annerschbarrich.de