Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Голосование
Форумы портала PHP.SU » » Вопросы новичков » Голосование

Страниц (1): [1]
 

1. Макс - 03 Октября, 2011 - 18:06:17 - перейти к сообщению
Хочу создать голосование, простенький опросник. Возникла проблемка с созданием бд. Выходит ошибка: Unknown database 'opr' .

Существуют 3 файла: главный part.php, sql.php - для подключения и создания бд, lib.php - в котором функции.

Вот sql.php, из-за которого вся проблема...
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. if (!'opr.sql'){
  3.         define("DB_HOST", "localhost");
  4.         define("DB_LOGIN", "");
  5.         define("DB_PASSWORD", "");
  6.         mysql_connect(DB_HOST, DB_LOGIN, DB_PASSWORD) or die(mysql_error());
  7.         $sql = 'CREATE DATABASE opr';
  8.         mysql_query($sql) or die(mysql_error());
  9.         mysql_select_db('opr') or die(mysql_error());
  10.         $sql = "
  11.         CREATE TABLE part (
  12.                 id int(11) NOT NULL auto_increment,
  13.                 ip varchar(50) NOT NULL default '',
  14.                 otv varchar(50) NOT NULL default '',
  15.                 PRIMARY KEY (id)
  16.         )";
  17.         mysql_query($sql) or die(mysql_error());
  18.         mysql_close();
  19.         print '<p>Структура базы данных успешно создана!</p>';
  20.         header('Location: part.php' );
  21.  
  22.                                         }
  23. else{
  24.         mysql_select_db('opr') or die(mysql_error());
  25.         }
  26. ?>

Не судите, пожалуйста, строго, я новичок, это моя первая программа на php
2. caballero - 03 Октября, 2011 - 18:14:46 - перейти к сообщению
а почему бы вам в первой программе не создать БД вручную phpmyadminom или еще чем

И как вы вообхе логинитесь с пустым паролем и логином.


судя по всему
if (!'opr.sql'){
вас оправляет вниз когда базы еще нет
3. LIME - 03 Октября, 2011 - 18:20:03 - перейти к сообщению
caballero пишет:
вас оправляет вниз когда базы еще нет
вернее там нет соединения
mysql_connect у вас только при условии
4. Макс - 04 Октября, 2011 - 09:45:06 - перейти к сообщению
LIME пишет:
вернее там нет соединения
mysql_connect у вас только при условии

То есть смысл такой: если базы данных нет, то мы её создаём и соединяемся с ней для работы. Если она есть, то мы только соединяемся.

Можно конечно phpMyAdminom, но просто хочется понять процесс изнутри...
(Добавление)
Исправил следующим образом:

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.         define("DB_HOST", "localhost");
  4.         define("DB_LOGIN", "root");
  5.         define("DB_PASSWORD", "");
  6.         mysql_connect(DB_HOST, DB_LOGIN, DB_PASSWORD) or die(mysql_error());
  7. $file='opr.sql';
  8. if (file_exists($file))
  9. {
  10.         mysql_select_db('opr') or die(mysql_error());
  11.               header('Location: part.php' );
  12. }
  13. else{
  14.        
  15.         $sql = 'CREATE DATABASE opr';
  16.         mysql_query($sql) or die(mysql_error());
  17.         mysql_select_db('opr') or die(mysql_error());
  18.         $sql = "
  19.         CREATE TABLE part (
  20.                 id int(11) NOT NULL auto_increment,
  21.                 ip varchar(50) NOT NULL default '',
  22.                 otv varchar(50) NOT NULL default '',
  23.                 PRIMARY KEY (id)
  24.         )";
  25.         mysql_query($sql) or die(mysql_error());
  26.         mysql_close();
  27.         print '<p>Структура базы данных успешно создана!</p>';
  28.         }
  29. ?>
  30.  

Спасибо, что натолкнули на мысль! Теперь буду другие ошибки исправлять!
(Добавление)
Не пойму отчего он мне всё время пишет: Can't create database 'opr'. Database exists
Зачем он else выполняет, если удовлетворяет условию if и есть переадресация на другую страницу?
5. Мелкий - 04 Октября, 2011 - 11:48:52 - перейти к сообщению
Макс пишет:
если удовлетворяет условию if

А с чего вы взяли, что удовлетворяет? Не вижу никакой связи между файлов opr.sql в этой директории и существованием базы в базе данных.
6. Макс - 14 Октября, 2011 - 20:00:14 - перейти к сообщению
Мелкий пишет:
А с чего вы взяли, что удовлетворяет? Не вижу никакой связи между файлов opr.sql в этой директории и существованием базы в базе данных.

Вы абсолютно правы. Спасибо.

Создал бд. Столбцы: id, ldpr, kprf, er, sr, ip. В столбцах ldpr, kprf, er, sr - в случае соответствующего выбора значение обновляется в сторону увеличения на 1. id - счетчик, ip - должен выявлять голосовал ли уже человек. Если голосовал программа прекращается. Если нет, то форма появляется и предлагается проголосовать. Но почему-то ничего не происходит...

PHP:
скопировать код в буфер обмена
  1.  
  2. $ip=$_SERVER["REMOTE_ADDR"];
  3. $sql = "
  4.         SELECT ip FROM test
  5.         ";
  6. $res=mysql_query($sql);
  7.  
  8.         while ($row = mysql_fetch_array($res)) {
  9.     echo $row['ip'].'<br>';
  10.         if ($row['ip']==$ip)
  11.                                 {
  12.                  echo "Вы уже голосовали!";
  13.                 exit;
  14.                                 }      
  15.         else
  16.                                 {                                                  
  17.                                         if ($_POST['part']=='ЛДПР')
  18.                                         {
  19.                                                 echo "Спасибо, Ваш голос учтён! Вы проголосовали за ЛДПР.";
  20.                                                
  21.                                                 $sql=
  22.                                         "
  23.                                             INSERT INTO
  24.                                                 test (ip)
  25.                                                 VALUES
  26.                                                          ('$ip')
  27.                                         ";
  28.                                                 mysql_query($sql);
  29.                                                
  30.                                                 $sql = "
  31.                                                 SELECT ldpr FROM test
  32.                                                 ";
  33.                                                 $res=mysql_query($sql);
  34.                                        
  35.                                                
  36.                                                 while ($row = mysql_fetch_array($res)) {
  37.                                             echo $row['ldpr'].'<br>';
  38.                                         }
  39.                                                
  40.                                        
  41.                                                 $sql = "
  42.                                                 UPDATE test
  43.                                                 SET ldpr=ldpr+1
  44.                                                                 ";  
  45.                                                
  46.                                                 mysql_query($sql);
  47.                                                
  48.                                         }
  49.                                         elseif ($_POST['part']=='КПРФ')
  50.                                         {
  51.                                                 echo "Спасибо, Ваш голос учтён! Вы проголосовали за КПРФ.";
  52.                                         }
  53.                                         elseif ($_POST['part']=='Единая Россия')
  54.                                         {
  55.                                                 echo "Спасибо, Ваш голос учтён! Вы проголосовали за Единую Россию.";
  56.                                         }
  57.                                         elseif ($_POST['part']=='Справедливая Россия')
  58.                                         {
  59.                                                 echo "Спасибо, Ваш голос учтён! Вы проголосовали за Справедливую Россию.";
  60.                                         }
  61.                                         elseif ($_POST['part']=='Правое дело')
  62.                                         {
  63.                                                 echo "Спасибо, Ваш голос учтён! Вы проголосовали за Правое дело.";
  64.                                         }
  65.                                         elseif ($_POST['part']=='У меня иные предпочтения')
  66.                                         {
  67.                                                 echo "Спасибо, Ваш голос учтён! Теперь нам известно, что у Вас иные предпочтения.";
  68.                                         }
  69.                                         else
  70.                                         {
  71.                                                 echo "Пожалуйста, выберите вариант ответа!";
  72.                                         }
  73.  
  74.                                                                                         } // конец else
  75.                                                                                                         } // конец while
  76.  


Пока что пробую на примере ЛДПР. Остальные потом сделаю по подобию. От начала до конца всё делаю сам, поэтому сразу прошу извинить за глупые ошибки.

 

Powered by ExBB FM 1.0 RC1