Затруднение с INSERT заявка

PETROLA_94

Registered
Колеги дайте идея как мога с php да въвеждам повече от един резултат в база данни с една заявка променливите ще си ги създам с rand() но все още не мога да направя такава заявка търсих в интернет за подобна заявка но без резултат дайте някоя идея или примерна заявка ако имате свободна някоя минута . :roll: :roll:
 
Аз не разбирам какъв е проблемът? Дай пример какво си направил и кажи защо не работи или какви грешки изкарва. Няма как да налучкаме какво си пробвал.
 
няма как да дам пример защото все още не мога да съставя подобна заявка пробвах примера на колегата по отгоре но не става дава ми синтактична грешка . Няма ли начин чрез цикъл и аз да определям колко заявки да се изпълнят към дадена таблица без рефреш и кликане на всяка заявка с един submit да се въведат повече от два резултата в дадена таблиза от базата разбрали ме какво искам да ти обясня :)
 
PETROLA_94 каза:
няма как да дам пример защото все още не мога да съставя подобна заявка пробвах примера на колегата по отгоре но не става дава ми синтактична грешка . Няма ли начин чрез цикъл и аз да определям колко заявки да се изпълнят към дадена таблица без рефреш и кликане на всяка заявка с един submit да се въведат повече от два резултата в дадена таблиза от базата разбрали ме какво искам да ти обясня :)
Ето моята идея: имаш във form полета с еднакви имена. Идеята е че към едно име ще изпратиш стойности за различни редове за insert. Ето какво имам предвид:

HTML:
Име: <input name="name[]" />
Парола: <input name="pass[]" />

Име: <input name="name[]" />
Парола: <input name="pass[]" />

Име: <input name="name[]" />
Парола: <input name="pass[]" />
В случая ще регистрираме потребители. Когато изпратим form в php ще получим два масива ($_POST['name'] и $_POST['pass']), съдържащи имената на потребителите и съответстващите им пароли. И ето какво се случва в php-то:

PHP:
$names = $_POST['name'];
$paswords = $_POST['pass'];
foreach ($names as $key => $name) // минаваме през всички имена
{
$pass = $passwords [$key]; //паролата за съответния юзер
$sql = "insert into table (user, pass) VALUES('$name', '$pass')";
// сега си изпълняваш заявката
}
Другият метод, който е по-добър, е с една дълга заявка.

PHP:
//това е първата част от заявката
$sql = "insert into table (user, pass) values ";

$names = $_POST['name'];
$paswords = $_POST['pass'];
foreach ($names as $key => $name) // минаваме през всички имена
{
$pass = $passwords [$key]; //паролата за съответния юзер

//добавяме към заявката запис с името и паролата
$sql .= " ('$name', '$pass'),";
}
$sql = substr($sql, 0, -1); // махаме последната запетайка от заявката
//тук вече изпълняваш заявката
 
открих отговор на проблема ми в един от уроците на gattaka заявката ми трябваше за онлайн игра която да създава неопределен брои заявки и реших проблема с това

PHP:
while($a!=33)
{
$a= rand(1,100);
$number= rand(1,30);
$cena= rand(2,50000);
$br= rand(1,150);
mysql_query("INSERT INTO borsa_stok SET borsa_stok_number='$number', buy_cena='$cena', br_stok='$br'");
}
 
Може и само с SQL-a - единия начин е с процедура, а другия (мързелив) начин е следния:

[sql]CREATE TABLE `rand_numbers` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`rand_values` INT(10) NULL DEFAULT NULL,
PRIMARY KEY (`id`)
);

insert into `rand_numbers` ( rand_values ) values ( rand() * 9999 );
insert into `rand_numbers` ( rand_values ) select rand_values * rand() from `rand_numbers`;
insert into `rand_numbers` ( rand_values ) select rand_values * rand() from `rand_numbers`;
insert into `rand_numbers` ( rand_values ) select rand_values * rand() from `rand_numbers`;
insert into `rand_numbers` ( rand_values ) select rand_values * rand() from `rand_numbers`;
insert into `rand_numbers` ( rand_values ) select rand_values * rand() from `rand_numbers`;
insert into `rand_numbers` ( rand_values ) select rand_values * rand() from `rand_numbers`;
insert into `rand_numbers` ( rand_values ) select rand_values * rand() from `rand_numbers`;
insert into `rand_numbers` ( rand_values ) select rand_values * rand() from `rand_numbers`;
insert into `rand_numbers` ( rand_values ) select rand_values * rand() from `rand_numbers`;
insert into `rand_numbers` ( rand_values ) select rand_values * rand() from `rand_numbers`;[/sql]

И преди да кажете, че това ще инжектне 10-11 записа в новосъздадената таблица, резултата ще бъде 2 на степен 10 (2^10) което е 1024. Всеки нов ред ще вдига степента - 100 реда ще биха инжектнали 1,267,650,600,228,229,401,496,703,205,376 записа, ако имате достатъчно ресурси :)
 

Back
Горе