Form Problem ! Please Help !

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • James

    Form Problem ! Please Help !

    My form and results are on one page.
    If I use :

    if ($Company) {
    $query = "Select Company, Contact
    From tblworking
    Where ID = $Company
    Order By Company ASC";
    }

    if ($Name ) {
    $query = "SELECT *
    FROM TBLWorking
    WHERE Contact Like '%$Name%'
    ORDER BY Contact";
    }


    $result = mysql_query($qu ery);
    $number = mysql_numrows($ result);
    for ($i=0; $i<$number; $i++) {

    $CompanyName = mysql_result($r esult,$i,"Compa ny");
    $ContactName = mysql_result($r esult,$i,"Conta ct");

    Print "Company: $CompanyName";
    Print "<P>Name: $ContactName";
    }

    As soon as I enter the page it searchs using $Name, even though I have not
    entered any information.

    This results in me getting a complete list printed on screen, with out me
    having to search.

    How do I get this to show just the form, then the form and the results ?

    Thanks

  • James

    #2
    Re: Form Problem ! Please Help !

    Same result.

    As soon as I enter the page, I get a full list of all companies !

    On Sat, 28 Jun 2003 23:58:58 +0200, "sotto" <junk@sotto.b e> wrote:
    [color=blue]
    >just a quick idea...
    >try if($company!='' ){ ... and if($name!='') { ....[/color]

    Comment

    • sotto

      #3
      Re: Form Problem ! Please Help !

      On Sat, 28 Jun 2003 22:45:50 +0100, James wrote:
      [color=blue]
      > My form and results are on one page.
      > If I use :
      >
      > if ($Company) {
      > $query = "Select Company, Contact
      > From tblworking
      > Where ID = $Company
      > Order By Company ASC";
      > }
      > }
      > if ($Name ) {
      > $query = "SELECT *
      > FROM TBLWorking
      > WHERE Contact Like '%$Name%'
      > ORDER BY Contact";
      > }
      > }
      >
      > $result = mysql_query($qu ery);
      > $number = mysql_numrows($ result);
      > for ($i=0; $i<$number; $i++) {
      >
      > $CompanyName = mysql_result($r esult,$i,"Compa ny"); $ContactName =
      > mysql_result($r esult,$i,"Conta ct");
      >
      > Print "Company: $CompanyName";
      > Print "<P>Name: $ContactName";
      > }
      > }
      > As soon as I enter the page it searchs using $Name, even though I have not
      > entered any information.
      >
      > This results in me getting a complete list printed on screen, with out me
      > having to search.
      >
      > How do I get this to show just the form, then the form and the results ?
      >
      > Thanks[/color]


      Is this of any help?

      <form>
      <!-- your form -->
      </form>
      <?php
      $query = '';
      if($company){
      $query = 'blabla';
      }
      if($name){
      $query = 'blahblah';
      }
      if($query != ''){
      // generate your table
      }
      ?>

      Comment

      • James

        #4
        Re: Form Problem ! Please Help !

        Thanks.

        Now when I enter the page it only has the form visible.

        However, If I submit the form blank, then I get a complete list of all
        companies.

        Can that be trapped, If $Company & $Name are blank then just display the
        form ??

        Thanks
        [color=blue]
        >
        >Is this of any help?
        >
        ><form>
        ><!-- your form -->
        ></form>
        ><?php
        >$query = '';
        >if($company) {
        > $query = 'blabla';
        >}
        >if($name){
        > $query = 'blahblah';
        >}
        >if($query != ''){
        > // generate your table
        >}
        >?>[/color]

        Comment

        • James

          #5
          Re: Form Problem ! Please Help !


          Sorry... It didn't work..

          I created a copy of my page and renamed it, but I forgot to change the
          Action in the Form, so I was loading the new page, and submitting the
          results to the old page !!

          Now I've changed the name of the page back, I load the new page and it
          looks fine..

          The form is submitted to the new page and I get NO results back !

          Help !

          Thanks[color=blue]
          >Is this of any help?
          >
          ><form>
          ><!-- your form -->
          ></form>
          ><?php
          >$query = '';
          >if($company) {
          > $query = 'blabla';
          >}
          >if($name){
          > $query = 'blahblah';
          >}
          >if($query != ''){
          > // generate your table
          >}
          >?>[/color]

          Comment

          • Geoff Berrow

            #6
            Re: Form Problem ! Please Help !

            Message-ID: <cq6sfvoqnrinse mhc5sl04cf5r10h g1ass@4ax.com> from James
            contained the following:
            [color=blue]
            >The form is submitted to the new page and I get NO results back ![/color]

            Just spotted this:
            [color=blue]
            >From tblworking[/color]
            ....
            [color=blue]
            >FROM TBLWorking[/color]

            --
            Geoff Berrow
            It's only Usenet, no one dies.
            My opinions, not the committee's, mine.
            Simple RFDs http://www.ckdog.co.uk/rfdmaker/

            Comment

            • sotto

              #7
              Re: Form Problem ! Please Help !

              On Sat, 28 Jun 2003 23:44:02 +0100, James wrote:
              [color=blue]
              > Thanks.
              >
              > Now when I enter the page it only has the form visible.
              >
              > However, If I submit the form blank, then I get a complete list of all
              > companies.
              >
              > Can that be trapped, If $Company & $Name are blank then just display the
              > form ??
              >
              > Thanks
              >
              >[color=green]
              >>Is this of any help?
              >>
              >><form>
              >><!-- your form -->
              >></form>
              >><?php
              >>$query = '';
              >>if($company ){
              >> $query = 'blabla';
              >>}
              >>if($name){
              >> $query = 'blahblah';
              >>}
              >>if($query != ''){
              >> // generate your table
              >>}
              >>?>[/color][/color]

              if you used that structure i gave you, then it should be like this:

              it generates the form,
              then, if $company != '' then the query will be built to get records based
              on company
              then if $name != '' then the query will be built to get records based
              on name

              then if query != '' then you're generating the table ...

              so if $name & $company are both '' then $query will be '' and no table
              would be generated


              try again changing if($company) into if($company != '') ... just to be
              sure that that's not he problem (also with $name)

              Comment

              • Jason Dumler

                #8
                Re: Form Problem ! Please Help !

                If your script is running under Windows:
                Try using the "trim" function on your if statements. i.e.:
                if ( !trim($name) ) {
                // do something here
                }

                Why? I've noticed this under Windows, with a Windows client and a
                Windows server...there is an additional newline, or carriage
                return/newline on the end of some of the posted variables. The string
                "\r\n" and the string "\n" counts as true when you check it in an if
                statement. Since you can use the enter key to move between fields, or
                use the enter key to post a form when there's only one text field, the
                enter string is tacked onto the end of your posted variable.

                James wrote:[color=blue]
                > Sorry... It didn't work..
                >
                > I created a copy of my page and renamed it, but I forgot to change the
                > Action in the Form, so I was loading the new page, and submitting the
                > results to the old page !!
                >
                > Now I've changed the name of the page back, I load the new page and it
                > looks fine..
                >
                > The form is submitted to the new page and I get NO results back !
                >
                > Help !
                >
                > Thanks
                >[color=green]
                >>Is this of any help?
                >>
                >><form>
                >><!-- your form -->
                >></form>
                >><?php
                >>$query = '';
                >>if($company ){
                >> $query = 'blabla';
                >>}
                >>if($name){
                >> $query = 'blahblah';
                >>}
                >>if($query != ''){
                >> // generate your table
                >>}
                >>?>[/color]
                >
                >[/color]

                Comment

                • James

                  #9
                  Re: Form Problem ! Please Help !

                  Still not working...

                  Same results.. On entering the page, I get a complete list of companies...

                  On Sun, 29 Jun 2003 02:15:00 GMT, Jason Dumler
                  <dumlerjason_bu gger_spam@netsc ape.net> wrote:
                  [color=blue]
                  >If your script is running under Windows:
                  > Try using the "trim" function on your if statements. i.e.:
                  > if ( !trim($name) ) {
                  > // do something here
                  > }
                  >
                  >Why? I've noticed this under Windows, with a Windows client and a
                  >Windows server...there is an additional newline, or carriage
                  >return/newline on the end of some of the posted variables. The string
                  >"\r\n" and the string "\n" counts as true when you check it in an if
                  >statement. Since you can use the enter key to move between fields, or
                  >use the enter key to post a form when there's only one text field, the
                  >enter string is tacked onto the end of your posted variable.
                  >
                  >James wrote:[color=green]
                  >> Sorry... It didn't work..
                  >>
                  >> I created a copy of my page and renamed it, but I forgot to change the
                  >> Action in the Form, so I was loading the new page, and submitting the
                  >> results to the old page !!
                  >>
                  >> Now I've changed the name of the page back, I load the new page and it
                  >> looks fine..
                  >>
                  >> The form is submitted to the new page and I get NO results back !
                  >>
                  >> Help !
                  >>
                  >> Thanks
                  >>[color=darkred]
                  >>>Is this of any help?
                  >>>
                  >>><form>
                  >>><!-- your form -->
                  >>></form>
                  >>><?php
                  >>>$query = '';
                  >>>if($company) {
                  >>> $query = 'blabla';
                  >>>}
                  >>>if($name){
                  >>> $query = 'blahblah';
                  >>>}
                  >>>if($query != ''){
                  >>> // generate your table
                  >>>}
                  >>>?>[/color]
                  >>
                  >>[/color][/color]

                  Comment

                  • Jason Dumler

                    #10
                    Re: Form Problem ! Please Help !

                    James,

                    Add some debugging output to your script. If it still doesn't work with
                    the suggestions provided here, then something that isn't obvious is
                    going on. Modify your original script as follows:

                    <?

                    print "<!--\n";
                    print "Script Init:\n";
                    print "\$Company: " . $Company . "\n";
                    print "\$Name: " . $Name . "\n";
                    print "\$query: " . $query . "\n";

                    if ($Company) {
                    print "\$Company found.\n";

                    $query = "Select Company, Contact
                    From tblworking
                    Where ID = $Company
                    Order By Company ASC";
                    }

                    if ($Name ) {
                    print "\$Name found.\n";

                    $query = "SELECT *
                    FROM TBLWorking
                    WHERE Contact Like '%$Name%'
                    ORDER BY Contact";
                    }

                    print "After if statements: \$query is:\n" . $query . "\n";

                    $result = mysql_query($qu ery);

                    print "Ran query '" . $query . "' and received result: " . $result . "\n";

                    $number = mysql_numrows($ result);

                    print "Number of rows resulting from query: " . $number . "\n";
                    print " End Debugging -->\n";

                    for ($i=0; $i<$number; $i++) {

                    $CompanyName = mysql_result($r esult,$i,"Compa ny");
                    $ContactName = mysql_result($r esult,$i,"Conta ct");

                    Print "Company: $CompanyName";
                    Print "<P>Name: $ContactName";

                    ?>

                    Then, after running the script, look in the page source at the debugging
                    comments you've added. As I said, something that isn't obvious is going
                    on, such as when you don't give the mysql_query function a query, it
                    just runs the last query you ever ran. This probably isn't happening,
                    but if it did, it would be unexpected, and your code doesn't handle that
                    particular case. The code others have submitted does though, which is
                    part of the mystery. You need to look at the debugging comments when
                    you submit nothing, submit something just for Company, submit something
                    just for Name, and something for both Company and Name. Then your
                    script will hopefully tell you exactly what it's doing, leading you to
                    whatever the solution is.

                    James wrote:[color=blue]
                    > Still not working...
                    >
                    > Same results.. On entering the page, I get a complete list of companies...
                    >
                    > On Sun, 29 Jun 2003 02:15:00 GMT, Jason Dumler
                    > <dumlerjason_bu gger_spam@netsc ape.net> wrote:
                    >
                    >[color=green]
                    >>If your script is running under Windows:
                    >> Try using the "trim" function on your if statements. i.e.:
                    >> if ( !trim($name) ) {
                    >> // do something here
                    >> }
                    >>
                    >>Why? I've noticed this under Windows, with a Windows client and a
                    >>Windows server...there is an additional newline, or carriage
                    >>return/newline on the end of some of the posted variables. The string
                    >>"\r\n" and the string "\n" counts as true when you check it in an if
                    >>statement. Since you can use the enter key to move between fields, or
                    >>use the enter key to post a form when there's only one text field, the
                    >>enter string is tacked onto the end of your posted variable.
                    >>
                    >>James wrote:
                    >>[color=darkred]
                    >>>Sorry... It didn't work..
                    >>>
                    >>>I created a copy of my page and renamed it, but I forgot to change the
                    >>>Action in the Form, so I was loading the new page, and submitting the
                    >>>results to the old page !!
                    >>>
                    >>>Now I've changed the name of the page back, I load the new page and it
                    >>>looks fine..
                    >>>
                    >>>The form is submitted to the new page and I get NO results back !
                    >>>
                    >>>Help !
                    >>>
                    >>>Thanks
                    >>>
                    >>>
                    >>>>Is this of any help?
                    >>>>
                    >>>><form>
                    >>>><!-- your form -->
                    >>>></form>
                    >>>><?php
                    >>>>$query = '';
                    >>>>if($company ){
                    >>>>$query = 'blabla';
                    >>>>}
                    >>>>if($name) {
                    >>>>$query = 'blahblah';
                    >>>>}
                    >>>>if($query != ''){
                    >>>>// generate your table
                    >>>>}
                    >>>>?>
                    >>>
                    >>>[/color][/color]
                    >[/color]

                    Comment

                    • Jason Dumler

                      #11
                      Re: Form Problem ! Please Help !

                      Geoff,

                      In mysql, case matters, so yes, he is referencing two seperate tables if
                      he changes case between the two queries. I'm curious as to why he's not
                      getting any errors with the code he's supplied. MySQL should complain
                      about the missing table, or the missing query, or the missing result
                      resource...

                      He didn't say whether he typed the code, or copied it from his source.

                      Jason

                      Geoff Berrow wrote:[color=blue]
                      > Message-ID: <jaELa.534628$v U3.480205@news1 .central.cox.ne t> from Jason
                      > Dumler contained the following:
                      >
                      >[color=green]
                      >>Then your
                      >>script will hopefully tell you exactly what it's doing, leading you to
                      >>whatever the solution is.[/color]
                      >
                      >
                      > He is still querying two different tables. TBLWorking is not the same as
                      > tblworking is it?
                      >[/color]

                      Comment

                      • Andy Hassall

                        #12
                        Re: Form Problem ! Please Help !

                        On Sun, 29 Jun 2003 18:32:54 GMT, Jason Dumler
                        <dumlerjason_bu gger_spam@netsc ape.net> wrote:
                        [color=blue]
                        >In mysql, case matters, so yes, he is referencing two seperate tables if
                        >he changes case between the two queries. I'm curious as to why he's not
                        >getting any errors with the code he's supplied. MySQL should complain
                        >about the missing table, or the missing query, or the missing result
                        >resource...[/color]

                        MySQL's case-sensitivity for databases and tables depends on the
                        case-sensitivity of the underlying filesystem where the database/table files
                        are stored.

                        If you run it on Windows, you can get away with mixed case.

                        --
                        Andy Hassall (andy@andyh.co. uk) icq(5747695) (http://www.andyh.co.uk)
                        Space: disk usage analysis tool (http://www.andyhsoftware.co.uk/space)

                        Comment

                        Working...