Prüfe ob etwas nicht in einer tabelle ist...

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

  • Prüfe ob etwas nicht in einer tabelle ist...

    Folgendes Problem:
    ich will prüfen ob in einer tabelle ein name vorhanden ist.
    wenn ja soll er irgendwas machen sonst etwas anderes!
    Hab dazu folgendes script verfasst was irgendwie nich funktionieren will?
    Kann mir einer sagen warum...

    Code:

    include("connect.php");
    $db=mysql_connect($dbhost,$dbuser,$dbpass);
    mysql_select_db($dbname);
    $anfrage="SELECT * FROM tabelle1 where name='".$name."'";
    $ergebnis=mysql_query($anfrage);
    $num = mysql_num_rows($ergebnis);
    if ($ergebnis=='0')
    {
    irgendetwas
    }
    else
    {
    was anderes
    }



    ...bei dem script bekomme ich folgende fehlermeldung:

    Warning: Supplied argument is not a valid MySQL result resource in d:\apache webserver\apache\htdocs\chat\input.php on line 6

    so jungs ihr seid gefragt
    danke schon im vorraus...

  • #2
    ...
    $num = mysql_num_rows($ergebnis);
    if ($num =='0')
    ...


    php-Entwicklung | ebiz-consult.de
    PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
    die PHP Marktplatz-Software | ebiz-trader.de

    Kommentar


    • #3
      Original geschrieben von Berni
      ...
      $num = mysql_num_rows($ergebnis);
      if ($num =='0')
      ...

      das gibt aber nicht die fehlermeldung, die er beschreibt sondern nur eine laufende ausgabe von "was anderes"

      @dany gee:
      hast du im query evtl. den tabellennamen falsch geschrieben? grosser anfangsbuchstabe statt kleiner oder sowas?

      Kommentar


      • #4
        Original geschrieben von DanyGee
        $anfrage="SELECT * FROM tabelle1 where name='".$name."'";
        Macht das Sinn?
        Wie wäre es mit
        Code:
        $anfrage="SELECT * FROM tabelle1 where name='$name'";

        Kommentar


        • #5
          mach doch einfach

          if(!$numfrows) {
          echo "kein ergebnis"; }


          else {
          echo "ergebniss"; }

          du brauchst nicht mit "0" arbeiten.


          mfg
          novara
          Mit freundlichen Grüßen
          Werner

          Kommentar


          • #6
            @novara & Berni:

            Eure Tipps sind schon richtig, aber beide verhindern nicht den Fahler. Wieso auch. Der Fehler entsteht ja viel früher.

            [EDIT]

            Okay, mein Tipp hilft auch nichts. Ist wie eure Tipps nur zur Schönheit. Das sah nur so beschissen aus, deshalb dachte ich der Fehler läge da. Aber das war dann wohl nicht so.

            [Editiert von TobiaZ am 16-02-2002 um 18:31]

            Kommentar


            • #7
              Ich Poste einfach mal, wie ich das lösen würde. Der Code ist nicht getestet, sollte aber funktionieren! Wenn nicht, ist irgend ein Name oder eine Variable bei dir falsch:


              Code:
              //------------------------------------------
              // Abfragen ob "$name" in "tabelle1"
              $sql = "SELECT * 
              	FROM tabelle1
              	WHERE name = '$name'";
              $result = mysql_query ($sql, $conn);
              	
              while ($entry=mysql_fetch_array($result))
              $eintraege = mysql_num_rows($result);
              
              if (!$eintraege) {
              	echo "Name ist vorhanden";
              	} else {
                      echo "Name ist nicht vorhanden";
              	}
              Sollte wie gesagt laufen!
              Wenn nicht, machst du am Besten mal ein ECHO $sql; und postest das hier.

              Kommentar


              • #8
                Original geschrieben von TobiaZ
                Ich Poste einfach mal, wie ich das lösen würde. Der Code ist nicht getestet, sollte aber funktionieren! Wenn nicht, ist irgend ein Name oder eine Variable bei dir falsch:
                [..]
                Wenn nicht, machst du am Besten mal ein ECHO $sql; und postest das hier.
                sein code funktioniert schon auch soweit (auch das mit dem ".$name." is richtig - wenn auch nicht sehr übersichtlich, übersichtlicher is da natürlich dein vorschlag)

                bleibt nur die möglichkeit, dass tabellen- oder feldname falsch geschrieben sind (falsch wäre auch unterschiedliche gross/kleinschreibung)

                Kommentar


                • #9
                  @WhiteMountain

                  Danke für dein Lob! Hab mir auch Mühe gegeben. Der andere Code war mir auch zu unübersichtlich.

                  Die Sache mit dem falschen Namen haben wir anderen ja auch getippt. Dann sollte DanyGee mal seine Namen überprüfen. Deshalb ja auch mein Tipp mit dem Echo vom $sql (in meinem Fall). vielleicht kommt $name ja gar nicht rüber. Dann würde man das in dem Echo ja sehen.

                  Also DanyGee es ist wieder dein Turn!

                  Kommentar


                  • #10
                    Original geschrieben von TobiaZ
                    @WhiteMountain
                    Danke für dein Lob!
                    bidde bidde

                    [...] vielleicht kommt $name ja gar nicht rüber. Dann würde man das in dem Echo ja sehen.
                    richtig - würde man sehen.
                    gäbe aber keine fehlermeldung.
                    wäre in dem fall ja dann für die db eine suche nach einem "leeren" feld - also durchaus legitim.

                    interessanter als die query auszugeben, wär die ausgabe der fehlermeldung von mysql - ich könnt wetten, die fängt mit "unknown column in table..." oder "unknown table in..." an

                    Also DanyGee es ist wieder dein Turn!
                    jep


                    [Editiert von WhiteMountain am 16-02-2002 um 19:00]

                    Kommentar


                    • #11
                      Stimmt! Wir fassen also zusammen:
                      - Am $name kann es wie gesagt nicht liegen.
                      - Die Verbindung ist ja schon mal zu Stande gekommen. Da ist also auch alles korrekt.
                      - Die verwirrende Abfrage mit '".$name."' ist auch berechtigt.

                      LÖSUNG:
                      Es bleibt also nur ein Fehler in der Datenbank. Also müssen die Namen (und Vorhandenheiten) der einzelnen Spalten man überprüft werden.

                      Kommentar


                      • #12
                        mensch ihr seid gut.
                        Es lag an der datenbank. der mysql server hatte wohl irgendne macke.
                        habs abä schon allein hingekriegt, trotzdem danke für die antworten

                        Kommentar


                        • #13
                          Kannste mal sehn, was wir drauf haben!

                          Wäre nur geil gewesen, wenn du es was früher gepostet hättest, dann hätten wir uns das ganze nämlich sparen können Aber haben wir ja gern gemacht. Für ein nettes Danke tut man doch fast alles!

                          Aber dafür krieg ich jetzt nen Eintrag in meinem Gästebuch: http://www.tobiweb.net

                          Kommentar


                          • #14
                            Bei der Gelegenheit mal wieder der Hinweis auf unsere Code-Schnipsel: mysql-Queries mit automatischer Fehlerausgabe
                            mein Sport: mein Frühstück: meine Arbeit:

                            Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                            Kommentar


                            • #15


                              Wo bleibt mein Eintrag???

                              Kommentar

                              Lädt...
                              X