[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с удалением записей из бд
extended
Доброго времени суток. У меня возникла такая проблема: У меня есть файл *csv. Мне надо его содержание импортировать в базу данных. Это я сделал. Но мне еще надо реализовать возможность удаления записей. Вот тут как раз проблема. У меня не получилось это сделать. Подскажите, как это можно реализовать? p.s. пробовал и удалять по id и генерировать ссылку для удаления, результат один - отрицателен.
вот сама форма select.php
<head>
<meta
http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>
Untitled Document</title>
</head>
<body>
<?php

define('DB_HOST','localhost');
define('DB_USER', 'root');
define('DB_PASS', '');
define('DB_NAME', 'table');
$link = mysql_connect(DB_HOST, DB_USER, DB_PASS) or die("Не могу подключиться к базе данных!");
mysql_query('SET NAMES cp1251') or die("Не могу настроить кодировку базы данных!");
mysql_select_db(DB_NAME) or die("Не могу выбрать базу данных!");
$query = "SELECT * FROM `table`.`table1`";
$res = mysql_query($query) or die(mysql_error());
$row = mysql_num_rows($res);
echo ("
<table border=
\"1\" cellpadding=\"0\" cellspacing=\"0\">
<tr style=
\"border: solid 1px #000\">
<td><b>#</b></td>
<td align=
\"center\"><b>имя</b></td>
<td align=
\"center\"><b>фамилия</b></td>
<td align=
\"center\"><b>отчество</b></td>
<td align=
\"center\"><b>мыло</b></td>
<td align=
\"center\"><b>адрес</b></td>
<td align=
\"center\"><b>Удаление</b></td>
</tr>
"
);

while ($row = mysql_fetch_array($res)) {
echo "<tr>\n";
echo "<td>".$row['id']."</td>\n";
echo "<td>".$row['name']."</td>\n";
echo "<td>".$row['fam']."</td>\n";
echo "<td>".$row['otch']."</td>\n";
echo "<td>".$row['e-mail']."</td>\n";
echo "<td>".$row['adres']."</td>\n";
/* Генерируем ссылку для удаления поля */
echo "<td><a name=\"del\" href=\"select.php?del=".$row['id']."\">Удалить</a></td>\n";
echo "</tr>\n";
}
echo ("</table>\n");
mysql_close($link); ?>
<br /><br /><br />
<form
action="dl.php" method="post" enctype="multipart/form-data">
<input
type="file" name="filename"><br>
<input
type="submit" name="dl" value="Загрузить"><br>
</form>
</body>
</html>


dl.php
<head>
<meta
http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>
Untitled Document</title>
</head>

<body>
<?php

define('DB_HOST','localhost');
define('DB_USER', 'root');
define('DB_PASS', '');
define('DB_NAME', 'table');
$link = mysql_connect(DB_HOST, DB_USER, DB_PASS) or die("Не могу подключиться к базе данных!");
mysql_query('SET NAMES cp1251') or die("Не могу настроить кодировку базы данных!");
mysql_select_db(DB_NAME) or die("Не могу выбрать базу данных!");
$temp="files/"; //Временное хранилище файлов
?>

<?php

if (copy($_FILES['filename']['tmp_name'], "files/".$_FILES['filename']['name']))
{
echo("Import for file <b>".$_FILES["filename"]["name"]."</b> succesfull");
echo("<br>Size of file ");
echo($_FILES["filename"]["size"]." byte<br><br>");
$fsize=$_FILES["filename"]["size"];
}
else
{
echo("Error dl");
}
$adr=$temp.$_FILES['filename']['name'];

$columns = "`name`,`fam`,`otch`,`e-mail`,`adres`";
if ( ($fd = fopen($adr, "r") ) !== FALSE ) {
while ( ($data_o = fgetcsv($fd, 1000, ";")) !== FALSE) {
$insertValues = array();
foreach( $data_o as $v ) {
$insertValues[]="'".addslashes(trim($v))."'";
}
$values=implode(',',$insertValues);
$sql = "INSERT INTO `table`.`table1` ( $columns ) VALUES ( $values )";
mysql_query($sql) or die('SQL ERROR:'.mysql_error());
}
}

fclose($fd);
mysql_close($link);
?>
<input
type="button" value="Back" onclick="location.href='select.php'" />
</body>
</html>


Хотелось бы, чтоб при нажатии ссылки "Удалить" (можно кнопку сделать, не имеет значения..или еще как-нить) удалялась определенная запись из бд..



Спустя 8 минут, 22 секунды (2.12.2010 - 15:19) vinnie написал(а):
а где запрос на удаление?

Спустя 35 минут, 4 секунды (2.12.2010 - 15:54) extended написал(а):
пардон :(
вот он

$del = $query = "DELETE from `table`.`table1` WHERE `table1`.`id` = '$del' "; 
mysql_query($query) or die(mysql_error());
$query = "SELECT * FROM `table`.`table1`";
$res = mysql_query($query) or die(mysql_error());
$row = mysql_num_rows($res);

Спустя 9 минут, 16 секунд (2.12.2010 - 16:03) inpost написал(а):
почему просто не сделать:
DELETE FROM `table` WHERE `id` = '".$del."'

Спустя 7 минут, 49 секунд (2.12.2010 - 16:11) extended написал(а):
Потому что почему то не работает так..

Спустя 2 минуты, 33 секунды (2.12.2010 - 16:13) inpost написал(а):
extended
Код ошибки давай, возвращает true or false запроса? Высвечивается ли mysql_error ?

Спустя 16 минут, 6 секунд (2.12.2010 - 16:30) extended написал(а):
Notice: Undefined variable: del in ..\select.php on line 21
вот эта 21 строка
$del = $query = "DELETE FROM `table`.`table1` WHERE `id` = '".$del."'";

mysql_error не высвечивается


Спустя 33 секунды (2.12.2010 - 16:30) linker написал(а):
А в $del что находится? А то не видно каким образом оно появляется в программе. Вся трабла в $del, а не в запросе.

Спустя 3 часа, 25 минут, 25 секунд (2.12.2010 - 19:56) extended написал(а):
Спасибо, со всем разобрался.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.