Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Совсем запутался... Помогите! / 2 сообщений из 2, страница 1 из 1
30.11.2003, 12:35
    #32338659
King Araya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Совсем запутался... Помогите!
Привет всем!
У меня есть следующая таблица (registr) с данными:
id | code | lastname | firstname | card

Для добавления данных используется следующая форма:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<tr>
<td align= "right" >
<form action= "lisa.php"  method= "post" >Code:</td>
<td><input type= "text"  name= "code"  size= "30 " maxlength= "11 "></td>
</tr>
<tr>
<td align= "right" >Last name:</td>
<td><input type= "text"  name= "lastname"  size= "30 " maxlength= "40 "></td>
</tr>
<tr>
<td align= "right" >First name:</td>
<td><input type= "text"  name= "firstname"  size= "30 " maxlength= "40 "></td>
</tr>
<tr>
<td colspan= "2 " align= "center" ><input type= "submit"  name= "submit"  value= "Add" > <input type= "reset"  value= "Cansel" ></form></td>
</tr>

Задача в том, чтобы при добавлении данных в зависимости от того, на какую букву начинается фамилия (lastname), автоматически поставить следующий по порядку номер карты (card) - то есть у фамилий, начинающихся с буквы "А", карты начинаются с 1 и т.д., с буквы "В" снова с 1 и т.д....
Скрипт должен выбрать максимальное имеющееся значение карты из карт фамилий, начинающихся на первую введенную в форме букву фамилии, увеличить это значение на 1 и поставить введенные данные и получившийся номер карты в базу данных.
Скрипт такой:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
if ($submit)
{
echo '<tr><td colspan="2" align="center">';
$mustbe = array('code', 'lastname', 'firstname'); 
$error= ""; 
for($i=0 ; $i<sizeof($mustbe);$i++) 
	{  
    if (!strlen($HTTP_POST_VARS[$mustbe[$i]]))  
    $error = $mustbe[$i];  
	}  
if(strlen($error)) 
	{ 
    echo '<p class="error">Error!</p>Please fill all form fields.';  
	} 
else 
	{  
$lastname = addslashes($_POST['lastname']);
$firstname = addslashes($_POST['firstname']);
$code = addslashes($_POST['code']);
$number_q = mysql_query("SELECT MAX(card) AS number FROM registr WHERE LEFT(lastname, 1 ) = LEFT(\ "$lastname\" , 1 ) AND lastname < \ "$lastname\"  ") or die();
if(!mysql_num_rows($number_q)) 
{
$number = 1 ;
}
else {
    $rida = mysql_fetch_array($number_q);
    $number = $rida["number "] + 1 ;
}
mysql_query("INSERT INTO registr (id, code, lastname, firstname, card) VALUES ( 0 ,\ "$code\" ,\ "$lastname\" ,\ "$firstname\" ,\ "$number\" )") or die();
	echo 'Data added successfully. Card number is &number.';
	}
echo '</td></tr>';
}

При использовании этого скрипта данные добавляются, но номер карты ставится всегда 1 и не увеличивается :(
Помогите, пожалуйста, разобраться.
Извините за спутанность изложения :)
...
Рейтинг: 0 / 0
01.12.2003, 20:16
    #32339971
King Araya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Совсем запутался... Помогите!
проблема решена!
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Совсем запутался... Помогите! / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]