|
|
|
| В том форуме cheops выложил скрипт для удаления нескольких записей
<form action=handler.php method=post>
<input type='checkbox' name='type[]' value='1'>Первый флажок<br>
<input type='checkbox' name='type[]' value='2'>Второй флажок<br>
<input type='checkbox' name='type[]' value='3'>Третий флажок<br>
<input type='checkbox' name='type[]' value='4'>Четвёртый флажок<br>
<input type='checkbox' name='type[]' value='5'>Пятый флажок<br>
<input type='checkbox' name='type[]' value='6'>Шестой флажок<br>
<input type='checkbox' name='type[]' value='7'>Седьмой флажок<br>
<input type=submit>
</form>
|
и его обработчик
<?php
// Удалить сразу несколько записей можно при
// помощи запроса "DELETE FROM base WHERE id IN (1,3,5,7)"
// Получаем список отмеченных флажков
$type = $_POST['type'];
if(!empty($type))
{
// Начинаем формировать переменную, содержащую этот список
// в формате "(3,5,6,7)"
$query = "(";
foreach($type as $val) $query .= "$val,";
// Удаляем последнюю запятую, заменяя её закрывающей скобкой )
$query = substr($query, 0, strlen($query) - 1).")";
// Завершаем формирование SQL-запроса на удаление
$query = "DELETE FROM base WHERE id IN ".$query;
// Выполняем запрос
if(!mysql_query($query))
{
echo mysql_error()."<br>";
echo $query."<br>";
}
}
?>
|
Код прикрасно работает, но я хотел бы теперь сделать тоже самое но для вывода этих нескольких записей.
Но понять не могу как должен выглядеть запрос например так что ли?
DELETE FROM base WHERE id=2 and id=4
|
| |
|
|
|
|
|
|
|
для: Artemy
(13.10.2004 в 15:52)
| | Выборка происходит таким же самым образом, только вместо DELETE ставим соответственно SELECT:
SELECT FROM base WHERE id IN (1,3,5,7)
|
P.S. Как с помощью запроса DELETE ты хотел что-то вывести??? | |
|
|
|
|
|
|
|
для: Igorek
(13.10.2004 в 19:18)
| | Нет такой запрос не работает!
Как это "с помощью запроса DELETE что-то вывести" разве это возможно ?
А вообще я хотел сделать то же самое что и вышенаписаном коде, но только что бы не удалялось, а выводилось эти значения, т.е.
SELECT * FROM base WHERE id = $id;
|
| |
|
|
|
|
|
|
|
для: Artemy
(14.10.2004 в 10:23)
| | На самом деле имелся ввиду запрос:
SELECT * FROM base WHERE id IN (1,3,5,7)
|
| |
|
|
|
|
|
|
|
для: cheops
(14.10.2004 в 10:57)
| | Это вопрос, если да, то да, имелся ввиду этот запрос! | |
|
|
|
|
|
|
|
для: Artemy
(14.10.2004 в 11:04)
| | Нет, просто, у Igorek в запросе забыта *, его следует использовать в этом варианте... | |
|
|
|
|
|
|
|
для: Artemy
(14.10.2004 в 11:04)
| | Блин, совсем запутался!
Вот есть код , а я хочу вывести все значения строчки из БД где id=$val, пытался сделать так
<?php
include "../config.php";
$actionn = $_POST["actionn"];
$type = $_POST['type'];
if(!empty($type))
{
foreach($type as $val)
{
$query = "select * from sklad where id = $val ";
if(!mysql_query($query))
{
echo mysql_error()."<br>";
echo $query."<br>";
}
else
{
while($sel = mysql_fetch_array($query))
{
echo "<p>" .$sel['type']. "</p";
}
}
}
}
else
{
echo ("Список не получен !");
exit;
}
?>
|
но ничего не получается! | |
|
|
|
|
|
|
|
для: Artemy
(14.10.2004 в 11:15)
| | Прошу прошения то есть вот так
<?php
include "../config.php";
$actionn = $_POST["actionn"];
$type = $_POST['type'];
if(!empty($type))
{
$query = "(";
foreach($type as $val) $query .= "$val,";
// Удаляем последнюю запятую, заменяя её закрывающей скобкой )
$query = substr($query, 0, strlen($query) - 1).")";
// Завершаем формирование SQL-запроса на удаление
$query = "SELECT * FROM sklad WHERE id IN ".$query;
if(!mysql_query($query))
{
echo mysql_error()."<br>";
echo $query."<br>";
}
else
{
while($sel = mysql_fetch_array($query))
{
echo "<p>" .$sel['id']. "</p";
}
}
}
else
{
echo ("Список не получен !");
exit;
}
?>
|
А в ответ броузер пишет
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in E:\www\admin\delrec.php on line 20
|
Что это значит, а вообще правильно ли я сделал это! | |
|
|
|
|
|
|
|
для: Artemy
(14.10.2004 в 11:26)
| | Вы передаёте mysql_fetch_array() SQL-запрос, а ей нужно передать дескритор, возвращённый mysql_query(), поэтому-то интерпретатор и возмущается:
<?php
include "../config.php";
$actionn = $_POST["actionn"];
$type = $_POST['type'];
if(!empty($type))
{
$query = "(";
foreach($type as $val) $query .= "$val,";
// Удаляем последнюю запятую, заменяя её закрывающей скобкой )
$query = substr($query, 0, strlen($query) - 1).")";
// Завершаем формирование SQL-запроса на удаление
$query = "SELECT * FROM sklad WHERE id IN ".$query;
$res = mysql_query($query);
if(!$res)
{
echo mysql_error()."<br>";
echo $query."<br>";
}
else
{
while($sel = mysql_fetch_array($res))
{
echo "<p>" .$sel['id']. "</p";
}
}
}
else
{
echo ("Список не получен !");
exit;
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(14.10.2004 в 11:46)
| | Спасибо большое тебе или вам Cheops!
Но я сам только что до этого допёр!
Во вот так все работает!
<?php
include "../config.php";
$actionn = $_POST["actionn"];
$type = $_POST['type'];
if(!empty($type))
{
foreach($type as $val)
{
$sql = mysql_query("SELECT * FROM sklad WHERE id=$val ;");
if($sql)
{
while($triall = mysql_fetch_array($sql))
{
echo "<table><tr align=center bgcolor=#E2FFE1 bordercolor=#E2FFE1>
<td align=left height=20><b>".$triall['model']."</b></td>
<td>".$triall['number']."</td>
<td>".$triall['plata018']."</td>
<td>".$triall['plata016']."</td>
<td>".$triall['data']."</td>
<td>".$triall['pr']."</td>
</tr>";
}
}
else
{
echo mysql_error()."<br>";
echo $query."<br>";
}
}
}
else
{
echo ("Список не получен !");
exit;
}
?>
|
| |
|
|
|
|
|
|
|
для: Artemy
(13.10.2004 в 15:52)
| | Вместо and - or нужно
SELECT * FROM base WHERE id=2 or id=4;
|
| |
|
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(14.10.2004 в 10:37)
| | Да спрашивал, но Вы же сделали этот форум, вот сдесь я и хочу продолжить тему!
Может поможите, сидел мочался хотел оформить запрос такого рода как и выше написано, но ничего не получается! | |
|
|
|
|
|
|
|
для: Artemy
(14.10.2004 в 10:50)
| | Так а... Не понял тогда.
Чем запрос с or не подходил, который в вашей теме?
и этот тоже работает
SELECT * FROM base WHERE id IN (1,3,5,7)
|
Что то мы запутались в сообщениях :) | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(14.10.2004 в 11:12)
| | Ну... его формировать не очень удобно, да и по размеру он получится больше, что критично если Web-сервер и сервер MySQL не на одной машине расположены... вообще лучше в таких случаях IN использовать. | |
|
|
|