захажу в клиент Mysql пишу SELECT * FROM имя таблицы , перед тем как занести данные в таблицу писало - Empty set (0.00 sec) , как я понял озачает что она пустая , после того как занес имя в нее через скрипт , введя снова команду SELECT * FROM имя таблицы , появляется поле но почемуто пустое ... и с каждым новым вводом какого нибудь другого имени поле увеличивается а данных не видно ... что это подскажите пожалуйста ?
Пусто у тебя в этих полях [sql]Enter password: ******** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 100 Server version: 5.1.34-community MySQL Community Server (GPL) Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> use db Database changed mysql> select * from captcha; +----------------------------------+------+------------+ | key | code | time | +----------------------------------+------+------------+ | 6d1b047d6a2ec0bbbf01bb3e87727752 | hbt | 1256679075 | | 63a16e77dedbb13bd4a3f70797bba865 | rtq | 1256676895 | +----------------------------------+------+------------+ 2 rows in set (0.00 sec) mysql>[/sql]
Да пусто ... кстати тока что создал имя в клиенте командой - INSERT INTO имя_таблицы VALUES ('vasya'); и теперь видно это имя в таблице а все остальные строчки пустые .. если пытаюсь добавить какоето другое имя через скрипт появляется просто пустая строчка ...
<? $hostname = "localhost"; $username = "root"; $password = ""; $dbName = "aaa"; $userstable = "bbb"; mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение "); mysql_select_db($dbName) or die(mysql_error()); echo "<CENTER>"; echo "Привет, ".$_POST['name']; echo "</CENTER>"; $query = "INSERT INTO $userstable VALUES('$name')"; mysql_query($query) or die(mysql_error()); mysql_close(); ?>
А вот скрипт формы если интересно : <HTML> <HEAD> <BODY> <CENTER> <P> <TABLE WIDTH = 400><TR><TD align = right> <FORM ACTION="email.php" METHOD="POST"> Ваше имя:<BR> <INPUT TYPE="text" NAME="name" SIZE="20" MAXLENGTH="30"> <INPUT TYPE="submit" VALUE="Отправить запрос!"> </FORM> </TD></TR></TABLE></CENTER> </BODY> </HTML>
у меня кстати вот так вот неработает... если указывать вместо имени таблицы переменную $query = "INSERT INTO $userstable VALUES('$name')"; <?php $link = mysql_connect("localhost","root","") or die("Could not connect: " . mysql_error()); $db="aaa"; mysql_select_db($db) or die("Не могу открыть $db: ".mysql_error()); $userstable = "bbb"; $name=$_POST['name']; $query="INSERT INTO "."$userstable"."VALUES('$name')"; mysql_query($query,$link); ?> попробуй так Зы... в общем что то я невижу чтобы ты присваивал переменной $name значение полученное из POST или я чёто непонимаю оО ну или своё исправь раз оно у тебя так работает <? $hostname = "localhost"; $username = "root"; $password = ""; $dbName = "aaa"; $userstable = "bbb"; mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение "); mysql_select_db($dbName) or die(mysql_error()); echo "<CENTER>"; echo "Привет, ".$_POST['name']; echo "</CENTER>"; $name=$_POST['name']; $query = "INSERT INTO $userstable VALUES('$name')"; mysql_query($query) or die(mysql_error()); mysql_close(); ?> в общем хз )
Работает ) спасибо правда чуть изменил... вот : <? $hostname = "localhost"; $username = "root"; $password = ""; $link = mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение "); $db = "aaa"; mysql_select_db($db) or die(mysql_error()); $userstable = "bbb"; $name=$_POST['name']; $query = "INSERT INTO $userstable VALUES('$name')"; mysql_query($query,$link); mysql_close(); ?> а для чего $link ? чтото я врубаюсь...
sam это указатель соединения. иногда требуется работать с несколькими разными серверами бд. эта переменная, передавая вторым параметром в mysql_query, указывает, в каком соединении нужно выполнить запрос.
да кажется пустое поле появлялось , потому-что я не присваивал переменной $name значение полученное из POST , тока-что убрал присваивание и появилось пустое поле в результате запроса ... p/s Спасибо за помощь!
Еще такой вопрос ... У меня таблица из 3 столбцов , хочу записать сразу в три столбца соответсвующие данные но записывается только в превый , а остальные два пустыми остаются ,вот скрипт - <? $hostname = "localhost"; $username = "root"; $password = ""; mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение "); $db = "aaa"; mysql_select_db($db) or die(mysql_error()); $userstable = "bbb"; $name=$_POST['name']; $email=$_POST['email']; $choise=$_POST['choise']; $query = "INSERT INTO $userstable VALUES( '$name','$email','$choise' )"; mysql_query($query); mysql_close(); ?>
Попробуйте так: PHP: <? $hostname = "localhost"; $username = "root"; $password = ""; $db = "aaa"; $userstable = "bbb"; mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение "); mysql_select_db($db) or die(mysql_error()); if(!isset($_POST['name'])) $name = 'NULL'; else $name = "'".$_POST['name']."'"; if(!isset($_POST['email'])) $email = 'NULL'; else $email = "'".$_POST['email']."'"; if(!isset($_POST['choise'])) $choise = 'NULL'; else $choise = "'".$_POST['choise']."'"; $sql = "INSERT INTO $userstable VALUES($name,$email,$choise)"; $query = mysql_query($query); mysql_close(); ?> Если в один из столбцов сохранилась запись NULL, значит один из элементов массива $_POST не был получен, а значит и передан он тоже не был. Только учтите, что в этих столбцах должно быть возможно установить значение NULL на уровне MySQL.