Перейти к содержимому

Фото
- - - - -

Запись из пхп в мискюл Кто может помочь?


  • Вы не можете создать новую тему
  • Please log in to reply
11 ответов в этой теме

#1 KisLoi

KisLoi
  • Пользователь
  • 23 сообщений
  • Откуда:Кишинёв

Отправлено 28 марта 2005 - 22:28

<html>

<head>
<title></title>
</head>

<body>

<?php
include ("include/config.php");
if ($submit)
{
$link = mysql_connect($host, $db_user, $db_pass)
or die ("Could not connect to MySQL");

mysql_select_db ($db_name, $link)
or die ("Could not select database");

$query = "INSERT INTO temp(user) values ('$user')";
$result = mysql_query ($query);
echo "Datele au fost salvate";

} else {
?>
<form method="post" action="<? echo $PHP_SELF?>">
<input type="text" name="user"></td>
<input type="submit" name="Submit" value="Salvare">
</form>
<?
}?>
</body>

</html>

Помогите кто чем может?
Не хочет записовать в таблицу
Может чтото неверно?
Прочитала дофига инфы и полюбому не получяется
  • 0
Я не доллар, чтобы всем нравиться...(с)

#2 Syd[eX]

Syd[eX]
  • Пользователь
  • 57 сообщений
  • Откуда:Таллинн

Отправлено 29 марта 2005 - 00:03

Девушка позвольте подправить малость Ваш код,


<html>

<head>
<title></title>
</head>

<body>

<?php
include ("include/config.php");
if ($submit)
{
$link = mysql_connect($host, $db_user, $db_pass)
or die ("Could not connect to MySQL");

mysql_select_db ($db_name, $link)
or die ("Could not select database");

$query = "INSERT INTO temp(user) values ('$user')"; 

/* не стоит так делать, не факт что сработает
    если в таблице только одно поле - то добавляйте, так:

    $query = "INSERT INTO temp values('$user')";  если несколько, то
    $query = "INSERT INTO temp values('$user', '', '', '', ''.n.,'')";

так оно как то логичнее получается, хотя так как у Вас по идее тоже должна бы добавлять - но тут с последними мускулями вышедшими вообще проблем много было, может что нибудь наменяли опять. Кстати у вас между values и ('$user. пробел - вполне возможно это влияет, но маловероятно.
Но это не главная проблема,
*/

$result = mysql_query ($query);
echo "Datele au fost salvate";

} else {

/* --- а это что такое ? открываем элсу и дальше закрываем пхп код.
        простите уважаемая, мне почему то кажется что так нельзя.
        скрипт не может воспринимать статический текст хтмл как элемент кода он     
          никогда этого не поймёт */
echo("
<form method=post action=\"".$PHP_SELF."\">
<input type=text name=user></td>
<input type=submit name=Submit value=Salvare>
</form> ");

}

?>
</body>

</html>

Помогите кто чем может?                                /* денег не дам :) */
Не хочет запис(Ы)вать в таблицу   
Может что(-)то неверно?
Прочитала дофига инфы и полюбому не получ(ае)тся

Просмотреть сообщение


Добавлено в [mergetime]1112047385[/mergetime]
p.s. один совет чисто от себя. Усложняете дело, используете скажем указатели на хендлеры соединения мускульного, хотя по большому счёту это никому не надо, явно у вас же нету соединения с несколькими серверами СУБД а пхп такая штука, он же не си, по типу если сокет не закрыли потом будет боли на попу устраивать, пхп может и сам закрыть, так зачем же себя утруждать лишней головной болью ?

Сообщение изменено: Syd[eX] (28 марта 2005 - 23:49 )

  • 0
Кто еб*тся в дождь и грязь?
Наша доблестная связь.

#3 slacker

slacker
  • Пользователь
  • 81 сообщений

Отправлено 30 марта 2005 - 10:59

небольшой совет:

if(isset($submit)) {}

или еще лучше так:

if(isset($HTTP_POST_VARS['submit'])) {}

Syd[eX], а чем тебе хандлеры не угодили?
  • 0

#4 Syd[eX]

Syd[eX]
  • Пользователь
  • 57 сообщений
  • Откуда:Таллинн

Отправлено 01 апреля 2005 - 12:17

небольшой совет:

if(isset($submit)) {}

или еще лучше так:

if(isset($HTTP_POST_VARS['submit'])) {}

а если я через гет запрос пошлю ?

добавил бы только что наверно было бы разумнее проверить как гет так и пост. Хотя извращенцев кто будет по гет слать тоже мало...это правда :)))
больше для удобства киддисов :)))

Syd[eX], а чем тебе хандлеры не угодили?

Просмотреть сообщение


А зачем они ? Если ты не работаешь за несколькими базами одновременно, зачем писать лишние строки ? Этж опшинал параметр.
Хотя наверно тут спор бессмысленный, я просто жутко ленив по натуре поэтому писать лишнюю строку для меня мука :))
  • 0
Кто еб*тся в дождь и грязь?
Наша доблестная связь.

#5 úlfurinn

úlfurinn

    забавная зверушка

  • Пользователь
  • 178 сообщений

Отправлено 03 апреля 2005 - 02:06

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

Просмотреть сообщение

Попробуй и удивись :)
  • 0
Насильник и убийца, положительный персонаж.

#6 Syd[eX]

Syd[eX]
  • Пользователь
  • 57 сообщений
  • Откуда:Таллинн

Отправлено 05 апреля 2005 - 09:15

Попробуй и удивись :)

Просмотреть сообщение


у меня никогда не работало, может действительно что не так делал.
  • 0
Кто еб*тся в дождь и грязь?
Наша доблестная связь.

#7 slacker

slacker
  • Пользователь
  • 81 сообщений

Отправлено 14 апреля 2005 - 11:10

а если я через гет запрос пошлю ?

добавил бы только что наверно было бы разумнее проверить как гет так и пост. Хотя извращенцев кто будет по гет слать тоже мало...это правда :)))
больше для удобства киддисов :)))
А зачем они ? Если ты не работаешь за несколькими базами одновременно, зачем писать лишние строки ? Этж опшинал параметр.
Хотя наверно тут спор бессмысленный, я просто жутко ленив по натуре поэтому писать лишнюю строку для меня мука :))

Просмотреть сообщение


если гет запрос то - $HTTP_GET_VARS

я привык в перле с хандлерами работать, там на них всйо построено :)
  • 0

#8 Nevermore

Nevermore
  • Пользователь
  • 18 сообщений
  • Откуда:Таллинн

Отправлено 15 апреля 2005 - 15:41

Аааа, ламеры аттакуют! (без обид)

Множество лишних движений, но это для начинающего программиста нормально - «если example работает, то я лучше ничего удалять не буду» ;-)

Надо просто применить эти лишние действия.

Итак, по порядку.

INSERT ничего путного вернуть не может, так что $result = mysql_query() - это лишнее. Хотя, в данном случае $result может нам помочь:
$result = mysql_query($query);
if (!$result) {
    // если случилась какая фигня при выполнении запроса, $result будет равен false
    echo mysql_error();
}
Если фигня с запросом какая (таблицы такой нету, поля такого в таблице нету, ну или какая другая синтаксическая ошибка) - то mySQL радостно тебе об этом сообщит. Вообще, я рекомендую ещё и запрос вывести, тогда вообще всё будет понятно. Т.е.:
$result = mysql_query($sql);
if (!$result) {
    echo 'MySQL Said: '.mysql_error().'<br />Query: '.$sql;
}
Насчёт того, что не стоит так делать ( INSERT INTO temp(user) VALUES ('$user') ) - не слушай никого, человек в лучшем случае путает. Именно так и надо делать, если хочешь использовать INSERT INTO ... VALUES() для вполне определённых полей.

Я бы, на твоём месте использовал ещё более удобную конструкцию:
INSERT INTO ... SET ..., т.е.
$sql = 'INSERT INTO temp SET user = "'.$user.'"';
Ну это ладно, это я от темы отвлёкся.

Вобщем пробуешь эту фигню, постишь сюда то, что тебе mySQL скажет и мы тебе дальше объясним всё.

P.S. касательно спора насчёт субмита:
$_REQUEST - php.net
  • 0
When I’m God - everyone dies

#9 tomatensaft

tomatensaft

    Samurai Jack

  • Пользователь
  • 449 сообщений
  • Откуда:Tallinn

Отправлено 17 апреля 2005 - 17:07

Эмм, на самом деле и INSERT может иногда вернуть нечто неприятное... Это зависит от того, как устроена БД (не путать с СУБД). В простейшем случае это действительно необязательно, но если в базе данных установлена проверка на дублирование и тому подобное и пытаешься сделать INSERT дублирующей записи, mysql_query выдаст код ошибки. Так что эта проверка не лишняя.

Сообщение изменено: tomatensaft (17 апреля 2005 - 17:08 )

  • 0
"This is all I want'd t' say 'bout dat..." © Forest Gump

#10 Nevermore

Nevermore
  • Пользователь
  • 18 сообщений
  • Откуда:Таллинн

Отправлено 17 апреля 2005 - 17:20

Извиняюсь, но это bullshit. RTM.

php.net/mysql_query
For other type of SQL statements, UPDATE, DELETE, DROP, etc, mysql_query() returns TRUE on success or FALSE on error.


  • 0
When I’m God - everyone dies

#11 tomatensaft

tomatensaft

    Samurai Jack

  • Пользователь
  • 449 сообщений
  • Откуда:Tallinn

Отправлено 17 апреля 2005 - 20:53

Я говорю не о результате исполнения, как у SELECT, а именно об этих true и false, в зависимости от успешности операции... Не надо бросаться громкими словами, не разобравшись... <_<

Сообщение изменено: tomatensaft (17 апреля 2005 - 20:56 )

  • 0
"This is all I want'd t' say 'bout dat..." © Forest Gump

#12 Nevermore

Nevermore
  • Пользователь
  • 18 сообщений
  • Откуда:Таллинн

Отправлено 18 апреля 2005 - 10:11

ты говоришь

mysql_query выдаст код ошибки

код ошибки - не true и false.

P.S. прошу прощения, если был слишком резок.

Сообщение изменено: Nevermore (18 апреля 2005 - 14:17 )

  • 0
When I’m God - everyone dies