www.webdeveloper.com
Results 1 to 8 of 8

Thread: T_FOREACH error

  1. #1
    Join Date
    Feb 2010
    Posts
    4

    Angry T_FOREACH error

    Hi, i am macking a search engiene called wingot and have come across a T_FOREACH error the code is the folowing
    Code:
    <html>
    <head>
    <title>wingot</title>
    </head>
    </body>
    <?php
    
    //get data
    $search = $_GET['q'];
    //html header
    echo "<center><form action='search.php' method='GET'><a href='index.php'><img src='images/logo.png' alt='wingot' border='0' width='200' height='50' style='vertical-align:middle'></a>&nbsp&nbsp<input type='text' size='50' name='q'>&nbsp<input type='submit' value='search'></center><hr hight='1'>";
    echo "<table border='0' width=100%><tr width=100%><td>You searched for: $search</td><td align=right>Number of results: ";
    //connect to database
    @msql_connect("mysql15.**********.com","a9765945_wingot","pilgrim008")or die(mysql_error());
    @msql_select_db("a9765945_wingot")or die(mysql_error());
     //explode search term
     $search_exploded = explode(" ",$search)
     
    foreach ($search_exploded as $search_each){
     //construct query
     $x++;
     if ($x==1)
     $construct .= "Keywords LIKE '%$search_each%'";
     else
      $construct .= "OR Keywords LIKE '%$search_each%'";
     }
    
    $construct = "SELECT * FROM search WHERE $construct";
    $run = mysql_query($construct);
    
    $found = mysql_num_rown($run)
    
    if ($found==0)
    echo "0</td></tr></table><br/>";
    else
    {
    echo "$found</td></tr></table><br/>";
    }
    
    while ($runrows = mysql_fetch_addoc($run)) 
    (
    //get data
    $title = $runrows['title']
    $desc = $runrows['description']
    $url = $runrows['url']
    
    echo "
    <b><a href='$url' color = 'black'>$title</a></b><br/>
    $desc<br/>
    <a href='$url'>$url</a>
    ";
    
    )
    
    ?>
    </body>
    </html>
    i get the error

    Parse error: syntax error, unexpected T_FOREACH in /home/a9765945/public_html/search.php on line 19

    please can someone help me!

  2. #2
    Join Date
    Aug 2004
    Location
    Ankh-Morpork
    Posts
    19,604
    Missing semi-colon on the preceding line.
    "Please give us a simple answer, so that we don't have to think, because if we think, we might find answers that don't fit the way we want the world to be."
    ~ Terry Pratchett in Nation

    eBookworm.us

  3. #3
    Join Date
    Dec 2005
    Posts
    2,984
    Check out Notepad++ as a text editor when writing code.

    Full disclosure: it wouldn't have changed any syntax highlighting to make this mistake obvious, but it's still a really useful tool!

  4. #4
    Join Date
    Feb 2010
    Posts
    4

    Angry Another Error

    Now after some more debbuging i get

    Parse error: syntax error, unexpected T_VARIABLE in /home/a9765945/public_html/search.php on line 44


    here is the code after debbuging:
    Code:
    <html>
    <head>
    <title>wingot</title>
    </head>
    </body>
    <?php
    
    //get data
    $search = $_GET['q'];
    //html header
    echo "<center><form action='search.php' method='GET'><a href='index.php'><img src='images/logo.png' alt='wingot' border='0' width='200' height='50' style='vertical-align:middle'></a>&nbsp&nbsp<input type='text' size='50' name='q'>&nbsp<input type='submit' value='search'></center><hr hight='1'>";
    echo "<table border='0' width=100%><tr width=100%><td>You searched for: $search</td><td align=right>Number of results: ";
    //connect to database
    @msql_connect("mysql15.**********.com","a9765945_wingot","pilgrim008")or die(mysql_error());
    @msql_select_db("a9765945_wingot")or die(mysql_error());
     //explode search term
     $search_exploded = explode(" ",$search);
     
    foreach ($search_exploded as $search_each){
     //construct query
     $x++;
     if ($x==1)
     $construct .= "Keywords LIKE '%$search_each%'";
     else
      $construct .= "OR Keywords LIKE '%$search_each%'";
     }
    
    $construct = "SELECT * FROM search WHERE $construct";
    $run = mysql_query($construct);
    
    $found = mysql_num_rown($run);
    
    if ($found==0)
    echo "0</td></tr></table><br/>";
    else
    {
    echo "$found</td></tr></table><br/>";
    }
    
    while ($runrows = mysql_fetch_addoc($run)) 
    (
    //get data
    $title = $runrows['title']
    $desc = $runrows['description'];
    $url = $runrows['url'];
    
    echo "
    <b><a href='$url' color = 'black'>$title</a></b><br/>
    $desc<br/>
    <a href='$url'>$url</a>
    ";
    
    )
    
    ?>
    </body>
    </html>

  5. #5
    Join Date
    Nov 2008
    Posts
    2,477
    It's the same issue as NogDog posted above, you are missing a semi colon on the previous line.

  6. #6
    Join Date
    Feb 2010
    Posts
    4

    Angry Then i get this

    if i do what you just said it comes up with:


    Parse error: syntax error, unexpected ';' in /home/a9765945/public_html/search.php on line 43

  7. #7
    Join Date
    Aug 2004
    Location
    Ankh-Morpork
    Posts
    19,604
    You while() loop toward the end needs to use curly braces instead of parentheses around the code block that is looped:
    PHP Code:
    <html>
    <head>
    <title>wingot</title>
    </head>
    </body>
    <?php
    //get data
    $search $_GET['q'];
    //html header
    echo "<center><form action='search.php' method='GET'><a href='index.php'><img src='images/logo.png' alt='wingot' border='0' width='200' height='50' style='vertical-align:middle'></a>&nbsp&nbsp<input type='text' size='50' name='q'>&nbsp<input type='submit' value='search'></center><hr hight='1'>";
    echo 
    "<table border='0' width=100%><tr width=100%><td>You searched for: $search</td><td align=right>Number of results: ";
    //connect to database
    @msql_connect("mysql15.**********.com""a9765945_wingot""pilgrim008") or die(mysql_error());
    @
    msql_select_db("a9765945_wingot") or die(mysql_error());
    //explode search term
    $search_exploded explode(" "$search);
    foreach(
    $search_exploded as $search_each) {
       
    //construct query
       
    $x++;
       if (
    $x == 1$construct.= "Keywords LIKE '%$search_each%'";
       else 
    $construct.= "OR Keywords LIKE '%$search_each%'";
    }
    $construct "SELECT * FROM search WHERE $construct";
    $run mysql_query($construct);
    $found mysql_num_rown($run);
    if (
    $found == 0) echo "0</td></tr></table><br/>";
    else {
       echo 
    "$found</td></tr></table><br/>";
    }
    while (
    $runrows mysql_fetch_assoc($run)) {
       
    //get data
       
    $title $runrows['title'];
       
    $desc $runrows['description'];
       
    $url $runrows['url'];
       echo 
    "
    <b><a href='
    $url' color = 'black'>$title</a></b><br/>
    $desc<br/>
    <a href='
    $url'>$url</a>
    "
    ;
    }
    ?>
    </body>
    </html>
    "Please give us a simple answer, so that we don't have to think, because if we think, we might find answers that don't fit the way we want the world to be."
    ~ Terry Pratchett in Nation

    eBookworm.us

  8. #8
    Join Date
    Feb 2010
    Posts
    4

    Angry it does not display results

    after changing the code it now does not display any results.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles