[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Где я ошибся?
klet
user posted image


user posted image


Ошибку выдает: Notice: Undefined variable: aa in z:\home\localhost\www\prob\add.php on line 30
Ошибку выдает: Notice: Undefined variable: ab in z:\home\localhost\www\prob\add.php on line 30
Ошибку выдает: Notice: Undefined variable: ac in z:\home\localhost\www\prob\add.php on line 30



Спустя 3 минуты, 30 секунд (1.02.2010 - 21:03) Winston написал(а):
Эта ошибка говорит о том что не определена переменная ас. Выложи лучше код чем скрины !

И еще, как видно со скринов это кривой поповский код, вот почитаешь, про то как правильно писать код.

Спустя 37 минут, 42 секунды (1.02.2010 - 21:41) klet написал(а):
new.php



<table width="95%" border="0"><tr><td>
<form
name="form1" method="post" action="add.php">
<p><label>
Список<select name="select" id="select"><option id="aa">текст1</option>
<option
id="ab">текст2</option>
<option
id="sc">текст3</option></select></label>
<br></p><p><label>
текст:<input type="text" name="dol" id="dol"></label></p><p>
<label>
текст:<input type="text" name="fo" id="fo"></label></p><p>
<label>
текст:<input type="text" name="tr" id="tr"></label></p><p>
<label>
текст:<input type="text" name="gr" id="gr"></label></p><p>
<label>
текст:<input type="text" name="uslov" id="uslov"></label></p><p>
<label><input
type="submit" name="submit" id="submit" value="Добавить вакансию"></label></p></form>
</td>
</tr>
</table>



add.php


<?php
$db = mysql_connect ("localhost","user","user");
mysql_select_db("pjob",$db);

if (isset($_POST['aa'])) {$aa = $_POST['aa']; if ($aa == '') {unset($aa);}}
if (isset($_POST['ab'])) {$ab = $_POST['ab']; if ($ab == '') {unset($ab);}}
if (isset($_POST['ac'])) {$ac = $_POST['ac']; if ($ac == '') {unset($ac);}}
if (isset($_POST['dol'])) {$dol = $_POST['dol']; if ($dol == '') {unset($dol);}}
if (isset($_POST['fo'])) {$fo = $_POST['fo']; if ($fo == '') {unset($fo);}}
if (isset($_POST['tr'])) {$tr = $_POST['tr']; if ($tr == '') {unset($tr);}}
if (isset($_POST['gr'])) {$gr = $_POST['gr']; if ($gr == '') {unset($gr);}}
if (isset($_POST['uslov'])) {$uslov = $_POST['uslov']; if ($uslov == '') {unset($uslov);}}

{

$result = mysql_query ("INSERT INTO vac2 (aa,ab,ac,dol,fo,tr,gr,uslov) VALUES ('$aa', '$ab', '$ac', '$dol', '$fo','$tr','$gr','$uslov')");

if ($result == 'true') {echo "<p>добавлено в базу</p>";}
else {echo "<p>не добавлено в базу</p>";}
}

?>

Спустя 1 час, 4 минуты, 45 секунд (1.02.2010 - 22:46) Ice написал(а):
1. Касаемо "вызова" обработчика - его можно было бы вызвать наиболее элегантно, используя условие, по,строенное на суперглобальном массиве _SERVER.

2. Касаемо инициализации переменных, - тоже поэлегантнее можно бы было.

3. Касаемо самих переменных aa и ab.
  • Их не будет по одной очень простой причине : в массив _POST уходит имя объекта, а не его id.
  • Под $ac в обработчике, вероятно, подразумевалось $sc.
  • Вместо них в скрипте обработчика должно стоять имя самого объекта select.
4. Касаемо отправки запроса на выполнение и последующего отслеживания второго, опять-таки, можно было бы обойтись даже без условия.

Спустя 2 часа, 54 минуты, 33 секунды (2.02.2010 - 01:40) klet написал(а):
Спасибо, все получилось! но в БД посылает значение value="aa", а не текст1

Спустя 16 минут, 26 секунд (2.02.2010 - 01:57) Ice написал(а):
текст запроса в студию.

Спустя 19 минут, 33 секунды (2.02.2010 - 02:16) klet написал(а):

<table width="95%" border="0"><tr><td>
<form
name="form1" method="post" action="add.php">
<p><label>
Список<select name="select" id="select">
<option
value="aa">текст1</option>
<option
value="ab">текст2</option>
<option
value="ac">текст3</option></select></label>



{
$result = mysql_query ("INSERT INTO vac2 (select,dol,fo,tr,gr,uslov) VALUES ('$select', '$dol', '$fo','$tr','$gr','$uslov')");

if ($result == 'true') {echo "<p>добавлено в базу</p>";}
else {echo "<p>не добавлено в базу</p>";}
}



в БД попадает именно "аа", а не текст1

Спустя 7 часов, 9 минут, 27 секунд (2.02.2010 - 09:26) Kuliev написал(а):
klet
У тебя в значении стоит АА вот она и передается

<option value="aa">текст1</option>
<!-- VALUE="AA" -->

Спустя 22 минуты, 47 секунд (2.02.2010 - 09:49) klet написал(а):
да, так как в БД столбик и называется аа, если поменять значение, то не понятно будет куда заносить это значение, и вроде кириллицей нельзя указать значение value.
А нужно, чтоб текст1 попадал по значению аа в БД в столбик аа.
как то так)
Просто, не знаю каким образом теперь заставить помещать в БД в столбик аа, содержимое значения аа, а оно у нас текст1.


Спасибо, что вызвались помощь.


Спустя 42 минуты, 43 секунды (2.02.2010 - 10:31) Kuliev написал(а):
Цитата (klet @ 2.02.2010 - 11:49)
да, так как в БД столбик и называется аа, если поменять значение, то не понятно будет куда заносить это значение, и вроде кириллицей нельзя указать значение value.
А нужно, чтоб текст1 попадал по значению аа в БД в столбик аа.
как то так)
Просто, не знаю каким образом теперь заставить помещать в БД в столбик аа, содержимое значения аа, а оно у нас текст1.


Спасибо, что вызвались помощь.

Судя из Вашего ответа боюсь предположить что у вас очень криво спроектирована база данных.

Почему разные значения нельзя записывать в ОДИН столбец?

Спустя 1 час, 44 минуты (2.02.2010 - 12:15) klet написал(а):
Предполагаю, что из базы буду выводить так…

Предположим, существуют 20 столбцов, из них 10 столбцов только Один будет заполнен,
Получилось 11 столбцов заполненных в одной строке…


|аа|ab|ac|ae|ad|ag|ar|af|aw|at|W|S|R|T|Y|I|O|P|A|D|
_______+__________________+ + + + + + + + + +
____+_____________________+ + + + + + + + + +

Выводить из такой таблицы буду так…

Если в столбце "ab" есть содержимое То выводить всю строку.




Возможно, есть вариант столбцы |аа|ab|ac|ae|ad|ag|ar|af|aw|at| заменить одним пример: |WW|.

Но пока для меня сложно. Как выводить из него. В столбце WW встречается к примеру “Валюта” значит надо вывести всю строку. Также мне не ясно пока как в WW заносить разные значения, такие как Валюта и тд.

Это все как пример.

Спустя 55 минут, 29 секунд (2.02.2010 - 13:11) Kuliev написал(а):
klet
Нельзя впихнуть не впихуемое и объять не объятное, читай про 3 нормальную форму.

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

Спустя 29 минут, 27 секунд (2.02.2010 - 13:40) Winston написал(а):
klet сделай вот так:

form.php
Свернутый текст
<table width="95%" border="0">
<tr>
<td>
<form
name="form1" method="post" action="pomoch2.php">
<p> <label>
Список
<select name="select" id="select">
<option
name="aa">текст1</option>
<option
name="ab">текст2</option>
<option
name="sc">текст3</option>
</select>
</label><br/>
</p>

<p> <label>
текст:
<input type="text" name="dol">
</label>
</p>

<p>
<label>
текст:
<input type="text" name="fo">
</label>
</p>

<p>
<label>
текст:
<input type="text" name="tr">
</label>
</p>

<p>
<label>
текст:
<input type="text" name="gr">
</label>
</p>

<p>
<label>
текст:
<input type="text" name="uslov">
</label>
</p>

<p>
<label>
<input
type="submit" name="go" value="Добавить вакансию">
</label>
</p>
</form>
</td>
</tr>
</table>


add.php

Свернутый текст
<?
$db = mysql_connect ("localhost","user","user");
mysql_select_db("pjob",$db);

$go = isset($_POST['go']) ? $_POST['go'] : NULL;
$select = isset($_POST['select']) ? $_POST['select'] : NULL;
$dol = isset($_POST['dol']) ? $_POST['dol'] : NULL;
$fo = isset($_POST['fo']) ? $_POST['fo'] : NULL;
$tr = isset($_POST['tr']) ? $_POST['tr'] : NULL;
$gr = isset($_POST['gr']) ? $_POST['gr'] : NULL;
$uslov = isset($_POST['uslov']) ? $_POST['uslov'] : NULL;

if ($go) {
$sql = "INSERT INTO vac2 (`select`, `dol`, `fo`, `tr`, `gr`, `uslov`) VALUES ('".$select."', '".$dol."', '".$fo."', '".$tr."', '".$gr."', '".$uslov."')";
$result = mysql_query($sql);

if ($result == TRUE) echo "<p>Добавлено в базу !</p>";

else echo "<p>Не добавлено в базу !</p>";
}

?>


Про переменную $go забыл. Все добавил.

Спустя 20 минут, 50 секунд (2.02.2010 - 14:01) Kuliev написал(а):
klet
В общем вот тебе маленький пример, подумай над ним...

Выпадающий список

<select name="select">
<option
value="aaa">aaa</option>
<option
value="bbb">bbb</option>
<option
value="ccc">ccc</option>
<option
value="eee">eee</option>
<option
value="ddd">ddd</option>
</select>



Теперь представь табличку, с 3 полями id, select, int

В таблице лежат записи:

id|select|int
-------------
1| aaa | 1
------------
2| aaa | 2
------------
3| bbb | 1
------------
4| ccc | 2
------------
5| bbb | 1
------------
6| eee | 3


Нет ничего проще чем выбрать необходимые тебе записи


SELECT * FROM `table` WHERE `select` = 'aaa';



Данный запрос выведет все записи где есть AAA, по этому не нужно городить разные ячейки для записи определенного значения!


Спустя 6 часов, 4 минуты, 18 секунд (2.02.2010 - 20:05) klet написал(а):
Всем спасибо!



PS Что почитать по PHP , MySQL (очень доступное для понимания)?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.