|
|
|
| есть простая таблица типа
table
id_name
name
data
теперь вопрос, как построить запрос к БД что бы данные из неё открывались в окне с адресом типа http://site/inf.php?name=вася | |
|
|
|
|
|
|
|
для: DreadfulS
(17.10.2006 в 13:14)
| | Для этого можно воспользоваться примерно таким скриптом
<?php
// Экранируем спец-символы
if (!get_magic_quotes_gpc()) $_GET['name'] = mysql_escape_string($_GET['name']);
$query = "SELECT * FROM tbl WHERE name = '$_GET[name]'";
$tbl = mysql_query($query);
if(mysql_num_rows($tbl))
{
while($table = mysql_fetch_array($tbl))
{
echo $table['table']."<br>"
echo $table['id_name']."<br>"
echo $table['name']."<br>"
echo $table['date']."<br>"
}
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(17.10.2006 в 14:04)
| | попробывал сделать по образу и подобию:
таблица client
id_client int(11) auto_increment
name tinytext
data text
pos int(11) 0
файлы записи
addinf.php
<?php
// соединение с БД
require_once("../config.php");
if(!isset($_POST['name'])) links($_POST['id_name'], "нет наименования");
// замена кавычек
$_POST['name'] = str_replace("'","`",$_POST['name']);
$_POST['data'] = str_replace("'","`",$_POST['data']);
// запрос
$query = "INSERT INTO client VALUES (
NULL,
'".$_POST['name']."',
'".$_POST['data']."',
".$_POST['table'].",
".$_POST['pos'].",
".$_POST['id_name'].")";
if(mysql_query($query)) {
} else puterror("ошибка добавления");
?>
|
addinfform.php
<?php
///////////////////////////////////////////////////
// Устанавливаем соединение с базой данных
require_once("../config.php");
if(!isset($button)) $button = "Добавить";
if(!isset($action)) $action = "addinf.php";
// Если позиция товарной позиции не передана
// назначаем ей последнюю позицию
if(!isset($pos))
{
$query = "SELECT MAX(pos) FROM client
WHERE id_name=".$_GET['id_name'];
$num = mysql_query($query);
if($num) $pos = mysql_result($num,0) + 1;
}
?>
<form action=<?php echo $action; ?> method=post>
<table>
<tr><td><p class=zag2>Наименование</td><td><input size=19 class=input type=text name=name value='<?php echo $name; ?>'></td></tr>
<tr><td><p class=zag2>Данные</td><td><input size=19 class=input type=text name=data value='<?php echo $data; ?>'></td></tr>
<tr><td><p class=zag2>табле</td><td><input size=19 class=input type=text name=table value='<?php echo $table; ?>'></td></tr>
<tr><td><p class=zag2>Позиция</td><td><input size=3 class=input type=text name=pos value='<?php echo $pos; ?>'></td></tr>
<tr><td></td><td><input class=button type=submit value=<?php echo $button; ?>></td></tr>
</table>
</form>
|
фаил просмотра данных
inf.php
<?php
// Экранируем спец-символы
if (!get_magic_quotes_gpc()) $_GET['name'] = mysql_escape_string($_GET['name']);
$query = "SELECT * FROM client WHERE name = '$_GET[name]'";
$client = mysql_query($query);
if(mysql_num_rows($client))
{
while($table = mysql_fetch_array($client))
{
echo $table['table']."<br>"
echo $table['id_name']."<br>"
echo $table['name']."<br>"
echo $table['date']."<br>"
}
}
?>
|
выдаёт ошибку записи в БД
а если посмотреть имеющееся в БД то просто выдаёт пустой лист
в чём моя ошибка? если можно по подробнее
заранее спасибо. | |
|
|
|
|
|
|
|
для: DreadfulS
(17.10.2006 в 20:01)
| | Измените строку
<?php
} else puterror("ошибка добавления");
?>
|
на
<?php
} else puterror("ошибка добавления - ".mysql_error);
?>
|
Что теперь выводится? | |
|
|
|
|
|
|
|
для: cheops
(17.10.2006 в 21:45)
| | ошибка добавления - mysql_error | |
|
|
|
|
|
|
|
для: DreadfulS
(17.10.2006 в 23:09)
| | Извиняюсь, поторопился :))) конечно же я имел в виду функцию mysql_error()
<?php
} else puterror("ошибка добавления - ".mysql_error());
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(18.10.2006 в 00:46)
| | ошибка добавления - 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 ' , )' at line 5(7) - в зависимости от заполнения полей | |
|
|
|
|
|
|
|
для: DreadfulS
(18.10.2006 в 09:20)
| | У вас передаются не все параметры - в этом можно убедиться, если вы выведите запрос в окно браузера
| |
|
|
|
|
|
|
|
для: cheops
(18.10.2006 в 11:31)
| | хм... передаю все, но передаются не все, тогда вопрос, играет ли роль в каком порядке передаются поля из формы в БД или нет, поскольку порядок записи и порядок полей в БД разнятся? | |
|
|
|
|
|
|
|
для: DreadfulS
(18.10.2006 в 15:56)
| | Нет при использовании SELECT-запроса порядок следования полей не имеет значения, в INSERT-запросе имеет (однако синтаксис запроса позволяет его переопределить). | |
|
|
|
|
|
|
|
для: cheops
(18.10.2006 в 16:41)
| | с внесением данных в БД разобрался, а вот первоначальный вопрос остался тёмной лошадкой
<?php
// Экранируем спец-символы
if (!get_magic_quotes_gpc()) $_GET['name'] = mysql_escape_string($_GET['name']);
$query = "SELECT * FROM client WHERE name = '$_GET[name]'";
$client = mysql_query($query);
if(mysql_num_rows($client))
{
while($table = mysql_fetch_array($client))
{
echo $table['table']."<br>"
echo $table['id_name']."<br>"
echo $table['name']."<br>"
echo $table['data']."<br>"
}
}
?>
|
так и не работает:(
http://site/inf.php?name=(что то там) выдаёт пустую страницу, хотя все данные в БД имеются | |
|
|
|
|
|
|
|
для: DreadfulS
(18.10.2006 в 18:13)
| | После запроса
<?php
$client = mysql_query($query);
?>
|
добавьте проверку
<?php
$client = mysql_query($query);
if(!$client) exit("Ошибка - ".mysql_error()."<br>Запрос - ".$query);
?>
|
Что теперь выводится? | |
|
|
|
|
|
|
|
для: cheops
(18.10.2006 в 22:48)
| | вообще ничего, так же пустая страница
сама ссылка запроса
http://dreadfuls.ru/Site/admin/catalog/inf.php?name=admin
таблица в базе client
table | id_name | name | data
таблица 1 admin данные
давайте разберём на примере вашего форума
файл info.php
<?php
// Устанавливаем соединение с базой данных
require_once("config.php");
// Извлекаем информацию из строки запроса
$id_author = $_GET['id_author'];
$id_forum = $_GET['id_forum'];
if(!preg_match("|^[\d]+$|",$id_author)) exit();
if(!preg_match("|^[\d]+$|",$id_forum) && !empty($id_forum)) exit();
// Извлекаем информацию о посетителе
$query = "SELECT * FROM authors
WHERE id_author=$id_author";
$ath = mysql_query($query);
if($ath)
{
$author = mysql_fetch_array($ath);
?>
<p class=linkbackbig><a href="javascript: history.back()">Вернуться назад</a></p>
<?php
} else puterror("Ошибка при обращении к базе авторов");
?>
|
например $ath = mysql_query($query); почему $ath, откуда он взялся не пойму? | |
|
|
|