2014-09-12 1 views
0

Вот мой код: вы автоматически понять, что он делаетмагазин Значение в базе данных с For Loop

<form method="post"> 
    Enter Your Numbers 
    <input type="number" name="number" min="1" max="10" /> 
    <input type="submit" name="submit" value="submit" /> 
</form> 

<?php 

if(isset($_POST['submit'])) 
{ 
    $number = $_POST['number']; 
    for ($x=0; $x<=$number; $x++) { 
     echo "<input type=\"text\" name=\"tbno".$x."\">"; 
    } 
    echo "<input type=\"submit\" value=\"submit\" name=\"submit1\">"; 
} 

if(isset($_POST['submit1'])) 
{ 
    $link = mysql_connect("localhost", "root", ""); 
    $db = mysql_select_db("bookabook"); 

} 
?> 

Вот мой вопрос: Я хочу, чтобы хранить значения TextBox в базе данных, но я не знаю, как сделай это.

Может ли кто-нибудь сказать мне, пожалуйста?

+1

Все ли ваши php-операторы из первого раздела кода вызываются последовательно или есть что-то, что происходит между ними? Как выглядит схема вашей базы данных? Как выглядят данные, которые вы собираете? Мы не можем помочь вам без кода, который вы предоставили. Если бы вы могли дать нам свою схему или sqlfiddle, это было бы здорово. –

+0

Я просто хочу сохранить значения текстового поля в моей базе данных, чтобы вызвать bookabook и имя таблицы book_name –

+1

. Эта ссылка поможет вам немного: http://www.w3schools.com/php/func_mysqli_query.asp –

ответ

0

Вместо того, чтобы использовать счетчик $x ->name=\"tbno".$x."\" , просто установите свои входы в массив ->name=\"tbno[]\". Затем на форме submit вы можете легко пропустить их, используя цикл foreach или for.

<?php 
if(isset($_POST['tbno'])) 
{ 
    //your db connection 
    foreach($_POST['tbno'] as $tbno){ 
      //INSERT INTO tbl VALUE $tbno 
    } 
    echo 'INSERTED DATA'; 
} 
?> 

<form method="post"> 
<?php 
if(isset($_POST['number'])) 
{ 
    $number = $_POST['number']; 
    for ($x=0; $x<$number; $x++) { 
     echo "<input type=\"text\" name=\"tbno[]\">"; 
    } 
} 
else 
{ ?> 
    Enter Your Numbers<input type="number" name="number" min="1" max="10" /> 
<?php 
} ?> 
    <input type="submit" name="submit" value="submit" /> 
</form> 

Я сконденсировал ваши 2 формы в 1, как единственное, что меняет входы, поэтому кода меньше.

+0

Bro Я работаю над этим –

+0

Шон Бро У вас есть какой-либо контактный идентификатор, где я могу связаться с вами? Как Facebook? –

+0

Извините, к сожалению, я не выдаю свою личную контактную информацию, особенно на общедоступном сайте. Если вам нужна дополнительная помощь по этой проблеме, отправьте другой комментарий или обновите свой вопрос. Если вам нужна помощь по другому вопросу/вопросу, отправьте ссылку на вопрос. Я рад помочь, но я предпочитаю держать его здесь на SO. – Sean

-1

Я думаю, что вы ищете заявление о вставке. Я не уверен, что понимаю код, но я понимаю цель. Все, что вам нужно сделать, это создать вставки (как показано ниже) заявление в обмен на цикл, который перебирает книги и т.д ..

$number = trim($_POST['number']); 

$numberOfBooks = mysqli_real_escape_string($mysqlDatabseConnectionObject,$numberOfBooks); //variable to be inserted in the database 

$insertQuery = sprintf("INSERT INTO <table_name> VALUES('%s'",$numberOfBooks)); //statement to be executed 

$insertResults = $mysqlDatabseConnectionObject->query($insertQuery); //execute the query 

print_r($insertResults); //printing the query execution results 
+0

При использовании 'mysqli' вы должны использовать параметризованные запросы и [' bind_param'] (http://php.net/manual/en/mysqli-stmt.bind-param.php), чтобы добавить данные пользователя в ваш запрос. То, что вы делаете здесь с ручным экранированием, и 'sprintf' - это гигантский взлом. – tadman

1
# HTML 
echo "<input type='text' name='tbno[]' value='$x'>"; 
# PHP 
$array = $_POST[tbno]; 
foreach ($array as $key => $value) { 
echo "$key = $value<br/>"; 
} 
+0

+1. Немного nitpicky, но '$ array = $ _POST [tbno];' должно быть '$ array = $ _POST ['tbno'];' поскольку строковые массивы ключей должны быть заключены в кавычки, чтобы запретить php говорить «PHP Notice: использование неопределенного constant tbno - предполагается 'tbno' (строка 4) '. – Sean

-1
if(isset($_POST['submit1'])) 
{ 
    $link = mysql_connect("localhost", "root", ""); 
    $db = mysql_select_db("bookabook"); 

    $values = ""; 
    foreach($_POST as $key => $inputValue){ 
     $values.="(".$inputValue."),"; 
    } 
    $SQL_string = "INSERT INTO mitabla(micampo) VALUES $values"; 
    mysql_query($SQL_string,$link); 
} 
+0

Я думаю, что это будет более полезно для OP и других посетителей, когда вы добавите некоторое объяснение своей интенции. – reporter

+0

Это опасно плохо из-за гигантской [SQL-инъекции] (http://bobby-tables.com/) и отсутствия [надлежащего экранирования] (http://bobby-tables.com/php). – tadman

Смежные вопросы