Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Таблица данных из MySql и кнопка купить)
 
 автор: Stunnets   (23.03.2016 в 23:36)   письмо автору
 
 

Здравствуйте, есть таблица в которую выводятся id, продавец, наименование и кол-во товара из бд, рядом с товаром
кнопка "купить" помогите прикрутить к каждой кнопке свой ID чтобы я мог прописать общее условие (что должно происходить при нажатии (списание средств и добавление товара)). Ни как не получается, подскажите куда в коде
нужно прописать условие и как назначить ID для каждой кнопки.

<?
$query 
"select * from st_rinok"
$result MYSQL_QUERY($query); 
$total_rows mysql_num_rows($result); 
if (!
$total_rows) { 
  print 
"<HTML><BODY><h1>Table $name is empty</h1></BODY></HTML>"
  return; 

$row mysql_fetch_row($result); 
$total_cols count($row);
print 
"<table class='table_price'>";
print 
"<caption>Рынок</caption>";  
print 
"<tr>"
echo 
'<tr>';
echo 
'<th>' .'</th>';
echo 
'<th>' .Продавец'</th>';
echo 
'<th>'.Товар.'</th>';
echo 
'<th>'.Кол.'</th>';
echo 
'<th>'.Цена.'</th>';
echo 
'<th>'.Купить.'</th>';
echo 
'</tr>';
echo 
'<tr>';
print 
"</tr>"
while(
$row mysql_fetch_row ($result)) { 
  
$i 0
  print 
"<tr>"
  while(
$i $total_cols){ 
    print 
"<td>"
    print 
$row[$i]; 
    print 
"</td>"
    
$i++; 
  } 
  print 
"<td>";
 print 
"<form method='POST'><input type='submit' / id= ? как то назначить/ name='button' value='Купить' /></form>";
   
//и где в коде прописать условие Что происходит при нажатии на кнопку.
    
print"</td>";
  print 
"</tr>"

mysql_free_result($result); 
echo 
'</tr>';

print 
"<HTML><BODY>"

$i=0
while(
$i $total_cols){ 
  print 
"<td>"
  print 
$row[$i]; 
  print 
"</td>"
  
$i++; 

print 
"</tr>"
while(
$row mysql_fetch_row ($result)) { 
  
$i 0
  print 
"<tr>"
  while(
$i $total_cols){ 
    print 
"<td>"
    print 
$row[$i]; 
    print 
"</td>"
    
$i++; 
  } 
  print 
"</tr>"

mysql_free_result($result); 
print 
"</TABLE></BODY></HTML>"


?>


  Ответить  
 
 автор: confirm   (24.03.2016 в 06:28)   письмо автору
 
   для: Stunnets   (23.03.2016 в 23:36)
 

Офигеть. Форма должна быть одна, а вот кнопок отправки формы может быть несколько, которая и может отправлять ID. А можно отправлять и группу выбранных одной кнопкой отправки.

  Ответить  
 
 автор: Stunnets   (24.03.2016 в 10:32)   письмо автору
 
   для: confirm   (24.03.2016 в 06:28)
 

Можете пример показать как работать с id в моем примере
<form method='POST'><input type='submit' / id= ? как то назначить/ name='button' value='Купить' /></form>";

хоть какие нибудь примеры таблицы товаров с кнопкой купить . Потому что новичок в программировании, смысл работы понимаю, а на практике сделать не получается. Можете показать пример работы скрипта. Из БД выводиться строка с товаром продавец id и кол-во как обьяснить кнопке что нужно выбрать именно ту строку на против которой она находится?

  Ответить  
 
 автор: confirm   (24.03.2016 в 16:25)   письмо автору
 
   для: Stunnets   (24.03.2016 в 10:32)
 

Если товар продается штучно, то до цикла

<form method="post" action="url">
<table>

while($row = mysql_fetch_row ($result)) {

далее в цикле выводятся строки таблицы, в которых помимо описания товара помещается чекбокс - выбранный будет передавать id товара выбранного для покупки, таким образом сервер получит массив выбранных для покупки товаров:

<label><input type="checkbox" name="good[]" value="здесь $row['имя_поля_идентификатора_товара_из_базы']" /> Выбарть для покупки</label>

}

<table>
<input type="submit" value="Купить" />
</form>

Если можно выбрать количество товара, тогда чекбокс заменить на поле типа text или number, его имя должно быть

good[здесь $row['имя_поля_идентификатора_товара_из_базы']]

тогда на сервере будут получен массив выбранных для покупки товаров, ключи которого будут их идентификаторами, а значения выбранное количество.

  Ответить  
 
 автор: Stunnets   (25.03.2016 в 01:16)   письмо автору
 
   для: confirm   (24.03.2016 в 16:25)
 

Пожалуйста помогите прикрутить Это непосредственно в сам скрипт


<?
$query 
"select * from st_rinok"
$result MYSQL_QUERY($query); 
$total_rows mysql_num_rows($result); 
if (!
$total_rows) { 
  print 
"<HTML><BODY><h1>Table $name is empty</h1></BODY></HTML>"
  return; 

$row mysql_fetch_row($result); 
$total_cols count($row);
print 
"<table class='table_price'>";
print 
"<caption>Рынок</caption>";  
print 
"<tr>"
echo 
'<tr>';
echo 
'<th>' .'</th>';
echo 
'<th>' .Продавец'</th>';
echo 
'<th>'.Товар.'</th>';
echo 
'<th>'.Кол.'</th>';
echo 
'<th>'.Цена.'</th>';
echo 
'<th>'.Купить.'</th>';
echo 
'</tr>';
echo 
'<tr>';
print 
"</tr>"
while(
$row mysql_fetch_row ($result)) { 
  
$i 0
  print 
"<tr>"
  while(
$i $total_cols){ 
    print 
"<td>"
    print 
$row[$i]; 
    print 
"</td>"
    
$i++; 
  } 
  print 
"<td>";
 print 
"<form action='rinok.php' method='post'><input type='submit' id='$id' name='button' value='Купить' /></form>";
    print
"</td>";
  print 
"</tr>"

mysql_free_result($result); 
echo 
'</tr>';

print 
"<HTML><BODY>"

$i=0
while(
$i $total_cols){ 
  print 
"<td>"
  print 
$row[$i]; 
  print 
"</td>"
  
$i++; 

print 
"</tr>"
while(
$row mysql_fetch_row ($result)) { 
  
$i 0
  print 
"<tr>"
  while(
$i $total_cols){ 
    print 
"<td>"
    print 
$row[$i]; 
    print 
"</td>"
    
$i++; 
  } 
  print 
"</tr>"

mysql_free_result($result); 
print 
"</TABLE></BODY></HTML>"


?>



Если можно выбрать количество товара, тогда чекбокс заменить на поле типа text или number, его имя должно быть

good[здесь $row['имя_поля_идентификатора_товара_из_базы']]

хочу сделать чтобы можно было выбирать кол-во покупаемого товара, для этого делаю поле для выбора кол-ва number
но получаю только синтаксические ошибки
print "<label><input type='checkbox' name='good[]' value='здесь $row[`здесь пишу id это поле по которому идет идентификация, но ругается на кавычки `` `]' /> Выбарть для покупки</label>
";

никак не получается заставить работать этот код , если какая то информация нужна по таблице или данным все напишу.
Пожалуйста научите сделать, очень нужно

  Ответить  
 
 автор: confirm   (25.03.2016 в 16:48)   письмо автору
 
   для: Stunnets   (25.03.2016 в 01:16)
 

Выбросить все это и не повторять один и тот же код. Отвечать надо на вопросы, если хотите получать ответы, а то рассказывал, рассказывал, и все равно тулится куча кнопок. И имена полей SQL таблицы указывать, а то спрашиваете как без указания полей. В примере условно указаны, поля:

seller - продавец
name - товар
price - цена
id - идентификатор

Поля перечислены в тексте запроса в том порядке, в котором они будут выводиться, а id последний, потому как он не выводится и используется как ключ в имени поля формы

Строки, в которых не нужно производить разбор в поисках php-переменных лучше заключать в одинарные кавычки, а в них двойные, а не как у вас одинарные в двойных, тем самым напрасно нагружая парсер разбором. Основной HTML код страницы нужно выводить как есть, а не echo ....


<!DOCTYPE HTML> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<style>
table {
    border-collapse: separate;
    width: 100%;
}

th {
    padding: 6px 10px;
    background: #E3EBEF;
}

td {
    border: 1px solid #ddd;
    padding: 6px 10px;
}
</style> 
<script> 
</script>     
</head> 
<body>
<?php
//это чисто для проверки отправления формы, после выполнения удалить
if($_POST['good'] && $good array_diff(array_map('intval'$_POST['good']), [0])) {
    echo 
'<pre>';
    
print_r($good);
    echo 
'</pre>';
}

//где-то, где не известно, происходит подключение к базе
//далее запрос и вывод таблицы 

$result mysql_query("SELECT seller, name, price, id FROM st_rinok") or die (mysql_error());

if(
mysql_num_rows($result)) {
    
    echo 
'<form method="post"><table class="table_price"><caption>Рынок</caption><tr><th>№</th><th>Продавец</th><th>Товар</th><th>Цена, руб.</th><th>Кол-во для покупки</th></tr>';
    
    for(
$i=1$row mysql_fetch_assoc($result); $i++) {
        
$row array_map('htmlspecialchars'$row);
        echo 
'<tr><td>'.$i.'</td><td>'.implode('</td><td>'array_slice($row03)).'</td><td><input type="number" min="0" step="1" name="good['.$row['id'].']" /></td></tr>';
    }
    
    echo 
'</table><input type="submit" value="Купить выбранное количество" /></form>';
} else echo 
'<p>Товаров нет.</p>';
?>

</body>
</html>


Можно выбрать различные количества нескольких товаров, а после выбора отправить форму, одной кнопкой.

Сохраните этот код как php-файл и выполните, смотрите что будет в массиве $good, это и есть выбранные товары, ключ, это id, значение, это выбранное его количество.

  Ответить  
 
 автор: Fishka   (15.12.2018 в 13:34)   письмо автору
 
   для: confirm   (25.03.2016 в 16:48)
 

когда-то искал код, и именно для этих целей, но он был немного другой, но я и этот сохраню,спасибо

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования