Как заставить базу данных MySQL появляться на index.php - PullRequest
0 голосов
/ 28 декабря 2010

У меня есть форма отправки на моем веб-сайте (index.php), и у меня есть данные (пользовательские представления), которые хранятся в базе данных MySQL. Прямо сейчас у меня есть пользователь, отправляющий сообщение, а затем страница направляет его в файл update.php, который показывает, что они внесли.

Однако я хочу, чтобы все данные в базе данных в MySQL были показаны в index.php. Это очень похоже на систему комментариев. Пользователь отправляет сообщение ... и видит свое сообщение над другими отправленными сообщениями на одной странице. Я думаю, что я скучаю по AJAX ...?

Вот код для index.php

   <div align="center">
 <p>&nbsp;</p>
 <h2 align="center" class="Title"><em><strong>REDACTED</strong></em></h2>
 <form id="form1" name="form1" method="post" action="update.php">
<hr />
<label><br />
  <form action="update.php" method="post">
 REDACTED: <input type="text" name="text" />
  <input type="submit" />
  </form>
  </label>
</form>
</div>

На update.php у меня есть это:

   ?php
   $text = $_POST['text'];
   $myString = "REDACTED";

   mysql_connect ("db----.net", "-----3", "------------") or die ('Error: ' . mysql_error());
   mysql_select_db ("-----------");

   $query="INSERT INTO TextArea (ID, text) VALUES ('NULL', '".$text."')";

   mysql_query($query) or die ('Error updating database');

   echo " $myString "," $text ";

    ?>

Большое спасибо!

Ответы [ 2 ]

3 голосов
/ 28 декабря 2010

Я немного исправил ваш HTML, главным образом, чтобы избавиться от вложенных тегов form:

<div align="center">
    <p>&nbsp;</p>
    <h2 align="center" class="Title"><em><strong>REDACTED</strong></em></h2>
    <form method="post" action="update.php">
        <label for="text">REDACTED:</label> <input type="text" name="text" />
        <input type="submit" />
    </form>
</div>

Это все еще не фантастика, вы должны:

  • Измените <div align="center"> на <div id="container">, а затем в своем наборе CSS #container {text-align:center}.
  • Избавьтесь от <p>&nbsp;</p>, вместо #container {padding-top:24px}.
  • Измените <h2 align="center" class="Title"><em><strong>REDACTED</strong></em></h2> на <h2>REDACTED</h2> и добавьте к правилу .Title CSS: text-align: center; font-weight: bold; font-style: italic.
  • Ваше input должно иметь лучшее имя, чем text.

Скорректированный PHP:

<?php

$text = $_POST['text'];
$myString = "REDACTED";

mysql_connect ("db----.net", "-----3", "------------") or die ('Error: ' . mysql_error());
mysql_select_db ("-----------");

$query = "INSERT INTO TextArea (ID, text) VALUES (NULL, '" . mysql_real_escape_string($text) . "')";
mysql_query($query) or die ('Error updating database: ' . mysql_error());

echo "$myString - $text<hr />";

$query = "SELECT text FROM TextArea ORDER BY ID DESC";
$result = mysql_query($query) or die ('Error querying database:' . mysql_error());
while ($row = mysql_fetch_assoc($result)) {
    echo $row['text'] . '<hr />';
}

?>
  • AJAX значительно усложняет, поэтому я не использовал его.
  • Теперь, когда кто-то отправляет update.php, появится отправленный текст и под ним все предыдущие представления.
  • Я добавил mysql_real_escape_string(), чтобы предотвратить внедрение SQL. Это очень важно сделать, или злоумышленники могут сделать такие вещи, как удалить все ваши данные. См .: Google , Википедия , Обязательный xkcd
  • Я добавил mysql_error(), поэтому, если ваш SQL не работает, вы поймете, почему.
0 голосов
/ 09 мая 2011

, чтобы показать данные на той же странице, вы должны сделать так:

<form method="post" action=**"index.php"**>
    <label for="text">REDACTED:</label> <input type="text" name="text" />
    <input type="submit" onsubmit="addInputedData"/>
</form>


и чтобы показать введенные данные на той же странице, вы должны создать функцию, которая использует AJAX для добавления элемента на ваши страницы в виде тега p , тега h3 и т. д., в который вы вводите данные, которые вы хотите отобразить и т. д., и вызванные в событии onsubmit:
(см. выше)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...