Matthias: Einträge in DB gleichen Inhalt in einem Feld haben

Hi ich habe ein Problem. Es ist auch schwierig die's zu verstehen. Ich hoffe ihr werdet es halbwegs verstehen.
So, ich habe 2 Einträge in einer Tabelle (Datenbank MySQL). Jetzt kommt es vor bzw. ist so das 2 Einträge mit einer ID = 2 versehen sind. Nun will ich ein Script haben das bei der Abfrage prüft ob mehrere Einträge mit dem Inhalt 2 in dem Feld 'id' vorhanden sind. Wenn ja dann soll er mir das anzeigen, wenn nein halt nur das eine ausgeben. Wie kann ich dieses Script verwirklichen? Möchte einfach nur gerne das Script für den Check, wenn mehrere Einträge mit Inhalt 2 im Feld (Spalte) 'id' vorhanden sind, mehrere Ausgeben, wenn nicht halt nur eins...

Danke im Voraus!

  1. So, ich habe 2 Einträge in einer Tabelle (Datenbank MySQL).

    Was ist ein Eintrag? Ein Tupel?

    Jetzt kommt es vor bzw. ist so das 2 Einträge mit einer ID = 2 versehen sind. Nun will ich ein Script haben das bei der Abfrage prüft ob mehrere Einträge mit dem Inhalt 2 in dem Feld 'id' vorhanden sind.

    Solltest Du das nicht an der Größe eines ResultSets sehen können?

  2. Hallo

    Deine Variable: $id = 2;

    Dein Query: "SELECT * FROM Tabelle WHERE Spalte = '$id'"

    So hast du erstmal alle Datensätze mit id = 2

    Dann machste dir eine Schleife, die mit der Bedingung deiner erhaltenen Zeilen (mysql_num_rows()) ausgeführt wird und in jedem Durchlauf deine Einträge ausgibt.

    Gruß Frank

    1. Hallo

      Deine Variable: $id = 2;

      Dein Query: "SELECT * FROM Tabelle WHERE Spalte = '$id'"

      So hast du erstmal alle Datensätze mit id = 2

      Dann machste dir eine Schleife, die mit der Bedingung deiner erhaltenen Zeilen (mysql_num_rows()) ausgeführt wird und in jedem Durchlauf deine Einträge ausgibt.

      Gruß Frank

      ja das mit dem id = 2 etc weiß ich ja alles. Das ist auch schön und gut.
      Aber mir gehts da eher um das Script mit der Schleife und den Zeilen aus num_rows. Wenn du mir da helfen könntest... ^^

      1. Dann schreib doch mal eben, was du bisher hast. Also die Abfrage deiner DB ohne connect :)

  3. Servus

    Abfrage geht so:

    $sql = "SELECT * FROM tabellenname WHERE id = '2'";
    $result = mysql_query($sql) or die ('Unable to execute query');
    $num_r = mysql_num_rows($result);
    $num_c = mysql_num_fields($result);

    $output = mysql_fetch_array($result);

    // Ausgabe
    ?>
    <table>
    <?
    for ($i=0;$i<$num_r;$i++){
      print "<tr>\n";
      for ($j=0;$j<$num_c;$j++){
        print "<td>$ouput[$j]</td>\n";
      }
      print "</tr>\n";
    }
    ?>
    </table>

    So müsste das funzen

    1. Servus

      Abfrage geht so:

      $sql = "SELECT * FROM tabellenname WHERE id = '2'";
      $result = mysql_query($sql) or die ('Unable to execute query');
      $num_r = mysql_num_rows($result);
      $num_c = mysql_num_fields($result);

      $output = mysql_fetch_array($result);

      // Ausgabe
      ?>
      <table>
      <?
      for ($i=0;$i<$num_r;$i++){
        print "<tr>\n";
        for ($j=0;$j<$num_c;$j++){
          print "<td>$ouput[$j]</td>\n";
        }
        print "</tr>\n";
      }
      ?>
      </table>

      So müsste das funzen

      klappt nicht... da ist nur ne leere weiße Seite *g*

  4. yo,

    Hi ich habe ein Problem. Es ist auch schwierig die's zu verstehen. Ich hoffe ihr werdet es halbwegs verstehen.

    viele verfügen hier über aussergewöhnliche fähigkeiten. manche können sogar anhand ihrer glaskugel die vergangenheit, die gegenwart und die zukunft sehen. allerdings geht das nur bedinkt mit lottozahlen, wie ich mir habe sagen lassen.

    So, ich habe 2 Einträge in einer Tabelle (Datenbank MySQL). Jetzt kommt es vor bzw. ist so das 2 Einträge mit einer ID = 2 versehen sind.

    hmm, ob das so sinnvoll ist, die id sollte eigentlich dazu dienen, jeden datensatz eindeutig zu identifizieren.....

    Nun will ich ein Script haben das bei der Abfrage prüft ob mehrere Einträge mit dem Inhalt 2 in dem Feld 'id' vorhanden sind.

    der sql befel lautet:

    SELECT COUNT(*) from tabelle WHERE id=2;

    mit php kann man dann die anzahl der datensätze der ergebnisliste abfragen.

    if(mysql_num_rows($ergebnis_zeiger) > 1)
       {
       hier das machen was er soll bei mehr als einem datensatz
       }
    else
       {
       hier das machen was er soll bei weniger als 2 datensätze, wobei auch 0 datensätze rauskommen können.
       }

    Ilja

    1. SELECT COUNT(*) from tabelle WHERE id=2;

      rofl, uhmm selber ausgetrickts, einfach vergessen den befehl oder aber du benutzt nicht mysql_num_rows (), sondern fragst den wert dieser abfrage ab ;-)

      Ilja

      1. SELECT COUNT(*) from tabelle WHERE id=2;

        rofl, uhmm selber ausgetrickts, einfach vergessen den befehl oder aber du benutzt nicht mysql_num_rows (), sondern fragst den wert dieser abfrage ab ;-)

        Ilja

        ich werde es mal ausprobieren, also mit mysql_num_rows()
        mal sehen obs klappt

        thx