maxi30001: einfach SQL Abfrage

Hallo Leute,

ich stehe im Moment auf dem Schlauch, bevor ich jetzt noch eine Stunde vor dem Schirm sitze wäre es nett wenn ihr mir kurz unter die Arme greifen könntet...

  
$table = "blabla";  
mysql_connect("$DBHost","$DBUser","$DBPass");  
$ergebnis = mysql_db_query($DBName, "SELECT id FROM $table ORDER by rh WHERE ck=$check");  
$anz=mysql_num_rows($ergebnis);  

funktioniert nicht, Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource

Danke...

  1. Hallo,

    ich stehe im Moment auf dem Schlauch, bevor ich jetzt noch eine Stunde vor dem Schirm sitze wäre es nett wenn ihr mir kurz unter die Arme greifen könntet...

    $ergebnis = mysql_db_query($DBName, "SELECT id FROM $table ORDER by rh WHERE ck=$check");

    Du verletzt die Reihenfolge der Klauseln des SELECT-Statements. Die Reihenfolge ist nicht beliebig.

    Freundliche Grüße

    Vinzenz

  2. Hi!

    funktioniert nicht, Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource

    Schonmal danach eine Suchmaschine angeworfen? Diese Fehlermeldung und ihren Grund sowie wie man den wahren Grund herausbekommst, ist schon sooo oft beantwortet worden.

    $ergebnis = mysql_db_query($DBName, "SELECT id FROM $table ORDER by rh WHERE ck=$check");

    Die Reihenfolge der Klauseln ist wichtig. Such aber trotzdem mal nach der angezeigen Meldung, denn du hast jede Menge Anfängerfehler eingebaut: keine Fehlerbehandlung, vermutlich keine Kontextwechselbeachtung, und, was nicht mit deinem Problem zu tun hat, aber auch sinnlos ist, Variablen in Anführungszeichen.

    Lo!

  3. Moin!

    mysql_connect("$DBHost","$DBUser","$DBPass");
    $ergebnis = mysql_db_query($DBName, "SELECT id FROM $table ORDER by rh WHERE ck=$check");
    $anz=mysql_num_rows($ergebnis);

    
    >   
    > funktioniert nicht, Warning: mysql\_num\_rows(): supplied argument is not a valid MySQL result resource  
      
    Ich sehe nicht, dass Du Dich:  
      
    1\. Auch nur einer der Stellen um den Fehlerfall gekümmert hast.  
    2\. Eine Datenbank gewählt hast.  
    3\. Irgend etwas für die Sicherheit getan hast.  
    4\. Sorry, aber an Deinem "PHP" ist alles Murks. Bis auf die letzte Zeile. Die gänge durch wenn nicht vorher die groben Fehler wären.  
      
    ~~~php
    $DB = mysql_connect("$DBHost","$DBUser","$DBPass") or MyError();  
    mysql_select_db($DBName) or MyError();  
    $sql="SELECT `id` FROM `$table` ORDER by `rh` WHERE `ck`=".intval($check);  
    $result = mysql_query($sql, $DB) or MyError();  
    $anz=mysql_num_rows($ergebnis);
    

    function MyError() {
        # Oh da war ein Fehler. Lies bei mysql_error(), mysql_ errno() nach, was man hier tun kann.
    }

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix

    1. Hi!

      $DB = mysql_connect("$DBHost","$DBUser","$DBPass") or MyError();
      function MyError() {
          # Oh da war ein Fehler. Lies bei mysql_error(), mysql_ errno() nach, was man hier tun kann.
      }

      Das ist übrigens auch nicht besser als ein "or die()". Üblicherweise kann man die Situation, die zum Auftreten eines Fehlers führt, nicht soweit retten, dass die nachfolgenden mysql_*()-Funktionen problemlos ausgeführt werden können. Die Konsequenz aus der MyError()-Funktion wäre auch wieder nur, sie mit die()/exit zu beenden. Es hilft nichts, wenn man ein robustes Script schreiben will, das geordnet abgeschlossen werden soll, kommt man nicht um ein oder mehrere if-else- oder try-catch-Strukturen herum.

      Lo!

      1. Moin!

        » » function MyError() {  
        
        > >     # Oh da war ein Fehler. Lies bei mysql_error()HTML validieren beim W3C-ValidatorCSS validieren beim W3C-CSS-Validator, mysql_ errno()HTML validieren beim W3C-ValidatorCSS validieren beim W3C-CSS-Validator nach, was man hier tun kann.  
        > > }
        
        

        Das ist übrigens auch nicht besser als ein "or die()".

        # Komm, Dedlfix, trockne die Tränen: Ich hab es extra als nur als Kommentar reingeschrieben, damit der Frager weiß, dass er sich um die Fehlerbehandlung selbst kümmern muss.

        Im Prinzip kann ich ja antworten, was ich will: Schreib ich zu viel kommt die Kritik, dass ich schon wieder Code notiert hatte, schreib ich nur das "or die()" dann kommt "Oh! Das genügt nicht als Fehlerbehandlung" schreib ich "or MyError()" und in die Funktion, dass der Frage sich mal umsehen soll, was er tun kann, dann weinst Du auch. Dabei dachte ich, wir wären uns einig, dass es die ultimative, ultragenaue und immer ultrarichtige Fehlerbehandlung nicht geben kann.

        Schätze, ich bleibe künftig bei dem "or MyError()"

        MFFG (Mit freundlich- friedfertigem Grinsen)

        fastix

        1. Hi!

          Schätze, ich bleibe künftig bei dem "or MyError()"

          Mit geht es doch nur darum, Antworten zu vermeiden oder zu korrigieren, die zwar die Fehler des Fragenden beseitigen, beim Lösungsvorschlag hingegen drei neue Fasel- und Konzeptionsfehler einzubauen. Mir wäre es auch lieber, wenn ich nicht so viele Gründe fände, Kritik bei deinen Antworten anzubringen. Ich hab wirklich nichts gegen dich, nur gegen gut gemeinte Lösungen. Versuch doch mal, die Probleme mit statt für den Fragenden lösen zu wollen. Zeig ihnen den Weg und wie sie ihn bewältigen können, statt sie direkt ins Ziel zu befördern.

          Lo!

    2. es ist schon erstaunlich dass man sich heute in Foren von sog. "Experten" nur noch anmaulen lassen muss. Wenn euch nicht passt dass Laien auch mal eine Frage stellen, dann antwortet doch einfach nicht.
      Nein, statt dessen wird aus Gaudi (wohl im Rausch von Cola und Pizza) auch noch so ein Müll wie oben gecoded. Sicher hockst du jetzt lachend vorm Bildschirm.

      Daher ein besonderer Danke an Vinzenz Mai.

      1. Hallo,

        es ist schon erstaunlich dass man sich heute in Foren von sog. "Experten" nur noch anmaulen lassen muss.

        aber sonst geht's dir noch gut, ja?
        Erwartest du allen Ernstes, dass jemand, der spontan und ohne lange Recherche auf eine Frage antwortet, auch alle Facetten richtig erwischt? Ich empfinde es als unverschämt, wenn sich drei Leute bemühen, und du zwei von ihnen noch dumm anpflaumst.

        Daher ein besonderer Danke an Vinzenz Mai.

        Wenn du schon nur einem Teilnehmer danken möchtest, dann lieber dedlfix, der dich nicht nur auf den akuten Fehler hinweist, der dir im Moment den Hals bricht, sondern auch noch auf weitere Fehler, die dir im nächsten oder übernächsten Schritt ein Bein stellen, und auf Eigentümlichkeiten, die -wenn auch nicht schädlich- zumindest ausgesprochen sinnlos sind.

        Ciao,
         Martin

        --
        Wieso heißen die Dinger eigentlich Anrufbeantworter? Eigentlich sind es doch nur Anrufanhörer.
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        1. Hi Martin.

          Ich habe da gerade mal ne Meinung.

          aber sonst geht's dir noch gut, ja?
          Erwartest du allen Ernstes, dass jemand, der spontan und ohne lange Recherche auf eine Frage antwortet, auch alle Facetten richtig erwischt?

          Der fastix schreibt eine Antwort, in der er:

          • das Nichtbeachten von Fehlern moniert, und es in seinem Beispielcode nicht besser macht (siehe dedlfix' Antwort)
          • das Nichtwaehlen einer Datenbank moniert und dies im Beispielcode korrigiert
          • darauf tippt, dass "nichts fuer die Sicherheit getan" wurde (was immer das heissen mag), was moeglich, aber anhand des Codes geraten ist.*
          • den Code als "Murks" bezeichnet, was weder zielfuehrend ist, noch besonders freundlich rueberkommt.
          • den SQL-Fehler nicht korrigiert und schliesslich genauso einen Murks als Code hinschreibt.

          Ich will mich jetzt eigentlich gar nicht auf fastix einschiessen - sorry fastix :-) Aber dass daraufhin der User, der Anfaenger ist und dessen Problem solche Antworten nun mal nicht loesen, nicht gerade die Dankesreden schwingt... mein Gott. fastix nannte max' Code "Murks", max nannte fastix' Code "Muell". Beides nicht gerade notwendig. 1:1. So. Und jetzt muss der Moderator dem einen davon zu Hilfe eilen, weil sein "Bemuehen" um Hilfestellung nicht honoriert wurde?

          Ich empfinde es als unverschämt, wenn sich drei Leute bemühen, und du zwei von ihnen noch dumm anpflaumst.

          Angepflaumt hat er ja nur einen ;-)

          Wenn du schon nur einem Teilnehmer danken möchtest, dann lieber dedlfix,

          Der arme Vinzenz :-)

          Meine Wahrnehmung hier ist: Hier sind beide Seiten manchmal unverschaemt. Sowohl die "Wir"s als auch die "Ihr"s (die Begriffe sind in diesem Forum selbsterklaerend, denke ich). Ich persoenlich finds nicht so schlimm. Die meisten hier finden davon nur die Haelfte schlimm. Und alle die gleiche Haelfte. Das finde ich etwas komisch.

          Viele Gruesse,
          der Bademeister

          * Ja, streng genommen schreibt er, dass er nicht *sehe*, dass etwas fuer die Sicherheit getan wurde. Das ist korrekt, weil es aus dem Code nicht ersichtlich ist.

          1. Hallo,

            Ich habe da gerade mal ne Meinung.

            das ist gut, so soll es sein. :-)

            Der fastix schreibt eine Antwort, in der er:
            [...]

            Okay, dieser Beitrag war vielleicht eher "gut gemeint" als gut gemacht.
            Mich störte aber, dass der OP a) sich relativ frech gebärdet -jedenfalls empfinde ich das so- und auf die sogeannten Experten allgemein schimpft, und dann speziell demjenigen dankt, der IMHO hier ausnahmsweise nur die zweitbeste Antwort gegeben hat. Dabei will ich nicht in Abrede stellen, dass Vinzenz meistens sehr hochwertige und hilfreiche Beiträge liefert.

            Ich empfinde es als unverschämt, wenn sich drei Leute bemühen, und du zwei von ihnen noch dumm anpflaumst.
            Angepflaumt hat er ja nur einen ;-)

            Naja, 'von sog. "Experten" nur noch anmaulen lassen' hört sich für mich nicht nach nur einem an. Das ist ein unspezifischer Rundumschlag.

            Wenn du schon nur einem Teilnehmer danken möchtest, dann lieber dedlfix,

            In diesem konkreten Fall, wohlgemerkt.

            Der arme Vinzenz :-)

            Er wird drüber hinwegkommen, glaube ich.

            Meine Wahrnehmung hier ist: Hier sind beide Seiten manchmal unverschaemt. Sowohl die "Wir"s als auch die "Ihr"s (die Begriffe sind in diesem Forum selbsterklaerend, denke ich). Ich persoenlich finds nicht so schlimm. Die meisten hier finden davon nur die Haelfte schlimm. Und alle die gleiche Haelfte. Das finde ich etwas komisch.

            Das empfinde ich nicht so. Beide Seiten - hilfesuchende Laien ebenso wie alte Hasen und Foren-Stammgäste - benehmen sich hier ab und zu daneben.
            Die alten Hasen dafür zu tadeln, ist aber oft auch unangebracht, weil sie trotz der rauhen Ausdrucksweise manchmal genau den entscheidenden Denkanstoß liefern. Die Laien zu tadeln fällt vielleicht leichter, sollte aber, wenn überhaupt, mindestens mit demselben Fingerspitzengefühl erfolgen. Ich bin mir nicht sicher, ob ich diese Gratwanderung immer zufriedenstellend schaffe; zumindest bin ich mir aber der Schwierigkeit bewusst und bemühe mich.

            Gute Nacht erstmal,
             Martin

            --
            Soso, der Klügere gibt nach.
            Aber warum sollen sich immer nur die Dummen durchsetzen?  .oO(?)
            Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
            1. Naja, 'von sog. "Experten" nur noch anmaulen lassen' hört sich für mich nicht nach nur einem an. Das ist ein unspezifischer Rundumschlag.

              Ok, das hatte ich gar nicht so interpretiert, sondern eher als einen 'stilistischen Plural' angesehen, aber da gebe ich Dir Recht, das kann man als Rundumschlag sehen.

              Meine Wahrnehmung hier ist: Hier sind beide Seiten manchmal unverschaemt. Sowohl die "Wir"s als auch die "Ihr"s (die Begriffe sind in diesem Forum selbsterklaerend, denke ich). Ich persoenlich finds nicht so schlimm. Die meisten hier finden davon nur die Haelfte schlimm. Und alle die gleiche Haelfte. Das finde ich etwas komisch.

              Das empfinde ich nicht so. Beide Seiten - hilfesuchende Laien ebenso wie alte Hasen und Foren-Stammgäste - benehmen sich hier ab und zu daneben.
              Die alten Hasen dafür zu tadeln, ist aber oft auch unangebracht, weil sie trotz der rauhen Ausdrucksweise manchmal genau den entscheidenden Denkanstoß liefern. Die Laien zu tadeln fällt vielleicht leichter, sollte aber, wenn überhaupt, mindestens mit demselben Fingerspitzengefühl erfolgen.

              ACK. Ich muss meinen Kommentar an Dich auch insofern etwas relativieren, als Du natürlich Moderator bist und als solcher hier Hausrecht genießt.

              Ich denke nur grundsätzlich: Etwas beleidigte Antworten bekommen meistens dieselben Leute, nämlich die, die auch selber zum etwas direkten Ton neigen. Und ich denke, diese Leute wären im allgemeinen auch in der Lage, mit den Antworten selber umzugehen, und brauchen kein Zuhilfeeilen der ganzen Forenbande.

              Jetzt kriegts der gute fastix nochmal ab, obwohl es nicht speziell um ihn geht:

              Da schreibt er an einen Anfänger Postings wie

              »» Werfe die Seite auf den Müll [, ...] ohne nach dem Grund zu fragen.

              womit er nun wirklich nicht die Absicht verfolgt, jemandem zu helfen (in dem Sinne, wie in diesem Forum "Hilfe" verstanden wird), sondern einfach mal ner lockeren Zunge Luft verschaffen will, und

              »» [...]Der gezeigte HTML-Code ist schon nicht mehr "grottig", er ist "noch unterirdischer als grottig" - und das ist die höfliche, geradezu euphemistische Variante der Beschreibung. Die andere willst wirklich nicht in der Öffentlichkeit lesen.

              Ein Posting, für das ich überhaupt keine gute Erklärung parat hab (außer vielleicht ner Profilneurose, aber die will ich nun wirklich nicht unterstellen).

              So weit so gut. Keine große Sache, und man muss auch nicht gleich eingreifen, zumal das manchmal bei den alten Hasen schwerer fällt als bei anderen, wie Du sagst.

              Aber mal ehrlich, muss man, wie die Forengemeinde es getan hat, solche Postings in die Zitatesammlung wählen?? Hab ich da irgendwie den Witz nicht verstanden? Das kann doch wirklich keiner ernst meinen!

              Und wenn ein Newbie dann halt mal nicht einfach die Wange hinhält, dann haben schon genügend Leute nur darauf gewartet und sind zur Stelle, um ihm die Meinung zu geigen. So ein bissl Spaß macht das manchen Leuten hier schon...

              Ich bin mir nicht sicher, ob ich diese Gratwanderung immer zufriedenstellend schaffe; zumindest bin ich mir aber der Schwierigkeit bewusst und bemühe mich.

              Es geht mir ja gar nicht so sehr darum, diese Leute ändern zu wollen (wer immer damit jetzt überhaupt alles gemeint ist). Aber wenn sie halt mal ein paar Widerworte kriegen, dann lasst sie das doch auch regeln, sie sind doch alt genug, um auch ohne ihre Freunde klarzukommen. Oder? Und wenn es wirklich mal so gravierend ist, dass man eingreifen muss, dann - meiner Meinung nach - aber auch in alle Richtungen, in denen sich im Ton vergriffen wurde; auch wenn's "bei den alten Hasen schwerer fällt." Die Leute würden vermutlich auf der Straße so nicht mit erwachsenen Menschen reden - warum also hier im Forum?

              Ich will damit jetzt den Moderatorn gar nicht so sehr ins Handwerk quatschen, auch wenn Dein Posting jetzt der Auslöser war, denn die Regeln macht Ihr. Aber ich wollte es dennoch mal gesagt haben. Zumal einige, an die es sich richtet, keine Moderatoren sind.

              Gute Nacht erstmal,
              Martin

              Danke, Dir auch,
              der Bademeister

              1. Moin,

                Ich muss meinen Kommentar an Dich auch insofern etwas relativieren, als Du natürlich Moderator bist und als solcher hier Hausrecht genießt.

                das sollte aber keine Rolle spielen, wenn es um begründete Kritik geht. Als Moderator ist man schließlich nicht automatisch unfehlbar - das ist per definitionem nur der Papst, und schon allein deshalb ist er es für mich nicht.

                Jetzt kriegts der gute fastix nochmal ab, obwohl es nicht speziell um ihn geht:
                Da schreibt er an einen Anfänger Postings wie
                »» Werfe die Seite auf den Müll [, ... ohne nach _dem_ Grund zu fragen.]

                Ja, er hat in letzter Zeit ein paar Nägel reingehauen.

                Aber mal ehrlich, muss man, wie die Forengemeinde es getan hat, solche Postings in die Zitatesammlung wählen?? Hab ich da irgendwie den Witz nicht verstanden? Das kann doch wirklich keiner ernst meinen!

                Das konnte ich auch nicht verstehen, geschweige denn gutheißen. In die Zitatesammlung sollen eigentlich Aussprüche, die einen gewissen inhärenten Witz haben, vielleicht sogar mit Bezug zum Thema - aber bitte nicht auf Kosten "Unschuldiger".

                Die Leute würden vermutlich auf der Straße so nicht mit erwachsenen Menschen reden - warum also hier im Forum?

                Manche vielleicht schon. Vielleicht nicht so ausgeprägt, das ist wohl wahr, aber es gibt doch ein paar Leute, bei denen der für sie *normle* Umgangston so ist, dass Uneingeweihte entsetzt wären. Manchmal entscheide ich mich im Alltag auch eher für eine sehr direkte als eine diplomatisch-Verklausulierte Äußerung, solange ich trotzdem noch in der Lage bin, ein Mindestmaß an Anstand und Höflichkeit zu wahren.

                Ich will damit jetzt den Moderatorn gar nicht so sehr ins Handwerk quatschen, auch wenn Dein Posting jetzt der Auslöser war, denn die Regeln macht Ihr. Aber ich wollte es dennoch mal gesagt haben. Zumal einige, an die es sich richtet, keine Moderatoren sind.

                Und nochmal: Auch an Moderatoren ist Kritik durchaus erwünscht, wenn es angebracht scheint. Ich habe es auch lieber, wenn ich unverblümt lesen oder hören kann, was anderen an mir missfällt. Vielleicht sage ich dann achselzuckend, "is halt so", weil ich in irgendeiner Situation aus Überzeugung grantig reagiert habe. Vielleicht ist es aber auch etwas, das mir noch gar nicht bewusst war, und ich nehme mir die Kritik zu Herzen und versuche mich zu bessern. Aber bestimmt nicht, wenn Leute hinter meinem Rücken tuscheln und/oder dauernd nur Andeutungen machen. Erst recht nicht, wenn sie ihren Ärger still schlucken und ich nichts davon mitbekomme.

                Ciao,
                 Martin

                --
                Der Stress von heute ist die gute alte Zeit von morgen.
                Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
                1. Moin!

                  Da schreibt er an einen Anfänger Postings wie
                  »» Werfe die Seite auf den Müll [, ... ohne nach _dem_ Grund zu fragen.]

                  Ja, er hat in letzter Zeit ein paar Nägel reingehauen.

                  Nun, bei der "streitgegenständlichen" Seite. die komplett aus arg verschachtelten Tabellen gebaut war, da war das auch der einzige Weg zu einem brauchbaren Ergebnis zu kommen. Es macht keinen Sinn irreparables zu reparieren.

                  Ich bin der Auffassung, dass übermäßige Zurückhaltung im Ton nur dazu führt, dass die angesprochenen die alten Fehler weiter machen. So steh ich da und kann nicht anders.

                  Aber mal ehrlich, muss man, wie die Forengemeinde es getan hat, solche Postings in die Zitatesammlung wählen??

                  Ist nicht gerade neu für mich wenn ich zitiert werde. Das es die gute alte Zitatesammlung "wieder" gibt hatte ich wohl ignoriert. Nun steh ich drin und will nicht wieder raus.

                  MFFG (Mit freundlich- friedfertigem Grinsen)

                  fastix

            2. Hallo,

              Wenn du schon nur einem Teilnehmer danken möchtest, dann lieber dedlfix,
              In diesem konkreten Fall, wohlgemerkt.

              wie wäre es damit: dedlfix' Beitrag als "fachlich hilfreich" bewerten. Ich hab's getan. Zur Nachahmung empfohlen.

              Der arme Vinzenz :-)
              Er wird drüber hinwegkommen, glaube ich.

              aber sicher doch :D

              Freundliche Grüße

              Vinzenz

      2. Moin!

        es ist schon erstaunlich dass man sich heute in Foren von sog. "Experten" nur noch anmaulen lassen muss.

        Du "Experte" hast in den wenigen Zeilen nicht EINEN sondern ein HALBES DUTZEND Fehler gemacht umd pflaumst mich jetzt an, weil davon nur 5 korrigiert und einen übersehen habe.

        Den übriggebliebenen Fehler hatte Dedlfix schon um 20:14 benannt, Vinzenz sogar schon um 20:10. Meine Nachricht wurde um 20:26 fertig, weil ich noch ein paar Fehler mehr fand - und mit denen wäre das Ergebnis das selbe. Um 20:52 reißt Du hier das Maul auf obwohl Du die Antwort von Dedlfix und Vinzenz  schon kanntest oder hättest kennen können. Oder war es dem werten Herr zu schwierig seinen Mist aus zwei Antworten zusammenzukopieren?

        Weißt Du was? Du kannst mich mal.

        MFFG (Mit freundlich- friedfertigem Grinsen)

        fastix

    3. PS: Das Ergebnis deines Codes:

      You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE ck=1' at line 1

      ...und damit habe ich genau das gleiche Endergebnis, was ich schon vor 2 Stunden hatte. Da denkt man sich, frägst halt mal hier nach, bei "Experten".