powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / MySQL автоинкрементные поля, где ошибка?
12 сообщений из 12, страница 1 из 1
MySQL автоинкрементные поля, где ошибка?
    #32897463
Игорь Ч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никак не могу выполнить следующий код, почему-то перестает работать, как только подставляю автоинкрементное поле
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<?   
define("DBName","test");   
define("HostName","prg01a");   
define("UserName","root");   
define("Password","voice");   
   
mysql_select_db(DBName);   
@mysql_query("create table tmp(id int not null auto_increment,a text PRIMARY KEY(id))");   
mysql_query("insert into tmp(a) values('sssss')");     
$r=mysql_query("select * from tmp");   
for($i= 0 ; $i<mysql_num_rows($r); $i++)   
{  $f=mysql_fetch_array($r);   
   echo "$f[id] $f[a]<br>\n";   
}   
?>   
возникает ошибка
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Work\WWWRoot\mysql.php on line 31
...
Рейтинг: 0 / 0
MySQL автоинкрементные поля, где ошибка?
    #32897520
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mysql_num_rows() Эта функция работает только с конструкциями SELECT. Чтобы получить количество строк, обработанных INSERT, DELETE, UPDATE, нужно юзать функцию mysql_affected_rows().
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
MySQL автоинкрементные поля, где ошибка?
    #32897562
Игорь Ч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему все работает, когда в строке создания базы данных я убираю автоинкрементное поле?
...
Рейтинг: 0 / 0
MySQL автоинкрементные поля, где ошибка?
    #32897599
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. убери собаку перед mysql_query
2. выполнение запроса сделай таким :
Код: plaintext
1.
mysql_query(....) or die(mysql_error());

После этого какие-то ошибки появляются ?
...
Рейтинг: 0 / 0
MySQL автоинкрементные поля, где ошибка?
    #32897645
Игорь Ч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделал вот так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<?   
define("DBName","test");   
define("HostName","prg01a");   
define("UserName","root");   
define("Password","voice");   
   
mysql_select_db(DBName);   
$r=mysql_query("select * from tmp");   
for($i= 0 ; $i<mysql_num_rows($r); $i++)   
{  $f=mysql_fetch_array($r);   
   echo "$f[id] $f[a]<br>\n";   
}   
?>   
все одно ошибка
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Work\WWWRoot\mysql.php on line 9
...
Рейтинг: 0 / 0
MySQL автоинкрементные поля, где ошибка?
    #32897676
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь ЧСделал вот так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<?   
define("DBName","test");   
define("HostName","prg01a");   
define("UserName","root");   
define("Password","voice");   
   
mysql_select_db(DBName);   
$r=mysql_query("select * from tmp");   
for($i= 0 ; $i<mysql_num_rows($r); $i++)   
{  $f=mysql_fetch_array($r);   
   echo "$f[id] $f[a]<br>\n";   
}   
?>   
все одно ошибка
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Work\WWWRoot\mysql.php on line 9

А ты уверен, что ты подключился к БД? Я, например, не уверен. Мне почему-то кажется, что echo mysql_select_db(DBName); Отобразит 0. Сделай то, что тебе сказал господин Макс М. и все станет ясно.
...
Рейтинг: 0 / 0
MySQL автоинкрементные поля, где ошибка?
    #32897704
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Судя по всему, скрипт цензурирован, причём чрезмерно.
По крайней мере, какой ресурс получаем из mysql_connect() не видно.
Очевидно, не отработал запрос по каким-то причинам.
Рекоммендую сделать вот так
Код: plaintext
1.
$r=mysql_query("select * from tmp") or die(mysql_error(тот_самый_ресурс));
хотя бы на время отладки.
Вообще же, если в результате цензурирования суть цикла не изменилась, изячней будет сделать так, ИМХО:
Код: plaintext
1.
2.
3.
4.
5.
while ($f=mysql_fetch_array($r))
{  
  $f=mysql_fetch_array($r);   
  echo "$f['id'] $f['a']<br>\n";   
}  
Цикл проще, а кавычки при обращении к элементам ассоциативного массива избавляют от нудных нотаций интерпретатора в логах (которые, увы, никто не читает( ).
ЗЫ. Какой я сегодня зануда...
...
Рейтинг: 0 / 0
MySQL автоинкрементные поля, где ошибка?
    #32897755
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
while ($f=mysql_fetch_array($r))
{
$f=mysql_fetch_array($r);
echo "$f['id'] $f['a']<br>\n";
}
...
ЗЫ. Какой я сегодня зануда..
а еще рассеяный...
потому как при таком цикле отработается половина массива..lol
Код: plaintext
1.
2.
while ($f=mysql_fetch_array($r))
  echo "$f['id'] $f['a']<br>\n";   
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
MySQL автоинкрементные поля, где ошибка?
    #32897772
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это да)
А всё лень, лень... Нет бы ручками написать -- cut&paste...
...
Рейтинг: 0 / 0
MySQL автоинкрементные поля, где ошибка?
    #32897903
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь ЧСделал вот так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<?   
define("DBName","test");   
define("HostName","prg01a");   
define("UserName","root");   
define("Password","voice");   
   
mysql_select_db(DBName);   
$r=mysql_query("select * from tmp");   
for($i= 0 ; $i<mysql_num_rows($r); $i++)   
{  $f=mysql_fetch_array($r);   
   echo "$f[id] $f[a]<br>\n";   
}   
?>   
все одно ошибка
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Work\WWWRoot\mysql.php on line 9

Нет, сделай так как я сказал, а не так как тебе хочется.
Если что-то непонятно - переспроси.
И не надо каждый раз mysql_num_rows в цикле прогонять.
Код: plaintext
1.
2.
3.
4.
5.
$res = mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($res) >  0 ) {
    while ($row = mysql_fetch_assoc($res)) {
              echo $row['field_name'];
    }
}
Примерно так сделай
...
Рейтинг: 0 / 0
MySQL автоинкрементные поля, где ошибка?
    #32898026
Шогал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
$res = mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($res) >  0 ) {
    while ($row = mysql_fetch_assoc($res)) {
              echo $row['field_name'];
    }
}
Примерно так сделай
В принципе условие можно выбросить - если ноль рядов то цикл просто не будет выполняться.
Код: plaintext
1.
2.
3.
4.
$res = mysql_query($sql) or die(mysql_error());
while ($row = mysql_fetch_assoc($res)) {
    echo $row['field_name'];
}
...
Рейтинг: 0 / 0
MySQL автоинкрементные поля, где ошибка?
    #32898350
Игорь Ч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, спасибо, спасибо чичас буду пробовать. Просто я делфист. С пхп первый раз столкнулся, потому "изячества" и не наблюдается :)
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / MySQL автоинкрементные поля, где ошибка?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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