SQL-id's, hmm... wenn Datensatz mit entsprechender ID nicht vorhanden ist...

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

  • SQL-id's, hmm... wenn Datensatz mit entsprechender ID nicht vorhanden ist...

    Also, ich habe folgendes Poblem.

    Ich habe eine Datenbank mit ca. 10000 Einträgen. Die Einträge sind leider alle schön mit der ID (erste Spalte) durchnummeriert. D.h. ich habe zwischen durch "Löcher". Z.B. von 0-200 hab ich Datensätze, dann von 400-1200 usw.

    Nun, möchte ich die Datensätze anzeigen. Das geht auch vorzüglich. Aber nur wenn ein Eintrag unter der entsprechenden ID vorhanden ist. Wenn nicht, da kommt einfach nichts. Nicht einmal eine Fehlermeldung...

    Und irgendwie kann ich auch nicht über

    if ($sql_result) {
    echo "ausgabe balbla";
    } else {
    echo "hier kein Eintrag";
    }

    ... hmm... wie kann ich per PHP oder SQL abfragen ob ein Eintrag unter der entsprechenden ID existiert?


    Und....
    Ich hab es dann so gemacht, dass ich die Einträge, wie in einer Art Kartei durchblättern kann. Also mit einem "vor" und "nach" Button. Die Datensätze lade ich wie sonst über die ID. Nun das geht alles schön und gut, wenn ich z.B. von 0-200 Blättere, aber ab 201, geht ja wieder nicht. hmm am liebsten wäre mir, wenn er dann automatisch bei der nächsten vorhandenen ID mit entsprechendem Datensatz weiterfahren würde.

    Hat jemand eine Idee.

    Gruss luc


    Zuletzt geändert von luc98; 28.01.2003, 13:51.
    --
    keep eating carrots!

  • #2
    ich verstehe nicht ganz dein problem irgend wie bekommst du nur die unter eine betimmten id aber anderer seits auch nicht oder wie

    vieleicht kannst du dich ja noch ein wenig genauer ausdrücken wie wäre es mit einem code? das ist oft einfacher
    Wusstet ihr schon?
    Wer später bremst ist länger schnell!

    Die wahrscheinlich beste Funktion in PHP ist mysql_error(), doch leider auch die unbekannteste!

    Kommentar


    • #3
      select * from tabelle where id=200

      und das mit der id würde ich so lösen, das du einfach alles neu durchnummerierst oder geht das nicht??

      ansonsten einfach abfragen mit

      select * from tabelle where id > 200 limit 1,0

      das heist das du nur den ersten datensatz haben willst, der größer als 200 ist. sprich das wäre bei dir der mit der 400
      Wusstet ihr schon?
      Wer später bremst ist länger schnell!

      Die wahrscheinlich beste Funktion in PHP ist mysql_error(), doch leider auch die unbekannteste!

      Kommentar


      • #4
        hmmm nochma

        eigentlich ganz einfach...

        ich will daten aus einer mysql db anzeigen. Die Datensätze werden über eine ID angesprochen.

        Wenn der Datensätz mit entsprechender ID vorhanden ist, werden die Daten ganz nett angezeigt.

        Aber z.b. bei ID 201 ist KEIN Datensatz gespeichert. D.h. wenn ich dann mit der ID 201 lade, zeigts mir gar nichts an. Das ist logisch, weil ja eben nichts vorhanden ist. Nun, ich möchte aber, dass es hier anzeigt.

        "Unter dieser ID ist kein Datensatz vorhanden!!"

        Mein Problem ist es nun, wie ich das ermitteln kann, dass kein Datensatz vorhanden ist. Und warum es eigentlich keine Fehlermeldung gibt, ... denn es ist ja kein Datensatz vorhanden.

        ... hmm...

        ??

        luc
        --
        keep eating carrots!

        Kommentar


        • #5
          Original geschrieben von shortie19
          und das mit der id würde ich so lösen, das du einfach alles neu durchnummerierst oder geht das nicht??
          Geht leider nicht, da die Datensätze mit anderen Tabellen verlinkt/verknüpft sind.

          luc
          --
          keep eating carrots!

          Kommentar


          • #6
            Also irgendwie scheint mir diese Frage vollkommen absurd ...
            Irgendwie mußt Du ja nun erstmal auf die Idee kommen Datensätze einer bestimmten ID aufzurufen ... wie bestimmst Du die ID ... normalerweise generiert man sich 'ne Liste mit vorhandenen Datensätzen ... und dann steht einem die entsprechende ID zur Verfügung ... oder man hat 'ne Eingabemaske in der man eine ID eingibt ... und dann muß man auf einen Fehlenden Datensatz natürlich mit 'ner entsprechenden Fehlerseit reagieren ...

            Ich glaube es wäre vernünftig mal zu analysieren woher bei Dir die ID's kommen ... ... wahrscheinlich 'ne FOR-Schleife ...
            carpe noctem

            [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
            [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

            Kommentar


            • #7
              gut dann gibt es meiner meinung nach noch zwei methoden

              du hast ja irgendwo stehen mysql_fetch_row($sql) oder eine vergleichbare
              funktion. Dann hast du irgendwo stehen, das du den datensatz ausgeben willst

              sprich

              echo $row[0]

              zb.

              hier kannst du einfach mit if vorher abfragen ob das array feld leer ist.
              PHP-Code:
              $sql=mysql_query("select id, * from table where id=id");
              $res=mysql_fetch_row($sql);

              if (
              $res[0] == "")
              {
                echo 
              "kein datensatz vorhanden";
              }
              else
              {
              echo 
              $res[0]
              }


              //andere möglichkeit die ich noch kennen würde

              $anz=mysql_num_rows($sql);

              if ( 
              $anz <= 0)
              {
               echo 
              " kein datensatz vorhanden"
              }
              else 
              {
               echo 
              "$anz ergebnisse";

              Zuletzt geändert von shortie19; 28.01.2003, 15:10.
              Wusstet ihr schon?
              Wer später bremst ist länger schnell!

              Die wahrscheinlich beste Funktion in PHP ist mysql_error(), doch leider auch die unbekannteste!

              Kommentar


              • #8
                ja, die ID wird über ein Form eingegeben...

                und der eingeber weiss ja nicht ob unter der entsprechenden ID ein Datensatz vorhanden ist oder nicht.

                Ich hab ja oben ein ganz kleines skriptlein geschrieben: aber das geht eben nicht...

                $sql_result ist der result vom mysql_query...

                PHP-Code:
                if ($sql_result) {
                echo 
                "ausgabe balbla";
                } else {
                echo 
                "hier kein Eintrag<<--- Das wäre dann die Fehlermeldung... geht aber ned";


                hmm
                --
                keep eating carrots!

                Kommentar


                • #9
                  PHP-Code:
                  $sql "SELECT * FROM tabelle WHERE id = '$id'";
                  $result mysql_query($sql);

                  if (
                  mysql_num_rows($result) > 0) {
                      
                  // datensatz ausgeben
                  } else {
                     
                  //kein Eintrag


                  Nicht getestet !!

                  Kommentar

                  Lädt...
                  X