|
|
|
|
$count = mysql_numrows(mysql_query('SELECT * FROM table_name')) or die('Error! облом!');
|
у меня есть скрипт, но он расчитан на то, что в нем указывается название таблицы. А мне нужно сделать так, чтобы вместо названия таблицы была конструкция ".$_POST['searchtype']."
которая в данном случае не работает из-за наличия скобок. Как мне корректно вставить ".$_POST['searchtype']."? | |
|
|
|
|
|
|
|
для: Vadim777
(28.09.2005 в 18:56)
| | select формируй отдельно
$sql='SELECT * FROM ' . $_POST['searchtype'] ;
$count = mysql_numrows(mysql_query($sql)) or die('Error! облом!') ;
типа так | |
|
|
|
|
|
|
|
для: Vadim777
(28.09.2005 в 18:56)
| | $_POST['searchtype'] является синонимом переменной $searchtype. Т.е. $_POST[''] можно опустить (не всем учебникам надо верить). Так что вы смело можете сделать так:
<?
$count = mysql_numrows(mysql_query("SELECT * FROM $searchtype")) or die("Error! облом!");
?>
|
И заметьте - очень важно заменить одинарные кавычки на двойные, т.к. в одинарных кавычках переменные не будут интерпретироваться. | |
|
|
|
|
|
|
|
для: Vadim777
(28.09.2005 в 18:56)
| | У вас одинарные кавычки, поэтому и при вставке следует использовать одинарные кавычки
<?php
$count = mysql_numrows(mysql_query('SELECT * FROM '.$_POST['searchtype'])) or die('Error! облом!');
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(29.09.2005 в 00:31)
| | если честно я бьюсь над постраничной навигацией, этот скрипт я скачал с PHP.com.ua.
Когда я вставляю название таблицы в скрипт - скрипт выводит как первую страницу, так и после нажатия на № 2 выводит вторую.
С моей конструкцией при помощи как cheopsa и himic (ddk - не работает), скрипт работает только на первую страницу, когда клацаешь по странице №2 - облом.
Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in
|
| |
|
|
|
|
|
|
|
для: Vadim777
(29.09.2005 в 10:33)
| | Всё правильно, так как на второй странице $_POST['searchtype'] уже не сохраняются, для организации постраничной навигации после передачи данных из метода POST необходимо использовать сессии, чтобы данные из формы были доступны на других страницах. | |
|
|
|
|
|
|
|
для: cheops
(29.09.2005 в 12:47)
| |
echo "страницы: ";
echo " <a title='Первая страница' class=menuinfo href=index.php?searchtype = $_POST['searchtype']?page=1?
><<</a> ";
if($page > 1) echo " <a title='Первая страница' class=menuinfo href=index.php?searchtype = $_POST['searchtype']?page=".($page - 1)."><</a> ";
for($i = $str_begin; $i<=$str_end; $i++)
{
if($page == $i)
echo " $i ";
else
echo " <a title='Открыть страницу' font COLOR='#fffff' class=menuinfo href=index.php?searchtype = $_POST['searchtype']?page=".$i.">$i</a> ";
}
if($page < $number) echo " <a title='Первая страница' class=menuinfo href=index.php?searchtype = $_POST['searchtype']?page=".($page + 1).">></a> ";
echo " <a title='Первая страница' class=menuinfo href=index.php?searchtype = $_POST['searchtype']?page=$number>>></a> ";
|
Я возвращаюсь к теме постраничная навигация. Как в этот код вогнать информацию, я сделал так, но это неправильно???? | |
|
|
|
|
|
|
|
для: Vadim777
(29.09.2005 в 17:48)
| | Следует в начале поставить обработчик
<?php
session_start();
if(isset($_POST['searchtype'])) $_SESSION['searchtype'] = $_POST['searchtype'];
?>
|
А далее везде (в SQL-запросе, в ссылках) использовать $_SESSION['searchtype'] вместо $_POST['searchtype']
<?php
echo "страницы: ";
echo " <a title='Первая страница' class=menuinfo href=index.php?searchtype = $_SESSION['searchtype']?page=1?
><<</a> ";
if($page > 1) echo " <a title='Первая страница' class=menuinfo href=index.php?searchtype = $_SESSION['searchtype']?page=".($page - 1)."><</a> ";
for($i = $str_begin; $i<=$str_end; $i++)
{
if($page == $i)
echo " $i ";
else
echo " <a title='Открыть страницу' font COLOR='#fffff' class=menuinfo href=index.php?searchtype = $_POST['searchtype']?page=".$i.">$i</a> ";
}
if($page < $number) echo " <a title='Первая страница' class=menuinfo href=index.php?searchtype = $_SESSION['searchtype']?page=".($page + 1).">></a> ";
echo " <a title='Первая страница' class=menuinfo href=index.php?searchtype = $_SESSION['searchtype']?page=$number>>></a> ";
?>
|
$_POST-данные уже не перейдут на другую страницу, а сессия перейдёт.
PS Только приведённый код более чем странный - помоему ссылки сформированы ошибочно. | |
|
|
|
|
|
|
|
для: cheops
(29.09.2005 в 18:49)
| | я берусь делать, а на счет кода то, тот что указывался в самом начале из скрипта не очень интересного php.com.ua , а последний из Вашего скрипта, который приводился мною в теме о постраничной навигации, и взят из форума на этом сайте:
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=6833&page=1
И хотел бы поблагодарить cheops‘a за помощь и за то, что он успевание на всех фронтах. И хотел извиниться за сумбурное и некорректное изложение запросов о помощи! | |
|
|
|
|
|
|
|
для: Vadim777
(29.09.2005 в 18:58)
| | Да действительно этот код неправильный. У меня выводит при наличии 14 наименований товара, только 4. А на второй странице появляються теже четыре товара, что выводились на первой. | |
|
|
|
|
|
|
|
для: Vadim777
(29.09.2005 в 19:17)
| | У вас в SQL запросе используется конструкция LIMIT? Без неё постраничная навигация не получится... | |
|
|
|
|
|
|
|
для: cheops
(29.09.2005 в 22:25)
| |
mysql_select_db('comp');
$pnumber = 10;
< << 2 3 [4] 5 6 >> >
$linknumber = 2;
$page = $_GET['page'];
if($page < 1) $page = 1;
if(empty($page)) $page = 1;
$begin = ($page = 1)*$pnumber;
if(!empty($_POST['para']))
$tmp=" WHERE para<= '".$_POST['para']."'";
$select_sql = "SELECT * FROM ".$_SESSION['searchtype']."
$tmp ORDER BY customerid DESC
LIMIT $begin, $pnumber";
$result = MYSQL_QUERY($select_sql);
if(!$result) exit(mysql_error());
$query = "SELECT COUNT(*) FROM ".$_SESSION['searchtype']." ";
$ctg = mysql_query($query);
if(!$ctg) puterror
$total = mysql_result($ctg,0);
IF ($total == 0) {
PRINT "<CENTER><P>&;</CENTER>";
}
ELSEIF ($total > 0)
{
PRINT "<CENTER><P;: $total<BR><BR>";
WHILE ($arr = mysql_fetch_array($result))
{
$customerid = $arr['customerid'];
$name = $arr['name'];
$datum = $arr['datum'];
$para = $arr['para'];
$firma = $arr['firma'];
echo $datum.'<br> ;: ';
echo $name."<br> &#;: ";
echo $para."<br> ";
echo $firma."<br>";
echo "<p> <HR WIDTH=100% SIZE=2>";
$i++;
}
}
$number = (int)($total/$pnumber);
if((float)($total/$pnumber) - $number != 0) $number++;
if($page - $linknumber < 1) $str_begin = 1;
else $str_begin = $page - $linknumber;
if($page + $linknumber > $number) $str_end = $number;
else $str_end = $page + $linknumber;
echo ;: ";
echo ;' class=menuinfo href=result.comp.lviv.2.php?searchtype = $_SESSION['searchtype']?page=1?
><<</a> ";
if($page > 1) echo " <a title='&;' class=menuinfo href=result.comp.lviv.2.php?searchtype = $_SESSION['searchtype']?page=".($page - 1)."><</a> ";
for($i = $str_begin; $i<=$str_end; $i++)
{
if($page == $i)
echo " $i ";
else
echo " <a title=; ñòðàíèöó' font COLOR='#fffff' class=menuinfo href=result.comp.lviv.2.php?searchtype = $_SESSION['searchtype']?page=".$i.">$i</a> ";
}
if($page < $number) echo " <a title=';' class=menuinfo href=result.comp.lviv.2.php?searchtype = $_SESSION['searchtype']?page=".($page + 1).">></a> ";
echo " <a title=';' class=menuinfo href=result.comp.lviv.2.php?searchtype = $_SESSION['searchtype']?page=$number>>></a> ";
?>
|
| |
|
|
|
|
|
|
|
для: Vadim777
(30.09.2005 в 10:36)
| | В самом начале отсутствует
<?php
session_start();
if(isset($_POST['searchtype'])) $_SESSION['searchtype'] = $_POST['searchtype'];
?>
|
PS Такие здоровые листинги лучше прикреплять в виде отдельного файла. | |
|
|
|
|
|
|
|
для: cheops
(30.09.2005 в 13:09)
| |
<?php
Error_Reporting(E_ALL & ~E_NOTICE);
session_start();
if(isset($_POST['searchtype'])) $_SESSION['searchtype'] = $_POST['searchtype'];
$para= trim($para);
$_POST['para'] = $_POST['para'] + 0;
$searchtype = addslashes($searchtype);
@ $db = mysql_pconnect('localhost', 'root', '');
if (!$db)
{
echo .';
exit;
}
mysql_select_db('comp');
|
Это у меня верхняя часть скрипта mysql_select_db('comp'); с этого места начинается тот большой фрагмент. | |
|
|
|