προβλημα με php_self σε search για την επομενη σελιδα

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
lukilukg4
Δημοσιεύσεις: 13
Εγγραφή: 04 Σεπ 2007 11:01

προβλημα με php_self σε search για την επομενη σελιδα

Δημοσίευση από lukilukg4 » 06 Μάιος 2009 00:33

γεια σας παιδες,

χρησιμοποιω 2 αρχεια για την αναζητηση απο μια βαση Mysql. Ενα .html και ενα .php.

Το αρχειο .html ειναι

Κώδικας: Επιλογή όλων

<form name="form" action="search.php" method="get">
  <input type="text" name="q" />
  <input type="submit" name="Submit" value="Search" />
</form>
και το αρχειο .php ειναι:

Κώδικας: Επιλογή όλων

<?php

  // Get the search variable from URL

  $var = @$_GET&#91;'q'&#93; ;
  $trimmed = trim&#40;$var&#41;; //trim whitespace from the stored variable

// rows to return
$limit=10; 

// check for an empty string and display a message.
if &#40;$trimmed == ""&#41;
  &#123;
  echo "<p>Please enter a search...</p>";
  exit;
  &#125;

// check for a search parameter
if &#40;!isset&#40;$var&#41;&#41;
  &#123;
  echo "<p>We dont seem to have a search parameter!</p>";
  exit;
  &#125;

//connect to your database ** EDIT REQUIRED HERE **
mysql_connect&#40;"localhost","username","password"&#41;; //&#40;host, username, password&#41;

//specify database ** EDIT REQUIRED HERE **
mysql_select_db&#40;"database"&#41; or die&#40;"Unable to select database"&#41;; //select which database we're using

// Build SQL Query  
$query = "select * from the_table where 1st_field like \"%$trimmed%\"  
  order by 1st_field"; // EDIT HERE and specify your table and field names for the SQL query

 $numresults=mysql_query&#40;$query&#41;;
 $numrows=mysql_num_rows&#40;$numresults&#41;;

// If we have no results, offer a google search as an alternative

if &#40;$numrows == 0&#41;
  &#123;
  echo "<h4>Results</h4>";
  echo "<p>Sorry, your search&#58; &quot;" . $trimmed . "&quot; returned zero results</p>";

// google
 echo "<p><a href=\"http&#58;//www.google.com/search?q=" 
  . $trimmed . "\" target=\"_blank\" title=\"Look up 
  " . $trimmed . " on Google\">Click here</a> to try the 
  search on google</p>";
  &#125;

// next determine if s has been passed to script, if not use 0
  if &#40;empty&#40;$s&#41;&#41; &#123;
  $s=0;
  &#125;

// get results
  $query .= " limit $s,$limit";
  $result = mysql_query&#40;$query&#41; or die&#40;"Couldn't execute query"&#41;;

// display what the person searched for
echo "<p>You searched for&#58; &quot;" . $var . "&quot;</p>";

// begin to show results set
echo "Results";
$count = 1 + $s ;

// now you can display the results returned
  while &#40;$row= mysql_fetch_array&#40;$result&#41;&#41; &#123;
  $title = $row&#91;"1st_field"&#93;;

  echo "$count.&#41;&nbsp;$title" ;
  $count++ ;
  &#125;

$currPage = &#40;&#40;$s/$limit&#41; + 1&#41;;

//break before paging
  echo "<br />";

  // next we need to do the links to other results
  if &#40;$s>=1&#41; &#123; // bypass PREV link if s is 0
  $prevs=&#40;$s-$limit&#41;;
  print "&nbsp;<a href=\"$PHP_SELF?s=$prevs&q=$var\">&lt;&lt; 
  Prev 10</a>&nbsp&nbsp;";
  &#125;

// calculate number of pages needing links
  $pages=intval&#40;$numrows/$limit&#41;;

// $pages now contains int of pages needed unless there is a remainder from division

  if &#40;$numrows%$limit&#41; &#123;
  // has remainder so add one page
  $pages++;
  &#125;

// check to see if last page
  if &#40;!&#40;&#40;&#40;$s+$limit&#41;/$limit&#41;==$pages&#41; && $pages!=1&#41; &#123;

  // not last page so give NEXT link
  $news=$s+$limit;

  echo "&nbsp;<a href=\"$PHP_SELF?s=$news&q=$var\">Next 10 &gt;&gt;</a>";
  &#125;

$a = $s + &#40;$limit&#41; ;
  if &#40;$a > $numrows&#41; &#123; $a = $numrows ; &#125;
  $b = $s + 1 ;
  echo "<p>Showing results $b to $a of $numrows</p>";
  
?>
Το προβλημα μου ειναι οτι δεν πηγαινει στην επομενη σελιδα Next>> ετσι ωστε να δω τα επομενα αποτελεσματα παρα μονο εμφανιζει τα ιδια.

Νομιζω οτι το προβλημα πρεπει να ειναι στη σειρα

Κώδικας: Επιλογή όλων

echo "&nbsp;<a href=\"$PHP_SELF?s=$news&q=$var\">Next 10 &gt;&gt;</a>";
δηλαδη κατα την ανανεωση της σελιδας δεν παιρνει ξανα τις μεταβλητες...

Μηπως μπορειτε να βε βοηθησετε σε αυτο??? Ή ειναι καπου αλλου το λαθος

Tnx

Άβαταρ μέλους
Banavas
Script Master
Δημοσιεύσεις: 1367
Εγγραφή: 21 Νοέμ 2004 20:25
Επικοινωνία:

προβλημα με php_self σε search για την επομενη σελιδα

Δημοσίευση από Banavas » 06 Μάιος 2009 16:07

Βάλε έναν έλεγχο αν περνάνε οι τιμές των μεταβλητών και γράψε τι σου βγάζει το echo.

Κώδικας: Επιλογή όλων

<?php 

  // Get the search variable from URL 

  $var = @$_GET&#91;'q'&#93; ; 

// Βάλε εδώ έναν έλεγχο αν περνάνε οι τιμές των μεταβλητών 

echo "var = " . $var . " s = ". $s;

//.................
//.................
EDIT

Πρόσθεσε αυτό $s=$_GET['s'];

Κώδικας: Επιλογή όλων

// next determine if s has been passed to script, if not use 0 

// ---------ΕΔΩ----------------
$s=$_GET&#91;'s'&#93;;
//----------------------------
  if &#40;empty&#40;$s&#41;&#41; &#123; 
  $s=0; 
  &#125; 
Happy coding....
Μάρκος
http://lasernet.gr

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες