Может кто-нибудь, пожалуйста, пересмотреть этот короткий кусочек кода? - PullRequest
0 голосов
/ 11 мая 2009

Что должно произойти, так это то, что строка вставляется в таблицу, затем идентификатор этой строки выбирается путем сравнения имени и фамилии этой конкретной записи.

Возвращенный идентификатор затем вставляется в другую таблицу:

$result = false;

$result = mysql_query("INSERT INTO `reunie` (`naam`, `van`,`nooiensvan`, `selfoon`, `email`, `bywoon`, `metgesel_naam`, `spesifieke_onderwysers`, `spesifieke_musiek`, `bydrae`, `voorstelle`) VALUES ('$naam','$van','$nooiensvan','$selfoon','$email','$bywoon','$metgesel','$spesifiekeOnderwysers','$musiek','$bydrae','$voorstelle')") or die(mysql_error());

// sleep in order for query to finish
while ($result === false) {
   sleep(1);
}

$result = mysql_query("SELECT `id` FROM `reunie` WHERE `naam` = '$naam' AND `van` = '$van' ORDER BY `id` DESC LIMIT 1") or die(mysql_error());

// Редактировать

Спасибо, ребята, за важные комментарии. Спасибо за то, что научили меня нескольким важным моментам.

Ответы [ 4 ]

11 голосов
/ 11 мая 2009

Попробуйте:

$name = mysql_real_escape_string($name);
$van = mysql_real_escape_string($van);
$nooiensvan = mysql_real_escape_string($nooiensvan);
$selfoon = mysql_real_escape_string($selfoon);
$email = mysql_real_escape_string($email);
$bywoon = mysql_real_escape_string($bywoon);
$metgesel = mysql_real_escape_string($metgesel);
$spesifiekeOnderwysers = mysql_real_escape_string($spesifiekeOnderwysers);
$musiek = mysql_real_escape_string($musiek);
$bydrae = mysql_real_escape_string($bydrae);
$voorstelle = mysql_real_escape_string($voorstelle);
$query = <<<END
INSERT INTO reunie
(naam, van, nooiensvan, selfoon, email, bywoon, metgesel_naam,
spesifieke_onderwysers, spesifieke_musiek, bydrae, voorstelle)
VALUES
('$naam','$van','$nooiensvan','$selfoon','$email','$bywoon','$metgesel',
'$spesifiekeOnderwysers','$musiek','$bydrae','$voorstelle')
END;
$result = mysql_query($query) or die(mysql_error() . ' - ' . $query);
$id = mysql_insert_id();

И да, все эти mysql_real_escape_string () действительно важны .

5 голосов
/ 11 мая 2009

Вы должны использовать mysql_insert_id вместо выбора, чтобы получить идентификатор.

1 голос
/ 11 мая 2009
// sleep in order for query to finish

while ($result === false) {
   sleep(1);
}

Мне нравится, что если $ result действительно ложно, скрипт просто остановится

1 голос
/ 11 мая 2009

Вы не пытаетесь заново изобрести колесо здесь?

Почему бы не использовать

$result = mysql_query( "INSERT ... " );
$new_id = mysql_insert_id();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...