Warning: Invalid argument supplied for foreach() in

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

  • Warning: Invalid argument supplied for foreach() in

    also mein problem:

    habe eine suchabfrage die auch prima läuft mittlerweile. NUR:
    wenn nichts gefunden wird möchte ich gerne eine meldung ausgeben.

    das hab ich mit einer if - else schon geschafft, nur wird auch die oben genannte warnung ausgegeben.

    wie bekommt man die weg? kann man die irgendwie "ausschalten"?

    wenn nicht, gibt es andere möglichkeiten so eine ausgabe zu machen?

    lg
    sibl

  • #2
    der fehler liegt in zeile 42...
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      liegt daran das das array für foreach($deinarray as daten) leer ist, vorher per if() prüfen ob das array gefüllt ist, sonst foreach nicht ausführen.
      mfg
      marc75

      <Platz für anderes>

      Kommentar


      • #4
        Re: Warning: Invalid argument supplied for foreach() in

        Original geschrieben von mrhappiness der fehler liegt in zeile 42...
        Ja sieht danach aus. *lol*
        Original geschrieben von marc75
        liegt daran das das array für foreach($deinarray as daten) leer ist, vorher per if() prüfen ob das array gefüllt ist, sonst foreach nicht ausführen.
        Ich glaube eher das hängt damit zusammen, dass das übergebene Argument kein Array() ist.
        Original geschrieben von schnibl
        habe eine suchabfrage die auch prima läuft mittlerweile.
        Bis auf eine Kleinigkeit.
        Original geschrieben von schnibl
        NUR:
        wenn nichts gefunden wird möchte ich gerne eine meldung ausgeben.

        das hab ich mit einer if - else schon geschafft, nur wird auch die oben genannte warnung ausgegeben.

        wie bekommt man die weg? kann man die irgendwie "ausschalten"?

        wenn nicht, gibt es andere möglichkeiten so eine ausgabe zu machen?


        Quelltext?

        cheers
        Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist davon überzeugt, dass er genug davon habe – René Descartes
        PHP Sicherheit
        PHPUnit[1-2]
        Professionelle Softwareentwicklung mit PHP 5
        Professionelle PHP 5-Programmierung

        Kommentar


        • #5
          wenn der fehler kommt wenn es keine resultate gab also wenn das normal ist versuchs mit @foreach($myvar)

          Kommentar


          • #6
            Original geschrieben von Th3_LuN4tIc
            wenn der fehler kommt wenn es keine resultate gab also wenn das normal ist versuchs mit @foreach($myvar)
            ja genau mach überall ein @ vor, um die Fehlermeldungen zu unterdrücken.

            was für eine blöde Idee, wie wärs mit sauberen proggen.


            @schlimmerfinger

            Ich glaube eher das hängt damit zusammen, dass das übergebene Argument kein Array() ist.
            auch möglich,
            da der fehler angeblich nur Auftritt wenn nix gefunden wurde, denke ich mal das die arrayvar erst garnicht erstellt wurde.
            Weil ->keine Daten gefunden->kein array erstellt.
            mfg
            marc75

            <Platz für anderes>

            Kommentar


            • #7
              ok also hier der quelltext:

              von suchen.php

              <?
              if (isset($_GET["suchen"])) {
              $doc = domxml_open_file("../data/news.xml");
              $xsldoc = domxml_xslt_stylesheet_file("../data/news.xsl");


              $context = $doc->xpath_new_context();

              $path = "/news/item/name[contains(.,'" . $_GET["suchen"] . "')]/..";
              /*
              echo $path;
              */

              $nodes = $context->xpath_eval($path);

              $newdoc = domxml_new_doc ("1.0");
              $root = $newdoc->add_root ("searchResult");
              foreach ($nodes->nodeset as $x) {
              $name = $context->xpath_eval("name",$x);
              $info = $context->xpath_eval("info",$x);
              $preis = $context->xpath_eval("preis",$x);
              $http = $context->xpath_eval("http",$x);
              $datum = $context->xpath_eval("datum",$x);
              $root->append_child($x->clone_node(true));
              }
              }

              echo "<xmp>";
              echo "</xmp>";


              ?>

              in suchergebnis.php hab ich dann if else gemacht:

              <?
              include("suchen.php");
              $xsldoc = domxml_xslt_stylesheet_file("../data/news.xsl");

              if ($x){
              $result = $xsldoc->process($newdoc);
              print $xsldoc->result_dump_mem($result);
              }
              else {
              print "KEIN ERGEBNIS ZU IHRER EINGABE";
              }
              ?>

              jetzt fallt es euch sicher nimma schwer den fehler zu finden oder??? *g*

              lg
              schnibl

              Kommentar


              • #8
                jetzt fallt es euch sicher nimma schwer den fehler zu finden oder??? *g*
                wenn du troll noch php-tags benutzt hätts, ...

                http://www.php-resource.de/manual.ph...ction.is-array
                Die Zeit hat ihre Kinder längst gefressen

                Kommentar


                • #9
                  1. bin ich kein troll, wenn dann eine nuss
                  2. kann ich mit deiner antwort nix anfangen, da ANFÄNGERiN!!!

                  kann vielleicht jmd mit mir klartext reden und mir sagen was ich wo falsch gemacht habe? und wie ich das wieder beheben kann?

                  danke schon mal

                  Kommentar


                  • #10
                    prüfe vor dem zugriff auf des array, ob es denn wirklich eins ist ...
                    Die Zeit hat ihre Kinder längst gefressen

                    Kommentar


                    • #11
                      warum soll ich dass denn jetzt machen? bei eingabe von wörtern die er auch findet, gibt es doch keine probleme.. sondern nur wenn es das wort nicht gibt..

                      irgendwie check ich das nich.. *seufz*

                      lg
                      schnibl

                      Kommentar


                      • #12
                        Irgendwie dacht ich, ich hätte das schon gepostet. War ich zu blöd das abzuschicken? (Wenn der Postman zweimal klingelt).Also noch ma.
                        Ich schliesse mich marc75 an. Der hatte die Lösung.
                        Der fehler liegt in suchen.php und zwar in zeile 18 nicht 42 wie fälschlicherweise von mrhappiness behauptet
                        Also ich würde sagen:
                        PHP-Code:
                         $root $newdoc->add_root ("searchResult");
                        if(
                        $nodes != 0)              
                        {
                        foreach(
                        $nodes.......
                        }
                        else
                        {
                        print 
                        "kein Ergebnis zu Ihrer Eingabe";

                        weil, wenn $nodes nix is , dann fehlt das argument und es kommt
                        Warning: Invalid argument supplied for foreach() in.
                        Behaupte ich jetzt einfach ma so.
                        Grüße Wendel
                        Das Leben ist kein Ponyhof.

                        Kommentar


                        • #13
                          hallo

                          das war ja mal ein konstruktiver vorschlag..

                          leider hat er mir nicht viel gebracht.. es ist zwar jetzt so, dass er mir bei einer "falschen" eingabe (also wenn jmd nach etwas sucht, dass nicht im xml file ist) nicht mehr die fehlermeldung ausgibt und so anzeigt wie er soll.. aber dass passiert jetzt auch wenn er etwas finden sollte.. blöde sache..

                          hab schon mit $nodes = 0 usw herumprobiert aber das ging dann auch nicht...

                          wo liegt denn da der hund begraben? *G*

                          lg
                          schnibl

                          Kommentar


                          • #14
                            sorry passt supi. hatte nur das s bei nodes vergessen upps..

                            danke auf alle fälle..

                            lg aus wien

                            Kommentar

                            Lädt...
                            X