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

Форум MySQL

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

 

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

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

тема: Извлечь имя кнопки из таблицы базы данных
 
 автор: alexey   (22.04.2011 в 15:47)   письмо автору
 
 

Здравствуйте!
У меня такая проблема:

<?php
$db = mysql_connect("localhost","user","pass");
mysql_select_db("baza",$db);
$result = mysql_query("SELECT * FROM table", $db);
$myrow = mysql_fetch_array($result);
?>
<form action="index.php" method="post" name="z" target="_self">
<input name="1" type="submit" value="первая">
<input name="2" class="knopka" type="submit" value="вторая">
</form>
<?php
$name=$_POST['name'];
?>

Хочу выводить $myrow['title'], где $myrow['id'] = имя кнопки
Можно ли воспользоваться именем кнопки? Как это сделать?

  Ответить  
 
 автор: cheops   (22.04.2011 в 15:55)   письмо автору
 
   для: alexey   (22.04.2011 в 15:47)
 

>где $myrow['id'] = имя кнопки
Поле id равно строке "первая" или "1"?

  Ответить  
 
 автор: alexey   (22.04.2011 в 16:48)   письмо автору
 
   для: cheops   (22.04.2011 в 15:55)
 

Поле id равно строке "первая" или "1"?
1

  Ответить  
 
 автор: lotanaen   (22.04.2011 в 17:19)   письмо автору
 
   для: alexey   (22.04.2011 в 15:47)
 

<?php
$db 
mysql_connect("localhost","user","pass");
mysql_select_db("baza",$db);
$result mysql_query("SELECT * FROM table"$db);
$myrow mysql_fetch_array($result);
?>
<form action="index.php" method="post" name="z" target="_self">
<?php
while($myrow mysql_fetch_array($result)) {
     echo 
"<input name='".$myrow['id']." class=knopka type=submit value='".$myrow['title']."'>";
}
?>
</form>
<?php
$name
=$_POST['name'];
?>


либо наоборот - смотря что нужно

  Ответить  
 
 автор: alexey   (22.04.2011 в 22:04)   письмо автору
 
   для: lotanaen   (22.04.2011 в 17:19)
 

Спасибо за ответ.
Я немного другое имел ввиду.
У меня в базе данных есть таблица, в которой два поля (id) и (title). В кнопке (<input name="1" type="submit" value="неважно">) имя единица, соответствует идентификатору id в таблице (т.е. name(кнопка)==id(таблица)). Как мне вывести результат после срабатывания кнопки. Т.е. если кликнут <input name="1" type="submit" value="неважно">, то надо вывести $myrow['title'].

  Ответить  
 
 автор: cheops   (22.04.2011 в 23:07)   письмо автору
 
   для: alexey   (22.04.2011 в 22:04)
 

Можно начать отталкиваться от следующего скрипта
<?php 
 $db 
mysql_connect("localhost","user","pass");
 
mysql_select_db("baza",$db);
?>
 <form action="index.php" method="post" name="z" target="_self">
 <input name="1" type="submit" value="первая"> 
 <input name="2" class="knopka" type="submit" value="вторая">
 </form>
<?php 
  
foreach($_POST as $key => $value)
  {
    
$key intval($key);
    if(
$key)
    {
      
$query "SELECT title FROM table
                WHERE id = 
$key
                LIMIT 1"
;
      
$result mysql_query($query$db);
      if(!
$result) exit("Ошибка выполнения запроса - ".mysql_error());
      echo 
mysql_result($result0);
    }
  }
?>

  Ответить  
 
 автор: alexey   (25.04.2011 в 12:24)   письмо автору
 
   для: cheops   (22.04.2011 в 23:07)
 

Спасибо

  Ответить  
 
 автор: alexey   (26.04.2011 в 12:30)   письмо автору
 
   для: cheops   (22.04.2011 в 23:07)
 

Подскажите, пожалуйста, как выводить кнопки на экран последовательно, например, сработала <input name="2" class="knopka" type="submit" value="вторая"> вывелась "вторая", затем сработала <input name="1" type="submit" value="первая"> вывелась "первая" под второй. Т.е. "вторая" остается на экране и в массиве, наверно. Даже не наверно, а желательно

  Ответить  
 
 автор: cheops   (26.04.2011 в 12:35)   письмо автору
 
   для: alexey   (26.04.2011 в 12:30)
 

Перезагрузка страницы допустима, или кнопки должны появляться и исчезать без перезагрузки страницы?

PS Под новые вопросы лучше заводить новые темы.

  Ответить  
 
 автор: alexey   (26.04.2011 в 12:45)   письмо автору
 
   для: cheops   (26.04.2011 в 12:35)
 

Допустима, потому что таких страниц с кнопками 10 штук и на каждой будет вывод своих занчений с кнопок и значений с предыдущих страниц. Поэтому думаю нужно загнать в массив что бы с этим данными работать на следующей странице.
PS буду знать.

  Ответить  
 
 автор: cheops   (26.04.2011 в 12:47)   письмо автору
 
   для: alexey   (26.04.2011 в 12:45)
 

А как вы получаете имена этих кнопок и задаете порядок их отображения? Т.е. как узнать, что эта кнопка должна выводиться раньше, чем соседняя?

  Ответить  
 
 автор: alexey   (26.04.2011 в 12:55)   письмо автору
 
   для: cheops   (26.04.2011 в 12:47)
 

10 страниц на каждой по 10 кнопок. Кнопки видны сразу, после нажатия на определенную, например, <input name="1" type="submit" value="первая"> срабатывает
<?php
foreach($_POST as $key => $value)
{
$key = intval($key);
if($key)
{
$query = "SELECT title FROM table
WHERE id = $key
LIMIT 1";
$result = mysql_query($query, $db);
if(!$result) exit("Ошибка выполнения запроса - ".mysql_error());
echo mysql_result($result, 0);
}
}
?>
Нужно что бы после нажатия <input name="1" type="submit" value="первая"> не исчезал вывод предыдущей кнопки.

  Ответить  
 
 автор: cheops   (26.04.2011 в 12:57)   письмо автору
 
   для: alexey   (26.04.2011 в 12:55)
 

А вот этот обработчик он в какой файле расположен? В том же, что и 10 кнопок? Что если его разместить на той же странице, где и форма с кнопками, тогда нажатие на кнопку будет вести на эту же страницу и кнопки будут отображаться и результат, выдаваемый обработчиком?

  Ответить  
 
 автор: alexey   (26.04.2011 в 13:10)   письмо автору
 
   для: cheops   (26.04.2011 в 12:57)
 

У меня так и есть обработчик на этой же странице
<?php
foreach($_POST as $key => $value)
{
$key = intval($key);
if($key)
{
$query = "SELECT title FROM table
WHERE id = $key
LIMIT 1";
$result = mysql_query($query, $db);
if(!$result) exit("Ошибка выполнения запроса - ".mysql_error());
echo mysql_result($result, 0);
}
}
?>
Только после нажатия на следущую кнопку значения предыдущей исчезает, а надо что бы оставалось и мало того сохранялось при переходе на другую страницу

  Ответить  
 
 автор: alexey   (26.04.2011 в 13:14)   письмо автору
 
   для: alexey   (26.04.2011 в 13:10)
 

Проблему можно решить выпадающим списком, но это не удобно. Люди же любят щелкать по кнопкам

  Ответить  
 
 автор: cheops   (26.04.2011 в 13:15)   письмо автору
 
   для: alexey   (26.04.2011 в 13:10)
 

Не очень понятно, исчезает кнопка или результат предыдущего нажатия на кнопку, который вы выводите при помощи следующей строки?
echo mysql_result($result, 0);

  Ответить  
 
 автор: alexey   (26.04.2011 в 13:21)   письмо автору
 
   для: cheops   (26.04.2011 в 13:15)
 

Исчезает результат. А если и кнопка будет исчезать то это счастье

  Ответить  
 
 автор: alexey   (26.04.2011 в 13:22)   письмо автору
 
   для: alexey   (26.04.2011 в 13:21)
 

Исчезает результат - плохо. Если возможно, что после нажатия на кнопку, результат выводился и не исчезал, а кнопка исчезала - очень хорошо

  Ответить  
 
 автор: cheops   (26.04.2011 в 13:38)   письмо автору
 
   для: alexey   (26.04.2011 в 13:21)
 

Давайте возьмем облегченный пример, который вы в дальнейшем сможете использовать как каркас. А саму задачу разобъем на три этапа (1. обработка нажатия кнопок и запоминание их номеров, 2. вывод формы без нажатых кнопок, 3. вывод результатов нажатия на кнопки, которые мы ранее запомнили). Ниже приводится скрипт, от которого можно отталкиваться.
<?php
  
// Инициируем сессию
  
session_start();
  if(!isset(
$_SESSION['buttons'])) $_SESSION['buttons'] = array();
  
// 1. Определяем не нажата ли кнопка
  
if(!empty($_POST))
  {
    for(
$i 1$i 11$i++)
    {
      if(!empty(
$_POST[$i]))
      {
        
// Обнаруживаем нажатие кнопки, запоминаем,
        // что она нажата в сессии
        
$_SESSION['buttons'][] = $i;
        
// Покидаем цикл
        
header("Location: index.php");
        exit;
      }
    }
  }
  
// 2. Форма
  
echo "<form method='post'>";
  for(
$i 1$i 11$i++)
  {
    
// Выводим только ненажатые кнопки
    
if(!in_array($i$_SESSION['buttons']))
    {
      echo 
"<input type='submit' name='$i' value='Кнопка N $i' />";
    }
  }
  echo 
"</form>";
  
// 3. Выводим результаты нажатия кнопок
  
for($i 0$i count($_SESSION['buttons']); $i++)
  {
    echo 
"Была нажата кнопка N ".$_SESSION['buttons'][$i]."<br />";
  }
?>

  Ответить  
 
 автор: alexey   (26.04.2011 в 13:48)   письмо автору
 
   для: cheops   (26.04.2011 в 13:38)
 

Спасибо большое! Попробую

  Ответить  
 
 автор: alexey   (26.04.2011 в 12:48)   письмо автору
 
   для: alexey   (26.04.2011 в 12:45)
 

Я почти весь нэт перерыл, даже близко не нашел решения

  Ответить  
 
 автор: cheops   (26.04.2011 в 12:49)   письмо автору
 
   для: alexey   (26.04.2011 в 12:48)
 

Я думаю, что-нибудь подходящее придумаем, просто нужно больше подробностей о вашей задаче и окружении (где, что хранится, откуда брать, может даже какой-нибудь конкретный пример можно разобрать (кнопка1, кнопка2 и т.п.), чтобы остальное делать по аналогии).

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

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