Eintrag in allen Kategorien..wieso?

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

  • Eintrag in allen Kategorien..wieso?

    Hi Profis,

    ich hab da mal ein Problem.
    Bei meinem Script soll, wenn das Formular ausgefüllt ist, der Eintrag in die richtige (ausgewählte) Kategorie eingetragen werden (wie Linkliste).
    Allerdings wird bei mir jeder Eintrag in ALLE Kategorien eingetragen, aber ich find den Fehler im Script nicht... :-(

    Anbei das Stück Quellcode:


    for ($x=0;$x < count($cat_array);$x++)
    {
    $rp = mysql_query ("SELECT p, gp FROM $db_category WHERE cat_id='$cat_array[$x]'");
    $fp = mysql_fetch_assoc($rp);
    mysql_query ("INSERT INTO $db_listcat (list_id, cat_id, p, gp) VALUES ($list_id, '$cat_array[$x]', '$fp[p]', '$fp[gp]')") or die(mysql_error());
    }

    include ( "includes/newlistingnotification.php" );

    }

    }

    elseif ( $_POST["regbut"] == "$def_category_sel" )
    {
    $xflag=false;
    for ($x=0;$x < count($cat_array);$x++){
    if ($_POST[main] == $cat_array[$x]) $xflag=true;
    }
    if (!$xflag)
    {
    $cat_array[count($cat_array)]= $_POST[main];
    $cat_str = implode(":", $cat_array);
    }else{
    $submit_error = "<font color=red><b>Error:</b> $def_cat_sel_error<br><br></font>"; $error_on = 1;
    }
    }
    elseif ( $_POST["regbut"] == "$def_subcategory" )
    {
    $xflag=false;
    for ($x=0;$x < count($cat_array);$x++){
    if ($_POST[child] == $cat_array[$x]) $xflag=true;
    }
    if (!$xflag)
    {
    $cat_array[count($cat_array)]= $_POST[child];
    $cat_str = implode(":", $cat_array);
    }else{
    $submit_error = "<font color=red><b>Error:</b> $def_cat_sel_error<br><br></font>"; $error_on = 1;
    }
    }
    elseif ( $_POST["regbut"] == "$def_subsubcategory" )
    {
    $xflag=false;
    for ($x=0;$x < count($cat_array);$x++){
    if ($_POST[grandchild] == $cat_array[$x]) $xflag=true;
    }
    if (!$xflag)
    {
    $cat_array[count($cat_array)]= $_POST[grandchild];
    $cat_str = implode(":", $cat_array);
    }else{
    $submit_error = "<font color=red><b>Error:</b> $def_cat_sel_error<br><br></font>"; $error_on = 1;
    }
    }
    elseif ( $_POST["regbut"] == "$def_remove" and isset($_POST[cat_radio]))
    {
    $xflag = $_POST[cat_radio];
    array_splice($cat_array, $xflag, 1);
    $cat_str = implode(":",$cat_array);
    }


    Hat jemand eine Idee?
    Gruß
    Jörn

  • #2
    for ($x=0;$x < count($cat_array);$x++)
    {
    $rp = mysql_query ("SELECT p, gp FROM $db_category WHERE cat_id='$cat_array[$x]'");
    $fp = mysql_fetch_assoc($rp);
    mysql_query ("INSERT INTO $db_listcat (list_id, cat_id, p, gp) VALUES ($list_id, '$cat_array[$x]', '$fp[p]', '$fp[gp]')") or die(mysql_error());
    }
    wenn ich das richtig sehe, und in $cat_array deine Kategorien alle drin stehen, läufst du hier einmal durch alle kategorien und fügst auch in jede ein... $cat_array[$x]

    greetz, high
    Good programming is 40% experience, 20% skill, 20% RTFM, 15% caffeine, and 5% attention to detail.
    When everything else fails, manipulate the data...
    Beschriftungen / Großformatdruck / Werbemittel

    Kommentar


    • #3
      Original geschrieben von highrise
      wenn ich das richtig sehe, und in $cat_array deine Kategorien alle drin stehen, läufst du hier einmal durch alle kategorien und fügst auch in jede ein... $cat_array[$x]

      greetz, high
      Hmm...du hast recht.
      Hast du einen Vorschlag, wie man das besser machen kann?


      Gruß
      Jörn

      Kommentar


      • #4
        um da was zu zu sagen, fehlt mir der zusammenhang.

        wo steht denn drin, welche kategorie jemand ausgewählt hat?

        irgendwo muss die information ja herkommen.

        greetz, high
        Good programming is 40% experience, 20% skill, 20% RTFM, 15% caffeine, and 5% attention to detail.
        When everything else fails, manipulate the data...
        Beschriftungen / Großformatdruck / Werbemittel

        Kommentar


        • #5
          Original geschrieben von highrise
          um da was zu zu sagen, fehlt mir der zusammenhang.

          wo steht denn drin, welche kategorie jemand ausgewählt hat?

          irgendwo muss die information ja herkommen.

          greetz, high
          Hi, hier der Quellcode mit Ausgabe:

          if ($_POST[cat_str]) {
          $cat_array=explode(":",$_POST[cat_str]);
          $cat_str = $_POST[cat_str];
          var_dump($cat_array);
          }

          und mein var_dump gibt mir aus:

          array(3) { [0]=> string(1) "1" [1]=> string(1) "2" [2]=> string(1) "3" }

          Gruß Jörn

          Kommentar


          • #6
            okay..
            das bedeutet, in diesem fall hat jemand die kategorien 1, 2 und 3 ausgewählt, oder aber an dem eingabeformular stimmt etwas nicht.
            dann müssen wir dort weitersuchen...

            ansonsten wäre es ja absolut korrekt, was dein script tut.. nämlich auch in 1, 2 und 3 eintragen..

            oder steh ich nun irgendwo daneben?

            greetz, high
            Good programming is 40% experience, 20% skill, 20% RTFM, 15% caffeine, and 5% attention to detail.
            When everything else fails, manipulate the data...
            Beschriftungen / Großformatdruck / Werbemittel

            Kommentar


            • #7
              Original geschrieben von highrise
              okay..
              das bedeutet, in diesem fall hat jemand die kategorien 1, 2 und 3 ausgewählt, oder aber an dem eingabeformular stimmt etwas nicht.
              dann müssen wir dort weitersuchen...

              ansonsten wäre es ja absolut korrekt, was dein script tut.. nämlich auch in 1, 2 und 3 eintragen..

              oder steh ich nun irgendwo daneben?

              greetz, high
              Hi,

              leider nein.
              Es ist nur eine einzige Kategorie ausgewählt, der Eintrag wird aber in alle KAtegorien eingesetzt.

              Ich hab dir ja den kompletten Quellcode per E-Mail zugeschickt, vielleicht findest du da drin noch was. Ich bastele seit heute Nacht dran, komme aber echt nicht weiter!

              Gruß

              Kommentar


              • #8
                dann steht tatsächlich gleich zu beginn in $_POST[cat_str]) was falsches drin..

                wie sieht das eingabeformular aus?

                PS: habe kein E-Mail bekommen :-(
                Zuletzt geändert von highrise; 02.11.2006, 14:19.
                Good programming is 40% experience, 20% skill, 20% RTFM, 15% caffeine, and 5% attention to detail.
                When everything else fails, manipulate the data...
                Beschriftungen / Großformatdruck / Werbemittel

                Kommentar


                • #9
                  Original geschrieben von highrise
                  dann steht tatsächlich gleich zu beginn in $_POST[cat_str]) was falsches drin..

                  wie sieht das eingabeformular aus?

                  PS: habe kein E-Mail bekommen :-(
                  Hab es dir nochmal geschickt,
                  mal sehen ob es ankommt!

                  Kommentar


                  • #10
                    diesmal angekommen, aber code geht nur bis..

                    }else{

                    echo "<option value=$f[cat_id]>$f[title]


                    (zeichenbegrenzung hier im forum?)

                    die stelle, an der cat_str festgelegt wird, ist leider nicht enthalten ...

                    woher stammt denn eigentlich der code? *neugier*..
                    der ursprüngliche progger sollte doch da zumindest durchsteigen und die stelle zum Lachen finden...

                    greetz, high
                    Zuletzt geändert von highrise; 02.11.2006, 15:10.
                    Good programming is 40% experience, 20% skill, 20% RTFM, 15% caffeine, and 5% attention to detail.
                    When everything else fails, manipulate the data...
                    Beschriftungen / Großformatdruck / Werbemittel

                    Kommentar


                    • #11
                      Sagt mal, wenn Ihr das Problem jetzt unter Euch abmachen wollt, warum dann nicht komplett per
                      email, statt hier Dinge zu posten, mit denen niemand was anfangen kann, weil den Code keiner kennt?

                      Kommentar


                      • #12
                        Original geschrieben von highrise
                        diesmal angekommen, aber code geht nur bis..

                        }else{

                        echo "<option value=$f[cat_id]>$f[title]


                        (zeichenbegrenzung hier im forum?)

                        die stelle, an der cat_str festgelegt wird, ist leider nicht enthalten ...

                        greetz, high
                        hab dir den Rest auch noch geschickt.

                        Kommentar


                        • #13
                          dein formular ist etwas seltsam..

                          , weil dort cat_str nur unverändert wieder der inhalt von $cat_str zugewiesen wird...

                          ergo schließe ich daraus, dass es das falsche formular ist...

                          gesucht wird das eingabeformular aus der html-seite die die daten abschickt.. (also eine Seite früher!)

                          ansonsten kommen wir da nicht weiter..

                          @kuddeldaddeldu
                          hier im Forum wäre mir auch lieber.. dann könnten andere auch noch mitraten ;-)

                          greetz, high
                          Good programming is 40% experience, 20% skill, 20% RTFM, 15% caffeine, and 5% attention to detail.
                          When everything else fails, manipulate the data...
                          Beschriftungen / Großformatdruck / Werbemittel

                          Kommentar


                          • #14
                            Original geschrieben von highrise
                            dein formular ist etwas seltsam..


                            gesucht wird das eingabeformular aus der html-seite die die daten abschickt.. (also eine Seite früher!)

                            ansonsten kommen wir da nicht weiter..

                            @kuddeldaddeldu
                            hier im Forum wäre mir auch lieber.. dann könnten andere auch noch mitraten ;-)

                            greetz, high
                            Ist es der Teil der fehlt?

                            if (!$_POST['cat_str'])
                            {
                            $rc = mysql_query ("SELECT * FROM $db_category") or die (mysql_error());
                            $rcount = mysql_num_rows($rc);
                            for ($z=0;$z < $rcount;$z++)
                            {
                            $fc = mysql_fetch_assoc($rc);
                            $cat_array[$z] = $fc['cat_id'];
                            }

                            $cat_str = implode(":", $cat_array);
                            }
                            else
                            {
                            $cat_array=explode(":",$_POST['cat_str']);
                            }

                            Gruß
                            Jörn

                            Kommentar


                            • #15
                              @pjoern: Könntest du dir bitte mal angewöhnen, vernünftig zu zitieren? Dass du jedes Mal das komplette Vorgängerposting übernimmst, ist absolut unnötig.
                              Zitiere das, worauf du dich konkret beziehst.
                              I don't believe in rebirth. Actually, I never did in my whole lives.

                              Kommentar

                              Lädt...
                              X