Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] Заполнение таблицы БД (mysql+php) - прошу вашей помощи

Ответить
Настройки темы
[решено] Заполнение таблицы БД (mysql+php) - прошу вашей помощи

Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здравствуйте, я новичек в PHP и MySQL. Прошу вашей помощи.
Создана база данных "anibase", в которой есть таблица "anime_company", состоящая из 3 полей (id (int), name (varchar(60)), image (text)). Необходимо написать скрипт, заполняющий данную таблицу. Данные для поля "name" хранятся в текстовом файле "company.txt". Всего 120 компаний. Каждой компании соответствует свой логотип. Имена логотипов пронумерованы от 1 до 120.
Вот код скрипта:

Никаких ошибок не выдается. При выводе на экран (в конце цикла) все данные отображаются правильно. Однако в саму таблицу запись не добавляется, т.е. таблица остается пустой. Может быть кто-нибудь сможет помочь разобраться, в чем тут дело?

Отправлено: 05:21, 01-03-2008

 

Старожил


Сообщения: 313
Благодарности: 46

Профиль | Отправить PM | Цитировать


можно посмотреть ошибку которую выдает mysql-пример из мануала

PHP код: Выделить весь код

<?php 
mysql_connect
("localhost""mysql_user""mysql_password"); mysql_select_db("nonexistentdb"); 
echo 
mysql_errno() . ": " mysql_error(). "\n"mysql_select_db("kossu"); mysql_query("SELECT 
* FROM nonexistenttable"
); echo mysql_errno() . ": " mysql_error() . "\n"?>

а лучше выдать эхом request и вывести его в вашем mysql едиторе, мне например кажется что в таблице anime_company первый столбец должен быть уникальным а вы суете одну и ту же переменную $z.

потом если записей в файле меньше чем 120 заносится будет пустое значение. Если стоит NOT NULL в таблице тоже не прокатит. Надо длинну массива брать count($l) или foreach. И интересно для чего нужна $t?

P.S. Переменным не мешало бы дать нормальные имена, а то путаешься

Последний раз редактировалось bruder, 01-03-2008 в 12:03.

Это сообщение посчитали полезным следующие участники:

Отправлено: 11:20, 01-03-2008 | #2



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

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


Аватара для Coutty

Кот Ти


Сообщения: 7318
Благодарности: 1203

Профиль | Отправить PM | Цитировать


Обалдеть... Скрипт в bmp... Полтора метра... Используйте тэг [php]

Что-то я не понял - зачем открывается файл с изображением, если данные из него не используются? Если это проверка на наличие, то надо использовать функцию file_exists().
Также напрасно открывается и текстовый файл.

Цикл построен как-то странно... Можно проще:
PHP код: Выделить весь код

// делаем всякие там коннекты и переход в нужный каталог, а потом (после chdir()):

$nameArr file("company.txt"); // читаем файл в массив
foreach ($nameArr as $name// в цикле помещаем каждый элемент массива в переменную и выполняем след.операции:
  
{
  
$i++; // счётчик. Начинаем с единицы, получается...
  
if (file_exists($i ".jpg")) // если файл присутствует
    
$filePath "d:/anibase/site/bd/company/" $i ".jpg"// присваиваем переменной полный путь
  
else // если отсутствует
    
die("Файл под номером $i соизволит не присутствовать в каталоге"); // завершаем цикл. Хотя я бы тут обработчик другой поставил. Типа $filePath = "d:/anibase/site/bd/company/nofile.jpg";
  //составляем sql-запрос: 
  
$sql "INSERT INTO anime_company (name, image) VALUES ('$name', '$filePath');"
  
// мы же не забудем поставить точку с запятой в конце sql-запроса? Без неё, кажись, не будет работать. Идентификатор id по идее должен генерироваться автоматически, если ему поставили автоинкремент при создании таблицы.
  
mysql_query($sql); // собственно, сам sql-запроc делаем
  
echo "id = $i; name = $name; imagePath = $filePath<br />"// выводим на экран, раз уж хочется.
  

mysql_close($msconnect); // а остальные файлы закрывать и не требуется. 

Кажись, так должно работать.
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:01, 01-03-2008 | #3


Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


bruder, Coutty, искренне благодарю за оказанную помощь.
Цитата bruder:
мне например кажется что в таблице anime_company первый столбец должен быть уникальным а вы суете одну и ту же переменную $z. »
Первый столбец уникальный (но я не указывал автоинкремент). Переменная $z изменяется от 1 до 120.
Цитата bruder:
потом если записей в файле меньше чем 120 заносится будет пустое значение »
Да, конечно, Вы правы. Однако я писал этот скрипт для конкретной ситуации. В файле ровно 120 записей.
Цитата bruder:
И интересно для чего нужна $t? »
Благодарю, уже понял, что данная строка совсем не нужна.

Цитата Coutty:
зачем открывается файл с изображением, если данные из него не используются? Если это проверка на наличие, то надо использовать функцию file_exists().
Также напрасно открывается и текстовый файл. »
Спасибо, снова глупость написал ^__^
Цитата Coutty:
Цикл построен как-то странно... Можно проще.
Кажись, так должно работать. »
Спасибо, все работает. Понял свои ошибки и принял к сведению ваши советы.
Еще раз благодарю.

Отправлено: 16:04, 01-03-2008 | #4



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] Заполнение таблицы БД (mysql+php) - прошу вашей помощи

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Прошу вашей помощи. Pasha-hard Тест-форум 7 08-11-2009 15:52
MySQL - Прошу помощи в MySql, неполучается вывести цыкл Marinel Программирование и базы данных 4 14-03-2009 20:12
Разное - Много проблем, которые не получается решить без вашей помощи MafioZo Microsoft Windows Vista 10 07-05-2008 19:06
Создание и заполнение таблицы StringGrid в Делфи Bronko Программирование и базы данных 2 22-09-2006 13:41
[решено] Прошу вашей помощи (Борьба с Аутпост) keith Сетевые технологии 49 08-06-2006 18:42




 
Переход