2013-04-29 1 views
0

Я выяснил, как отображать информацию, представленную в mysql, но я не понял, как сохранить прошлую информацию там. Он будет показывать текущую должность сверху и постоянно добавлять сверху каждый раз, когда будет отправляться новая информация, но отображать только 10 сообщений за раз. Надеюсь, я объясню это хорошо.Я собираюсь автоматически обновлять информацию от mysql. Как мне получить прошлую информацию, чтобы она отображалась вместе с новой информацией, представленной в базе данных?

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

echo $hit, $amount, $category; 

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

Спасибо.

Редактировать: здесь больше кода. Кроме того, было сказано о mysqli. Я просто не изменил его.

if(!$link){ 
    die('Could not connect: ' . mysql_error()); 
} 

$db_selected = mysql_select_db(DB_NAME, $link); 

if(!$db_selected){ 
    die('can not use' . DB_NAME . ': ' . mysql_error()); 
} 
$hit = $_POST['hit']; 
$amount = $_POST['amount']; 
$category = $_POST['category']; 



$sql = "INSERT into hit (hit, amount, category) VALUES ('$hit', '$amount', '$category')"; 
$result = mysql_query($sql); 

if(!mysql_query($sql)){ 
    die('Error: ' . mysql_Error()); 
} 
echo $hit, $amount, $category; 

mysql_close(); 
?> 
+0

Единственная строка кода, которую вы отправили, является единственным нерелевантным для этого вопроса. Все остальные необходимы, чтобы правильно знать вашу проблему. –

+0

извините. добавлено больше. – lin

ответ

0

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

Вы также должны помнить о внедрении sql, поскольку значения, которые вы добавляете в базу данных, не подвергаются никакой дезинфекции. Для этого используйте такую ​​команду, как mysql_real_esape_string или htmlentities.

До линии гулкой результаты ...

echo $hit, $amount, $category; 

Вы должны иметь отборный запрос в сочетании с петлей в то время как и mysql_fetch_array или mysql_fetch_assoc команд для вывода строк из базы данных. Первая проверка - проверить, добавляются ли записи в таблицу.

+0

Спасибо вам обоим. Я бы никогда не знал, что я должен был получать данные. я, очевидно, все еще нуб со всем этим. поэтому я получил данные (я думаю) с этим кодом 'while ($ row = mysql_fetch_array ($ data)) { Печать ""; Печать " Хит:". $ Row ['hit']. ""; Печать " Сумма:". $ Row ['amount']. ""; Печать " Категория:". $ Row ['category'].""; } Распечатать ""; ' и теперь все данные публикуются в 3-х. больше публикуется, даже когда я обновляюсь. Мне действительно нужно больше узнать об этом. – lin

+1

Это верно, есть много примеров и руководств по Google, если вы ищете «php и mysql crud» (crud - это аббревиатура для создания, чтения, обновления и удаления). – user466764

0

Ни в коем случае вы не извлекаете данные из базы данных. Вы просто отправляете данные из формы в mysql и одновременно показываете ее.

Вы можете получить данные из MySQL, делая что-то вроде этого:

$data = mysql_query("SELECT hit, amount, category FROM hit"); 
// Adding MYSQL_ASSOC as a second argument tells mysql_fetch_array that 
// we want an associative array (we can refer to fields by their name, not just by number) 
while($row = mysql_fetch_array($data, MYSQL_ASSOC)) { 
    echo '<p>' 
    .'Hit: ' . $row['hit'] 
    .', Amount: ' . $row['amount'] 
    .', Category: ' . $row['category'] 
    .'</p>'; 
} 

Имейте в виду, что это все упрощенная версия вещей, и она требует больше работы, особенно в области безопасности. Вероятно, я должен использовать здесь htmlentities(), в зависимости от данных. И определенно вы должны защищать от SQL-инъекций, если эти данные поступают непосредственно от пользователя.

+0

hmmm ... @ user466764 ответил, когда я писал это, и, вероятно, использовал лучший подход, не предоставляя фактический блок кода. Я бы сказал, что лучше всего использовать его ответ и обратиться к руководству php, чтобы узнать о функциях, о которых он упомянул. Особенно (как только вы получите основные запросы) 'mysql_real_escape_string', так как код на данный момент очень небезопасен. Я не могу комментировать ответы других людей прямо сейчас, я думаю, из-за низкой репутации –

+0

Ciaran благодарит за то, что все еще отвечает. Как я только что сказал, я бы никогда не знал, что я не получал данные, если это не было для вас двоих. и я даже не слышал о htmlentities() .. так что я сейчас смотрю эту штуку. еще раз спасибо. – lin

+1

Нет проблем! : D В phpmyadmin должно быть окно или текстовое поле для непосредственного запуска SQL-запросов. Я бы сказал, что практикуйте свои SQL-запросы там, пока вы не повесите основные операции и ключевые слова и не сможете легко выбирать, обновлять и удалять данные с различными условиями. Тогда вы можете вернуться к стороне PHP, когда у вас есть голова вокруг нее, и это будет намного проще, поскольку вы уже поймете, как взаимодействовать с базой данных. На данный момент вы пытаетесь получить поддержку PHP и SQL точно в одно и то же время, и это просто приведет к путанице. –