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 » PHP » SQL и Архитектура БД » Помогите пожалуйста новичку

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

1. lvovich - 22 Октября, 2009 - 17:13:13 - перейти к сообщению
Подскажите как сделать добавление записи в таблицу mysql через веб интерфейс. я немогу разабраться с формами.

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.         function dbconn(){
  3.                 global $dblink;
  4.                 $dblocation = "localhost";
  5.                 $dbname = "restdocs";
  6.                 $dbuser = "root";
  7.                 $dbpasswd = "Am2371142";       
  8.  
  9.                 $dblink = mysql_pconnect($dblocation, $dbuser, $dbpasswd);
  10.                 mysql_select_db($dbname)  or  die("Не  могу  открыть  $db:  ".mysql_error());
  11.                 mysql_query("SET NAMES 'cp1251'");
  12.                 return $dblink;
  13.         }
  14.        
  15.         dbconn();
  16.        
  17.         //if($_GET['testtext']){$dbfilter="WHERE rest_kod='".$_GET['testtext']."'";}
  18.        
  19.         $query ="SELECT * FROM
  20.                                         rest_info r
  21.                                         LEFT JOIN legal ur ON (r.rest_ur=ur.legal_id)
  22.                                         LEFT JOIN contract_info con ON (r.rest_id=con.contract_rest)
  23.                                         LEFT JOIN service_info ser ON (con.contract_id=ser.serv_contract)
  24.                                         LEFT JOIN providers_info pro ON (con.contract_provider=pro.prov_id)";
  25.         $result  =  mysql_query($query,  $dblink)  or  die(mysql_error());
  26.         while($restaurants[]= mysql_fetch_assoc($result));
  27.         require('templates\index.html');
  28.        
  29.         $query ="INSERT INTO
  30.                                         rest_info
  31.                                         VALUES(rest_name, rest_ur, rest_kod, rest_adress, rest_status, startdate, closedate)";
  32.         $result = mysql_query($query);
  33.         if($result) {echo "Данные внесены в базу данных";} else {echo "Ошибка, данные не были внесены в БД"}
  34.         mysql_close($link);
  35.  
  36. <html>
  37. <form>
  38. <input type="hidden" name="action" value="rest_add">
  39. <input type="text" name="rest_name">
  40. </form>
  41. <!--<input type="text" <? if($_GET['restname']){echo 'value="'.$_GET['restname'].'"';}  ?> name="restname">
  42. <input type="submit" value="название ресторана">
  43. -->
  44. <table> <tr>
  45.                 <td>
  46.                         <strong>ID</strong>
  47.                 </td>
  48.                 <td>
  49.                         <strong>Ресторан</strong>
  50.                 </td>
  51.                 <td>
  52.                         <strong>Юр Лицо</strong>
  53.                 </td>
  54.                 <td>
  55.                         <strong>Код ресторана</strong>
  56.                 </td>
  57.         </tr>
  58.         <? foreach($restaurants as $data){ ?>
  59.         <tr>
  60.                 <td>
  61.                         <? echo $data['rest_id']; ?>
  62.                 </td>
  63.                 <td>
  64.                         <? echo $data['rest_name']; ?>
  65.                 </td>
  66.                 <td>
  67.                         <? echo $data['legal_name']; ?>
  68.                 </td>
  69.                 <td>
  70.                         <? echo $data['rest_kod']; ?>
  71.                 </td>
  72.         </tr>
  73.         <? } ?>
  74. </table>
  75. </html>
2. Мелкий - 22 Октября, 2009 - 19:23:47 - перейти к сообщению
Обрамляйте листинги тегами [php]
А зачем вы сначала загоняете строки в массив, а затем перебираете массив? Почему бы сразу на месте не сделать? Работать будет гораздо эффективнее.
Что вы пытаетесь записать в базу при каждой обработке скрипта - так же неясно.
3. lvovich - 23 Октября, 2009 - 08:05:44 - перейти к сообщению
я немного запутался. подскажи пожалуйста как надо написать.
4. Viper - 23 Октября, 2009 - 08:30:13 - перейти к сообщению
разделите выборку из бд + рисование формы и запись в бд в разные файлы. не тулите все в одном, а то будет каша.

для тега form ОБЯЗАТЕЛЬНО указание атрибутов action и method!

добавить данные из вашей формы просто.

PHP:
скопировать код в буфер обмена
  1. $data = mysql_real_escape_string($_POST['rest_name']);
  2. $query = "INSERT INTO `db_name` VALUES (NULL, '".$data."', ...)";


NULL подразумевает пустое значение для поля id.

 

Powered by ExBB FM 1.0 RC1