Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > вывод строки из бд


Автор: namra 12.6.2013, 14:42
Здравствуйте, вывожу строки из mysql , как вот где написано "переменная" мне нужно получить value нажатой мною кнопки
Код

 $data_result = mysql_query("select * from test_qbank where tem='".$tem."'")
     or die(mysql_error());
    $totalrow = mysql_num_rows($data_result); // кол-во строк по данной теме "вопросов"
     echo '<br/>';
     
     echo '<form method="post">';
     for ($i=0;$i++<$totalrow;)
      echo '<input type="submit" class="vop" name="btn" value="'.$i.'" />';   
     echo '</form>';
     if (isset($_POST['btn'])){
        $sql=mysql_query("SELECT * FROM  test_qbank WHERE id='"ПЕРЕМЕННАЯ"'");

        $result=mysql_fetch_array($sql);
        echo $result['vopr'];
       }

Автор: Arantir 12.6.2013, 14:50
Я в замешательстве относительно того, какой именно ответ Вы хотите получить. Ведь value кнопки Вы в своем коде уже получили:
Код

$_POST['btn']

Автор: namra 12.6.2013, 14:57
Цитата(namra @  12.6.2013,  14:42 Найти цитируемый пост)
echo '<input type="submit" class="vop" name="btn" value="'.$i.'" />';

может выразился не так, этим я пронумеровал кнопки  т.е. на них написано 1, 2, 3 и т.д. Далее идет второй запрос, в котором надо в ПЕРЕМЕННУЮ получить value нажатой кнопки

Автор: ksnk 12.6.2013, 15:11
Код

    $data_result = mysql_query("select id from test_qbank where tem='".$tem."'")
     or die(mysql_error());

     echo '<br/>';

    echo '<form method="post">';
     
    while ($row = mysql_fetch_assoc($result)) {
       echo '<input type="submit" class="vop" name="btn" value="'.$row['id'].'" />';
    }
    echo '</form>';
    mysql_free_result($result);
     
     if (isset($_POST['btn'])){
        $sql=mysql_query("SELECT * FROM  test_qbank WHERE id='".(0+$_GET['btn'])."'");
        $result=mysql_fetch_array($sql);
        echo $result['vopr'];
     }


Нужно просто сохранить ID-шки в форме и передать нужную постом обратно .

Автор: namra 12.6.2013, 18:54
вот это не понял если честно что такое что-то вытаскиваем из строки url
Код

.(0+$_GET['btn']).


Автор: namra 12.6.2013, 19:44
написал код заново
Код

   // выборка всех вопросов соответствующих теме из банка вопросов
    $data_result = mysql_query("select * from test_qbank where tem='".$tem."'")
     or die(mysql_error());
     echo '<br/>';
     
        
     echo '<form method="post">';
     $num=1;
     while($voprdata=mysql_fetch_array($data_result)){          
        echo '<input type="submit" name="'.$voprdata['id'].'" class="vop" value="'.$num++.'">';

     }
  echo '</form>';

В итоге после приведенного выше кода на страничке получается данный код
Код

<form method="post">
<input type="submit" name="1" class="vop" value="1">
<input type="submit" name="2" class="vop" value="2">
<input type="submit" name="4" class="vop" value="3">
<input type="submit" name="5" class="vop" value="4">
<input type="submit" name="6" class="vop" value="5">
</form>


Далее при нажатии на одну из кнопок должен выполняться sql запрос где id должен быть равен name  кнопки, а т.е. (1 ИЛИ 2 ИЛИ 4 ИЛИ 5 ИЛИ 6) как вот этот name получить

Автор: Arantir 12.6.2013, 20:36
Что значит "как получить"? 
У меня просто разрыв шаблона...

Поля получаются из $_GET/$_POST, где ключ - это содержимое атрибута name поля, а значение - содержимое атрибута value
Если нажать на кнопку "4", то у Вас будет:
Код
isset($_POST['1']) == false
isset($_POST['2']) == false
isset($_POST['4']) == false
isset($_POST['5']) == true
$_POST['5'] == '4'
isset($_POST['6']) == false

Или как еще объяснить-то?

Автор: namra 12.6.2013, 20:47
да я не могу переменную из формы перенести в sql запрос который будет после формы

Автор: Arantir 12.6.2013, 20:50
Код

$var = $_POST['btn'];
$sql = mysql_query("SELECT * FROM  test_qbank WHERE id='$var'");
?

Автор: namra 12.6.2013, 21:10
Да  Arantir,  ваш бы код подошел спс что помогаете, но суть в том если бы в базе были id  подряд тогда было бы норм, в форме кнопкам - св-ву name  я присвоил id вопросов, а value  - порядковый номер исходя из этого смотрим третью кнопку в форме, при нажатии на кнопку номер 3 (value="3") ваш код выдаст строку с id=3, а надо исходя из name кнопки номер 3 чтобы id было равно 4
Код

<form method="post">
<input type="submit" name="1" class="vop" value="1">
<input type="submit" name="2" class="vop" value="2">
<input type="submit" name="4" class="vop" value="3">
<input type="submit" name="5" class="vop" value="4">
<input type="submit" name="6" class="vop" value="5">
</form>

Автор: Arantir 12.6.2013, 21:40
Вы хотите, чтобы у пользователя кнопки назывались по одному, а на сервер отправлять другое?
Для этого существует button
Код
<form method="post">
<button type="submit" name="answer" value="1">1</button>
<button type="submit" name="answer" value="5">2</button>
<button type="submit" name="answer" value="7">3</button>
</form>


А причем тут БД из названия темы - вообще непонятно.

Автор: ksnk 12.6.2013, 22:55
Если по каким-то необъяснимым причинам не подойдет button, то кодировать ID строчки базы можно и в name
Код

while($voprdata=mysql_fetch_array($data_result)){          
        echo '<input type="submit" name="answer['.$voprdata['id'].']" class="vop" value="'.$num++.'">';
     }


...
if (isset($_POST['answer']) && is_array($_POST['answer']) && count($_POST['answer'])>0){

        reset($_POST['answer']);
        $id=key($_POST['answer']);
        $sql=mysql_query("SELECT * FROM  test_qbank WHERE id='$id'");
        $result=mysql_fetch_array($sql);
        echo $result['vopr'];
     }

Автор: namra 13.6.2013, 06:19
Arantir, спс то что надо,  
ksnk, спс ваш код тоже посмотрел также понял как можно было его реалищовать  + обоим. Всем спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)