Помощ с SQL заявка

d0oMch0

Registered
Значи правя 1 simple paging но имам нужда от малко помощ , знам че проблема ми е в SQL заявката , но не се сещам какво точно да променя.
PHP:
<?php
error_reporting(E_ALL ^ E_NOTICE);

mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db('diplomna') or die(mysql_error());

define('RESULTS_PER_PAGE', 2);
$page_num=trim($_GET['page_num']);
$search_terms=trim($_GET['search']);

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html>
 <head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
  <title>Debug</title>
 </head>
 <body>
 <form action="debug.php" method="get">
  <input type="text" name="search" value="<?php echo $search_terms?$search_terms:''; ?>" />
  <button type="submit">Search</button>
 </form>
 <?php
  if ($search_terms) {
   // za uspeshnoto reshavane triabva da promenite neshto po zaiavkata
   $sql_get_results="SELECT * FROM results WHERE title LIKE '%$search_terms%' LIMIT RESULTS_PER_PAGE*$page_num,RESULTS_PER_PAGE";
   $sql_get_results_res=mysql_query($sql_get_results);
   $row = mysql_num_rows($sql_get_results_res) or die (mysql_error()); 
   echo "$row";
   if (mysql_num_rows($sql_get_results_res)!=0) {
    while ($search_result=mysql_fetch_assoc($sql_get_results_res)) {
     echo '<p>'.$search_result['title'].'</p>';
    }
    
    $sql_get_results_num="SELECT COUNT(id) FROM results WHERE title LIKE '%$search_terms%'";
    $sql_get_results_num_res=mysql_query($sql_get_results_num);
    $results_num=mysql_fetch_array($sql_get_results_num_res);
    $pages_num=$results_num[0]/RESULTS_PER_PAGE;
    
    echo '<a href="debug.php?search='.$search_terms.'&page_num='.($page_num-1).'">< Prev</a> | ';
    for($i=0;$i<=$pages_num;$i++) {
     echo '<a href="debug.php?search='.$search_terms.'&page_num='.$i.'">Page '.($i+1).'</a> | ';
    }
    echo '<a href="debug.php?search='.$search_terms.'&page_num='.($page_num+1).'">Next ></a>';
   } else {
    echo '<h1>No results found.</h1>';
   }
  }
 ?>
 </body>
</html>
 
пробвай така :
PHP:
$sql_get_results="SELECT * FROM results WHERE title LIKE '%$search_terms%' LIMIT '.(RESULTS_PER_PAGE*$page_num).', '.RESULTS_PER_PAGE.'";

не си сложил една кавичка ... знам ,че е умишлено , но това някой път може да ти е грешката.. след като не ни даваш да видим кво пише в грешката няма как да ти помогнем :) :?: :?:
 
Оправих заявката(промених и кода в 1-вия ми пост за да се види какво съм поправил по него) но продължавам да имам грешка :
Код:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\diplomna\debug.php on line 30
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'RESULTS_PER_PAGE*,RESULTS_PER_PAGE' at line 1

Като line 30 се пада :

PHP:
$row = mysql_num_rows($sql_get_results_res) or die (mysql_error());
Не крия грешката просто не съобразих да я пасте ;)
... предложения? :)
 
$sql_get_results="SELECT * FROM results WHERE title LIKE '%$search_terms%' LIMIT RESULTS_PER_PAGE*$page_num,RESULTS_PER_PAGE";
Грешкати ти се показва, защото умножаваш в sql заявката. Просто задай RESULTS_PER_PAGE*$page_num като стойност на променлива преди заявката и след това си я слагаш(променливата) в sql-a.
 

Back
Горе