За последние 24 часа нас посетил 18491 программист и 1704 робота. Сейчас ищут 874 программиста ...

txt файл и БД

Тема в разделе "PHP и базы данных", создана пользователем 11kostik11, 8 дек 2011.

  1. 11kostik11

    11kostik11 Активный пользователь

    С нами с:
    23 мар 2011
    Сообщения:
    10
    Симпатии:
    0
    Не получается занести данные из txt файла в БД. Делал SQL запрос, но мне писало, #1045 - Доступ запрещен для пользователя...

    Есть еще php запрос, но он не записывает данные в БД

    Вот форма:


    HTML:
    1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    2. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    3. </head>
    4.  
    5. <form action="import.php" method="post" enctype="multipart/form-data">
    6. <label>Выберите файл для импорта:</label><br>
    7. <input name="file" type="file" size="50"><br>
    8. <input name="Load" type="submit" value="Load">
    9. </form>
    10. </body>
    11. </html>

    PHP:
    1.  
    2.  
    3. <?php
    4.  $db_host = '';
    5. $db_user = '';
    6. $db_password = '';
    7. $database = '';
    8.  
    9. mysql_connect($db_host, $db_user, $db_password);
    10. mysql_select_db($database);
    11.  
    12. $url = $_FILES["file"]["name"];
    13. echo 'Запись из файла: <b>'.$url.'</b><br>'; // Имя файла
    14.  
    15. $file_exp = explode(".", $_FILES["file"]["name"]);
    16. if ($file_exp[1] != "txt") die("Неправильный формат файла."); // Допустимы файлы только с расширением txt
    17.  
    18.  
    19. $handle = fopen($url, "r"); // Файл txt необходимо положить в папку tmp
    20. while ($data = fgetcsv($handle, 3000, ",")) { // "," тут символ который как разделитель полей в txt, 3000 это количество строк
    21.     $sql = mysql_query ("INSERT INTO players
    22.                                   (`NAME`, `GK`, `CWP`, `CBT`, `SB`, `DMF`, `WB`, `CMF`, `SMF`, `AMF`, `WF`, `SS`, `CF`, `REGISTERED_POSITION`, `HEIGHT`, `STRONG_FOOT`, `FAVOURED_SIDE`, `WEAK_FOOT_ACCURACY`,`WEAK_FOOT_FREQUENCY`, `ATTACK`, `DEFENSE`, `BALANCE`, `STAMINA`, `TOP_SPEED`, `ACCELERATION`, `RESPONSE`, `AGILITY`, `DRIBBLE_ACCURACY`, `DRIBBLE_SPEED`, `SHORT_PASS_ACCURACY`, `SHORT_PASS_SPEED`, `LONG_PASS_ACCURACY`, `LONG_PASS_SPEED`, `SHOT_ACCURACY`, `SHOT_POWER`, `SHOT_TECHNIQUE`, `FREE_KICK_ACCURACY`, `SWERVE`, `HEADING`, `JUMP`, `TECHNIQUE`, `AGGRESSION`, `MENTALITY`, `GOAL_KEEPING`, `TEAM_WORK`, `CONSISTENCY`, `CONDITION_FITNESS`, `DRIBBLING`, `TACTIAL_DRIBBLE`, `POSITIONING`, `REACTION`, `PLAYMAKING`, `PASSING`, `SCORING`, `ONE_ON_ONE_SCORING`, `POST_PLAYER`, `LINES`, `MIDDLE_SHOOTING`, `SIDE`, `CENTRE`, `PENALTIES`, `ONE_TOUCH_PASS`, `OUTSIDE`, `MARKING`, `SLIDING`, `COVERING`, `D-LINE_CONTROL`, `PENALTY_STOPPER`, `ONE_ON_ONE_STOPPER`, `LONG_THROW`, `INJURY_TOLERANCE`, `DRIBBLE_STYLE`, `FREE_KICK_STYLE`, `PK_STYLE`, `DROP_KICK_STYLE`, `AGE`, `WEIGHT`, `NATIONALITY`, `INTERNATIONAL_NUMBER`, `CLASSIC_NUMBER`, `CLUB_TEAM`, `CLUB_NUMBER`) //Имена всех полей кроме  ID с автоинкриментом
    23.                                    VALUE
    24.                                    ('$data[0]', '$data[1]', '$data[2]', '$data[3]', '$data[4]',  '$data[5]', '$data[6]', '$data[7]', '$data[8]', '$data[9]', '$data[10]', '$data[11]', '$data[12]', '$data[13]', '$data[14]','$data[15]', '$data[16]', '$data[17]', '$data[18]', '$data[19]', '$data[20]', '$data[21]', '$data[22]', '$data[23]', '$data[24]', '$data[25]', '$data[26]', '$data[27]', '$data[28]', '$data[29]', '$data[30]', '$data[31]', '$data[32]', '$data[33]', '$data[34]', '$data[35]',  '$data[36]', '$data[37]', '$data[38]', '$data[39]', '$data[40]', '$data[41]', '$data[42]', '$data[43]', '$data[44]', '$data[45]','$data[46]', '$data[47]', '$data[48]', '$data[49]', '$data[50]', '$data[51]', '$data[52]', '$data[53]', '$data[54]', '$data[55]', '$data[56]', '$data[57]', '$data[58]', '$data[59]', '$data[60]', '$data[61]', '$data[62]', '$data[63]', '$data[64]',  '$data[65]', '$data[66]', '$data[67]', '$data[68]', '$data[69]', '$data[70]', '$data[71]', '$data[72]', '$data[73]', '$data[74]','$data[75]', '$data[76]', '$data[77]', '$data[78]', '$data[79]', '$data[80]', '$data[81]', '$data[82]')"  //Все данные для кожного поля
    25.                                     );
    26. }
    27.  
    28. // Ниже на экран выводятся спарсенные значения //
    29. echo '<br><br><b>Все записи:</b><br>';
    30. echo '<div style="font-size:13px">';
    31. $row = 1;
    32. $fp = fopen ($url,"r");
    33. while ($data = fgetcsv ($fp, 3000, ",")) {
    34.     $num = count ($data);
    35.     print "<p> $num поля в линии $row: <br>";
    36.     $row++;
    37.     for ($c=0; $c < $num; $c++) {
    38.         print $data[$c] . " => ";
    39.     }
    40. }
    41. fclose ($fp);
    42. echo "</div>";
    43. ?>
    44.  
    45.  
    так выглядит txt файл

    NAME,GK,CWP,CBT,SB,DMF,WB,CMF,SMF,AMF,WF,SS,CF,REGISTERED_POSITION,HEIGHT,STRONG FOOT,FAVOURED_SIDE,WEAK_FOOT_ACCURACY,WEAK_FOOT_FREQUENCY,ATTACK,DEFENSE,BALANCE,STAMINA,TOP_SPEED,ACCELERATION,
    RESPONSE,AGILITY,DRIBBLE_ACCURACY,DRIBBLE_SPEED,SHORT_PASS_ACCURACY,SHORT_PASS_SPEED,LONG_PASS_ACCURACY,LONG_PASS_SPEED,SHOT_ACCURACY,SHOT_POWER,
    SHOT_TECHNIQUE,FREE_KICK_ACCURACY,SWERVE,HEADING,JUMP,TECHNIQUE,AGGRESSION,MENTALITY,GOAL_KEEPING,TEAM_WORK,CONSISTENCY,CONDITION_FITNESS,DRIBBLING,
    TACTIAL_DRIBBLE,POSITIONING,REACTION,PLAYMAKING,PASSING,SCORING,ONE_ON_ONE_SCORING,POST_PLAYER,LINES,MIDDLE_SHOOTING,SIDE,CENTRE,PENALTIES,ONE_TOUCH_PASS,
    OUTSIDE,MARKING,SLIDING,COVERING,D-LINE CONTROL,PENALTY_STOPPER,ONE_ON_ONE_STOPPER,LONG_THROW,INJURY_TOLERANCE,DRIBBLE_STYLE,FREE_KICK_STYLE,PK_STYLE,DROP_KICK_STYLE,AGE,WEIGHT,NATIONALITY,
    INTERNATIONAL_NUMBER,CLASSIC_NUMBER,CLUB TEAM,CLUB_NUMBER
    J. Macho,1,0,0,0,0,0,0,0,0,0,0,0,0,191,R,B,2,2,30,87,84,66,58,64,79,75,43,47,48,60,65,77,36,79,41,57,56,31,80,49,51,74,79,82,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,B,1,1,1,1,33,88,Austria,1,0,,0
    [/php]

    Что в этом коде не так? он выдает

    Запись из файла: players.txt
    Query was empty
     
  2. Denis_PHP

    Denis_PHP Активный пользователь

    С нами с:
    28 дек 2011
    Сообщения:
    11
    Симпатии:
    0
    а ты не пробовал просто экспортировать свой файл в базу данных?в phpmyadmin есть такая функция
     
  3. Palatin

    Palatin Активный пользователь

    С нами с:
    1 янв 2012
    Сообщения:
    2
    Симпатии:
    0
    Адрес:
    Москва
    У $db_user есть доступ на запись в БД?