У меня есть две таблицы: createTable($link,'catalog','id int(8) NOT NULL AUTO_INCREMENT,author Varchar(32),title Varchar(64),pubyear int (4), price int (8),PRIMARY KEY(id)'); createTable($link,'basket','id int(11) NOT NULL auto_increment, customer varchar(32),goodsid int(11),quantity int(4),datetime VARCHAR(24) NOT NULL default 0,PRIMARY KEY (id)'); В таблице catalog храниться имеющийся товар(книги),а в таблице basket товар который конкретный пользователь добавил себе в карзину. Пользователь добавляет книги по одной в корзину.Когда переходит в корзину отображаеться все что он добавил,если какието книги он добавил несколько раз то пишеться их количество.Напротив каждой книги есть ссылка удалить,которая удаляет конкретную книгу из заказа. Теперь вопрос- как сделать,что бы если количество книг больше одной,то предлагалось указать сколько именно книг нужно удалить,и удалялось указанное количество??Тоесть ,в корзине есть книги за авторством Шекспир в количестве 3 штуки,нужно сделать,чтобы когда я нажал удалить ,предложило ввести количество которую нужно удалить,я ввел 2 ,меня перенаправило опять на корзину(basket.php),но там в строке количество уже было 1 Ниже мой код basket.php Код (Text): <?php $customer=$_SESSION['login']; ?> <table border="1" cellpadding="5" cellspacing="0" width="100%"> <tr> <th>N п/п</th> <th>Автор</th> <th>Название</th> <th>Год издания</th> <th>Цена, руб.</th> <th>Количество</th> <th>Удалить</th> </tr> <?php $number=0; //Запрос выбирает заказ пользователя и если есть одинаковые товары,то считает их количество $result=mysqli_query($link,"SELECT author, title, pubyear, price, basket.id, goodsid,COUNT( goodsid ) AS quantity FROM catalog, basket WHERE customer = '$customer' AND catalog.id = basket.goodsid GROUP BY author, title"); //Выводит этот запрос на страницу while($item=mysqli_fetch_assoc($result)){ //номер по порядку $number++; ?> <tr> <td><?=$number?></td> <td><?=$item['author']?></td> <td><?=$item['title']?></td> <td><?=$item['pubyear']?></td> <td><?=$item['price']?></td> <td><?=$item['quantity']?></td> //переход на delBasket.php <td><a href="delBasket.php?del=<?=$item['goodsid']?>">Удалить</a></td> </tr> <?php } echo "</table>"; ?> При нажатии на удалить переходит на delBasket: Код (Text): <?php //id удаляемого заказа $del=$_GET['del']*1; $customer=$_SESSION['login']; $result=mysqli_query($link,"SELECT author, title, pubyear, price, basket.id, goodsid,COUNT( goodsid ) AS quantity FROM catalog, basket WHERE customer = '$customer' AND catalog.id = basket.goodsid AND goodsid=$del GROUP BY author, title"); $res=mysqli_fetch_assoc($result); //если количество больше одного,указать какое количество удалить if($res['quantity']>1){ echo "<form method='post' action='basket.php'> <input type='number' name='quant'> <input type='submit' value='ok' name='send'> </form>"; } //удаляем весь заказ else{ queryMysql($link,"Delete FROM basket WHERE goodsid=$del"); } ?>
По моему нескромному мнению, ты бессмысленно усложняешь задачу. Разве такое встречается где-нибудь, чтобы моно было удалить N экземпляров? Бывает так: редактирование количества в каждой позиции + удаление позиции целиком.
Ты натолкнул меня на мысль,все сделать немного по-другому. Пусть удаляется целиком.Но тогда при добавлении сделать возможность указать количество книг.Я попробывал в <input> указывать количество,но это же в форму пихать нужно,submit добавлять,а это уже не очень красиво смотрится ,да и нормально достать из конкретного инпата значение не вышло. Код (Text): <table border="1" cellpadding="5" cellspacing="0" width="100%"> <tr> <th>Автор</th> <th>Название</th> <th>Год издание</th> <th>Цена</th> <th>Количество</th> <th>В корзину</th> </tr> <?php $result=mysqli_query($link,"SELECT * FROM catalog"); $result=db2array($result); foreach ($result as $item){ ?> <tr> <td><?=$item['author']?></td> <td><?=$item['title']?></td> <td><?=$item['pubyear']?></td> <td><?=$item['price']?></td> [b]Как достать указанное количество??[/b] <td>#</td> <td><a href="addBasket.php?add=<?=$item['id']?>">В корзину</a> </td> </tr> <?php } ?> </table>