Matthias: Verstehe das Problem nicht.

Hallo,

ich habe mal eine allgemeine Frage zu PHP und MySQL:

ich habe in meiner File folgende Ausdrücke auf eine Datenbank:

"Select * From tabelle1 Where nummer='$nummer'"

sowie

"Select * From tabelle2 Where zahl='$zahl'"

Jetzt zu meinem Problem:

Von vorneweg will ich klarstellen, ja die Typen passen zu einander, es sind beides int's, es kann also nicht daran liegen. Jedenfalls bekomme ich bei der ersten Abfrage genau das was ich haben will, nämlich alle Einträge mit der gewählten Nummer. Bei der zweiten Abfrage bekomme ich aber nicht die Einträge mit der gewählten Zahl sondern einfach alle. Ich versteh das nicht, dabei sind doch beide Ausdrücke syntaktisch identisch. Beides bezieht sich rein auf Zahlen, beide Felder und Variablen sind vorhanden und korrekt belegt.

Wieso bekomme ich da unterschiedliche Ergebnisse raus ?

Stimmt die Syntax der Abfrage nicht ?

Grüße und Danke, Matthias

  1. Halihallo Matthias

    ich habe mal eine allgemeine Frage zu PHP und MySQL:

    Allgemein? - Die scheint mir doch sehr konkret zu sein ;-)

    Von vorneweg will ich klarstellen, ja die Typen passen zu einander, es sind beides int's, es kann also nicht daran liegen. Jedenfalls bekomme ich bei der ersten Abfrage genau das was ich haben will, nämlich alle Einträge mit der gewählten Nummer. Bei der zweiten Abfrage bekomme ich aber nicht die Einträge mit der gewählten Zahl sondern einfach alle. Ich versteh das nicht, dabei sind doch beide Ausdrücke syntaktisch identisch. Beides bezieht sich rein auf Zahlen, beide Felder und Variablen sind vorhanden und korrekt belegt.

    Mindestens eine Aussage glaube ich dir nicht oder du hast uns einen Aspekt verschiegen:
    Sind in der Datenbank auch wirklich "richtige" Daten?

    Wieso bekomme ich da unterschiedliche Ergebnisse raus ?

    Das kann verschiedene Gründe haben, aber ich vermute allesamt nicht bei der Datenbank:
     - Tabelleninhalt unterscheidet sich nicht
     - Deine Variablen enthalten eben _nicht_ das was du erwartest
     - Du befrägst die falsche Tabelle und somit die falschen Daten

    Gibt uns Quelltext oder sieh selbst nach und finde _deinen_ Fehler.

    Stimmt die Syntax der Abfrage nicht ?

    Doch.

    Viele Grüsse

    Philipp

    --
    RTFM! - Foren steigern das Aufkommen von Redundanz im Internet, danke für das lesen der Manuals.
    Selbstbedienung! - Das SelfForum ist ein Gratis-Restaurant mit Selbstbedienung, Menüangebot steht in den </faq/> und dem </archiv/>.
  2. hi,

    "Select * From tabelle1 Where nummer='$nummer'"
    "Select * From tabelle2 Where zahl='$zahl'"
    Von vorneweg will ich klarstellen, ja die Typen passen zu einander, es sind beides int's, es kann also nicht daran liegen.

    warum setzt du dann die werte in anführungszeichen, als ob es strings wären?

    gruss,
    wahsaga

  3. Selber Hallo,

    sind die Felder in der Datenbank indiziert?

    In diesem Fall lohnt es sich ggf. mal den Index neu aufbauen zu lassen. Ist ein typischer Fehler von vielen Datenbanken, wenn der Index nicht mehr zur Tabelle passt, also geschreddert ist.

    prompt

    root# myisamchk --recover --quick --set-character-set=german1 --character-sets-dir=<chrsetpath> <databasepath/*.MYI>

    die beiden Pfade musst Du natürlich selbst ermitteln.

    Oder du machst es über ein SQL-Statement. Drop den Index und leg ihn neu an.

    Oder dritte Methode:
      Create table neu select * from table alt;
      drop table alt;
      rename table neu to alt;

    Danach gehts wieder, wette ich... *gg*

    Gruß

    Chris (C)