Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

Автоматическое заполнение поля модель и переделывание его в артикул


 Поделиться

Рекомендованные сообщения

Добрый вечер, уже какой день бьюсь над переделыванием поле модель в артикул.

 

Хочу сделать чтобы поле модель при добавлении товара заполнялось автоматически рандомным четырехзначным числом.

1) Это идея у меня получилась! Но тут возникает другая проблема хоть это и 4 числа все же они могут сгенерироваться опять и он добавит его в это поле,  что из этого следует при поиске продукта по его артикулу может попасться несколько товаров, по этому я хочу сделать проверку из БД рандомного числа и создания нового.

2) И проверка рандомного чилса у меня не совсем вышла, точнее не выходить вытащить весь столбик из БД и сравнить его с рандомным числом.

$result = mysql_query("SELECT model FROM oc_product") ;
$myrow = mysql_fetch_array ($result);

do {

echo "Артикулы в БД - " . $myrow['model'] . "<br>";
	
}

while ($myrow = mysql_fetch_array ($result));

echo "<br><br>------------------<br><br>";

$random = rand (1000,9999);

while ($myrow == $random)
{
	$random = rand (1000,9999);	
}

echo "Число из рандома - " . $random;
Ссылка на комментарий
Поделиться на других сайтах


Ух....

$random = rand (1000,9999); // получаем случайное число
$result = mysql_query("SELECT model FROM oc_product WHERE  model = $random ") ;

Дальше догадаетесь сами или подсказать?

Ссылка на комментарий
Поделиться на других сайтах

Ух....

$random = rand (1000,9999); // получаем случайное число
$result = mysql_query("SELECT model FROM oc_product WHERE  model = $random ") ;

Дальше догадаетесь сами или подсказать?

 

завтра попробую догадаться))) но думаю скорее всего придется подсказать потому что я очень плохо разбираюсь в пхп....   и меня очень смущает вот эта команда 

  1. $myrow = mysql_fetch_array ($result);
Ссылка на комментарий
Поделиться на других сайтах


Ух....

$random = rand (1000,9999); // получаем случайное число
$result = mysql_query("SELECT model FROM oc_product WHERE  model = $random ") ;

Дальше догадаетесь сами или подсказать?

		$random = rand (1,3); // получаем случайное число
		$result = mysql_query("SELECT model FROM oc_product WHERE  model = '$random'") ;
		$myrow = mysql_fetch_array ($result);
 
		while ($myrow == $random)
		{
		$random = rand (4,6);	
		}
		$this->data['model'] = $random;

сделал вот так вот, но не работает он все равно добавляет тоже число

Ссылка на комментарий
Поделиться на других сайтах


Пора познакомиться с функцией

mysql_num_rows

Ссылка на комментарий
Поделиться на других сайтах

Пора познакомиться с функцией

mysql_num_rows

 

хорошо сегодня почитаю!) просто я искал как да что и кроме той функции что вытаскивает одну строчку ничего дельного для себя не нашел...

 

А сама логика кода у меня правильная?

Ссылка на комментарий
Поделиться на других сайтах


James026, Это не существенно -

Получаем  случайное значение, до тех пор пока количество записей не ноль

 

Далее также непонятно, потому что 

$random = rand (1000,9999) -  и че товара будет чуть меньше 9000?

 

а еще существует mt_rand()

Ссылка на комментарий
Поделиться на других сайтах

James026, Это не существенно -

Получаем  случайное значение, до тех пор пока количество записей не ноль

 

Далее также непонятно, потому что 

$random = rand (1000,9999) -  и че товара будет чуть меньше 9000?

 

а еще существует mt_rand()

 

 

да товара будет меньше чем 9000. 

		$random = rand (1,8);
		/*$result = mysql_query("SELECT * FROM oc_product WHERE model=2");*/
		$result = mysql_query("SELECT model FROM oc_product WHERE model = '.$random.'") ;
		$myrow = mysql_fetch_array($result);
		$a = $myrow['model'];
		if ($a == NULL)
		{
		echo "<br>Переменная равна 0<br>";
		}
		while ($myrow == $random)
		{
		$random = rand (9,11);	
		}

Попробовал такой код в отдельном файле мне выводится что переменная = 0 

 

 

 

Получаем  случайное значение, до тех пор пока количество записей не ноль

вот этого я  не понял. это адресовано мне?

Ссылка на комментарий
Поделиться на других сайтах


 

вот этого я  не понял. это адресовано мне?

Да, конечно

DO {
$random = rand (1000,9999); // получаем случайное число
$result = mysql_query("SELECT model FROM oc_product WHERE  model = $random ") ;
} WHILE  mysql_num_rows() == 0
Ссылка на комментарий
Поделиться на других сайтах

 

Да, конечно

DO {
$random = rand (1000,9999); // получаем случайное число
$result = mysql_query("SELECT model FROM oc_product WHERE  model = $random ") ;
} WHILE  mysql_num_rows() == 0

 

 

ты что то не то написал или я не правильно понимаю что там написано... ты вообще никаких параметров не задал для WHILE или как то коряво написал, если имелось введу что делать рандом пока значение из базы не будет равно нулю то это не правильно потому что в базе не может быть значение ноль.

Ссылка на комментарий
Поделиться на других сайтах


Я СПЕЦИАЛЬНО не написал правильный код

 

Ты ведь хочешь самостоятельно разобраться? КниЖки в руки.

 

Я даже словами описал алгоритм анализа

Ссылка на комментарий
Поделиться на других сайтах

Я СПЕЦИАЛЬНО не написал правильный код

 

Ты ведь хочешь самостоятельно разобраться? КниЖки в руки.

 

Я даже словами описал алгоритм анализа

 

 

ну хорошо почитаю сегодня попоже))) ну просто я быстренько пробовал днем в WHILE  mysql_num_rows($result == 0);   сделать не получилось сайт завис вроде как мне помнится)))

Ссылка на комментарий
Поделиться на других сайтах


Возможно, что и завис...

Выход из цикла do-while происходит при истинности логического выражения в условии.

 

Т.е. генерация случайных чисел должна происходить пока результат выборки не Станет равным 0.

 

т.е Цикл с предусловием

while true {

}

бесконечный цикл

 

Цикл с пост условием

do {

} while false

бесконечный цикл

 

 

 

Разница в этих двух циклах

Ссылка на комментарий
Поделиться на других сайтах

Возможно, что и завис...

Выход из цикла do-while происходит при истинности логического выражения в условии.

 

Т.е. генерация случайных чисел должна происходить пока результат выборки не Станет равным 0.

 

т.е Цикл с предусловием

while true {

}

бесконечный цикл

 

Цикл с пост условием

do {

} while false

бесконечный цикл

 

 

 

Разница в этих двух циклах

 

 

эм я конечно плохо разбираюсь очень в php и надеюсь что это только пока что, но как четырехзначное число может быть равно 0??? если он это число сравнивает с другими четырехзначными которые уже есть в БД. его мне кажется как максимум можно приравнять к follese что мол нету такого числа в БД 

Ссылка на комментарий
Поделиться на других сайтах


а где я сравниваю четырехзначное число

Ссылка на комментарий
Поделиться на других сайтах

а где я сравниваю четырехзначное число

 

mysql_num_rows — Возвращает количество рядов результата запроса

эм я что то не то прочитал? или я вообще не понимаю зачем мне туда количество рядом...

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

Ссылка на комментарий
Поделиться на других сайтах


Зачем Вам тащить всю выборку, если показанный запрос позволяет выбрать или 1 или 0

 

и "фетчить" ничего не надо.

Ссылка на комментарий
Поделиться на других сайтах

Зачем Вам тащить всю выборку, если показанный запрос позволяет выбрать или 1 или 0

 

и "фетчить" ничего не надо.

 

 

в смысле 1 или 0 он позволяет выбрать.... я не понимаю я прочитал что он выводит количество рядов....

Ссылка на комментарий
Поделиться на других сайтах


Правильно... количество строк (рядов)

 

Если 0 - то строк не найдено, если больше 0,  т.е. хотя бы одна строка, то  нужно случайное число перегенерировать.

Ссылка на комментарий
Поделиться на других сайтах

Зачем Вам тащить всю выборку, если показанный запрос позволяет выбрать или 1 или 0

 

и "фетчить" ничего не надо.

 

 

я это сделал! вроде бы))) но есть небольшая так сказать не доработка....

$random = rand (1,5); // получаем случайное число
$result = mysql_query("SELECT * FROM oc_product WHERE model = $random") ;
$myrow = mysql_fetch_array ($result);
$a = $myrow['model'];
while ( $a == $random )
{
	$random = rand (9,12);
}

как бы мне сделать чтоб если у него закончились рандомные числа он это сообщил так сказать ну или что то сделал) просто допустим щас он мне после того как я создал 5 товаров он мне начал проставлять из второго рандома и он их уже не проверяет в базе получается а просто ставит. Делаю из этого вывод если все числа рандомные закончатся то он тупо повесит сайт.... верно?

Ссылка на комментарий
Поделиться на других сайтах


я это сделал! вроде бы))) но есть небольшая так сказать не доработка....

$random = rand (1,5); // получаем случайное число
$result = mysql_query("SELECT * FROM oc_product WHERE model = $random") ;
$myrow = mysql_fetch_array ($result);
$a = $myrow['model'];
while ( $a == $random )
{
	$random = rand (9,12);
}

как бы мне сделать чтоб если у него закончились рандомные числа он это сообщил так сказать ну или что то сделал) просто допустим щас он мне после того как я создал 5 товаров он мне начал проставлять из второго рандома и он их уже не проверяет в базе получается а просто ставит. Делаю из этого вывод если все числа рандомные закончатся то он тупо повесит сайт.... верно?

 

Ссылка на комментарий
Поделиться на других сайтах


Делаю из этого вывод если все числа рандомные закончатся то он тупо повесит сайт.... верно?

 

Верно

 

 

Пля.. ППЦ

 

Я тут талдычу о цикле с постусловием, а мне лепят горбатого с предусловием...

Я говорю о mysql_num_rows

А меня пичкают mysql_fetch_array

 

Так еще и не правильно применяя.  :(

Ссылка на комментарий
Поделиться на других сайтах

Верно

 

 

Пля.. ППЦ

 

Я тут талдычу о цикле с постусловием, а мне лепят горбатого с предусловием...

Я говорю о mysql_num_rows

А меня пичкают mysql_fetch_array

 

Так еще и не правильно применяя.  :(

 

 

хахах ну прости  :-D   зато у меня работает же  :-D  :-D  :-D  ладно сейчас подумаю как с той твоей функцией сделать.... но я что то не понимаю... она мне вообще ничего не выводила...

Ссылка на комментарий
Поделиться на других сайтах


Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.