Помогите с php/MySql

1. Wapium 12.03.2011 / 15:56
Решил заняться с БД,но что то не пойму как записать в базу что нибудь?
Например пробую я записать просто текст полученный с форму,но вот беда,не чего не получается!Может кто подскажет,а лучше покажет как правильно подключиться к Бд,а затем записать в столбец полученный с формы текст,авось и ошибку свою найду smile ?Заранее спасибо! klass

2. Виталий 12.03.2011 / 16:13
Например пробую я записать просто текст полученный с форму,но вот беда,не чего не получается!
Скопируй сюда свой код =)
Прочти лучше учебники и все поймеш...там ничего сложного..
http://php.su/books/mysql/mysql_helper.zip


3. ★☆ ИгRok™ ☆★ 12.03.2011 / 16:33
Думаю,это проще всего. По крайней мере на мой взгляд.
<?php
$config = array();

$config['mysql']['host'] = 'localhost';
$config['mysql']['user'] = 'юзер';
$config['mysql']['pass'] = 'патоль';
$config['mysql']['base'] = 'имя базы';

$connect = mysql_connect($config['mysql']['host'], $config['mysql']['user'], $config['mysql']['pass']);

if(!$connect) exit('MySQL Error');
elseif(!mysql_select_db($config['mysql']['base'], $connect)) exit('MySQL Database not found.'); // подключаемся к базе

function filter($str)
{
return trim(mysql_real_escape_string(htmlentities($str, ENT_QUOTES, 'UTF-8')));
}
// фильтр данных

if(!isset($_POST['pole']))
{
echo '<form action="?" method="post" />
<input type="text" name="pole" /><br />
<input type="submit" value="Go" /><br /></form>';
}
else
{
$pole2 = filter($_POST['pole']);

if(empty($pole2)) die('Заполните поле ввода.');

mysql_query('INSERT INTO table SET pole = "'.$pole2.'"');

echo '<b>Текст успешно добавлен.</b>';
}
?>
Структура таблицы будет выглядеть так:
CREATE TABLE `table` (
`id` int(11) NOT NULL auto_increment,
`pole` varchar(200) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
ну,а выводить,так:
<?php
$a = mysql_query('SELECT * FROM table ORDER BY RAND() LIMIT 1');

if(mysql_num_rows($a) == 0)
{
echo 'Записей нет<br />';
}
else
{
while($res = mysql_fetch_assoc($a))
{
echo '<b>'.$res['pole'].'</b><br />';
}
}
?>


4. ramzes 12.03.2011 / 17:21
Лучше мускули, понятнее для новичка.

5. Wapium 12.03.2011 / 17:31
Всем спасибо! klass klass klass

6. Wapium 12.03.2011 / 19:46
Блин,так вроде понял!Но когда написал сообшение и обновляеш страницу то сообшение снова и снова добавляется!И ешё,почему только когда пишеш в поля числа сообшение записывается в БД?
Архив прилагается:
Бэкап(денвер)
И ешё,почему когда просто обновляеш страницу(когда есть два сообшения),то они меняются местами?

7. Wapium 12.03.2011 / 20:22
 <?php
/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
include_once 'incfiles/head.php';
if (isset($error)){echo"<b>Ошибка.</b><br/>";}
/*-----------------------------------------------*/
echo '<div class="logos"><b>Гостевая</b></div>';
if(!isset($_POST['text'])) {
  echo '<div class="b"><form action="?" method="post" />';
  echo 'Сообшение: (max: 200)<br/><input type="text" name="text" /><br/>';
  echo 'Имя: (max: 20)<br/><input type="text" name="name" /><br/>';
  echo '<input type="submit" value="Отправить" />';
  echo '</form></div>'; 
} else {
  
  $text2 = filter($_POST['text']);
  $name = filter($_POST['name']);
    if(empty($text2)) die('<div class="menu">Вы не ввели сообшение.</div>');


//Записываем в БД
  mysql_query('INSERT INTO `guest` SET
    `text` = '.$text2.',
    `name` = '.$name.'
  ');
  echo '<div class="b"><b>Текст успешно добавлен.</b><br/></div>';  
}
//Выводим сообшения
  $a = mysql_query('SELECT * FROM `guest` ORDER BY RAND() DESC');
// Проверка на одинаковые сообщения
/*
    if ($odinakmessage['text'] == $text2) {
      $odinakmessage = mysql_fetch_array($a);
      echo '<div class="menu">Такое сообшение уже есть!<br/></div>';
  }*/
// Проверка(записи есть или нет)
  if(mysql_num_rows($a) == 0) {
      echo '<div class="menu">Записей нет.Будь первым!<br/></div>';
} else {
   while( $res = mysql_fetch_assoc($a)) {
    echo '<div class="menu">Сообшение:<b> '.$res['text'].'</b><br/>';
    echo '<div class="quote">Автор: '.$res['name'].'</div></div>';
 }
}
/*-----------------------------------------------*/
include_once 'incfiles/end.php';
?>
 
И вот что то не получается сделать Проверку на одинаковые сообщения
 <?php
// Проверка на одинаковые сообщения
    if ($odinakmessage['text'] == $text2) {
      $odinakmessage = mysql_fetch_array($a);
      echo '<div class="menu">Такое сообшение уже есть!<br/></div>';
  } ?>


8. Станислав 12.03.2011 / 20:47
да едрёны лапти... вот, кури http://php.su

9. Wapium 12.03.2011 / 20:54
8. SNELS, все так серьезно запущенно что ли?(((

10. ramzes 12.03.2011 / 21:35
Разрушай переменную массива $_POST

11. Станислав 12.03.2011 / 22:21
9. Wapium, да ты просто почитай там чего. Потом малость погугли. Вот это же элементарные вопросы. Ты их просто обязан сам разобрать.

12. Димон 13.03.2011 / 01:39
тема сродни с моим вопросом.
Вопрос как сделать, чтобы при mysql_connect ошибки не выводились в браузер?

URL: https://visavi.net/topics/19658