phpDocumentor koliportal
[ class tree: koliportal ] [ index: koliportal ] [ all elements ]

Source for file page.roomlist-upload.php

Documentation is available at page.roomlist-upload.php

  1. <?php
  2. /** Szobalista feltöltésére szolgáló felület kódja
  3. * @package koliportal
  4. */
  5. $sql_i = array();
  6. /** Egy szoba adatainak ellenőrzése
  7. *
  8. * Ellenrőzi a feltöltött CSV fájl egy sorát.
  9. *
  10. * @todo Az épületazonosító érvényességének ellenőrzése mehetne egy
  11. * függvénybe, ahol staticban tárolódna a $barr - gyorsabb lenne -
  12. * vagy már ilyen a get_buildings_list() is?
  13. *
  14. * @param array $arr A rekord mezői tömbben
  15. * @return mixed true: ha minden megfelelő, egyébként hibaüzenet
  16. */
  17. function check_room_row($arr)
  18. {
  19. /* a "roomid" -t ennél jobban nem kell ellenőrizni,
  20. mert új szobánál akár hiányozhat is */
  21. if (!isset($arr["roomid"]))
  22. {
  23. return "Nincs roomid mező";
  24. }
  25. if (!isset($arr["rnum"]) || (strlen($arr["rnum"]) < 2))
  26. {
  27. return "Hiányzó szobaszám!";
  28. }
  29. if (!isset($arr["space"]) || !is_numeric($arr["space"]))
  30. {
  31. return "Hiányzó vagy érvénytelen a férőhelyek száma";
  32. }
  33.  
  34. /** */
  35. $barr = get_buildings_list();
  36. if (!isset($barr[$arr["bid"]]))
  37. {
  38. return "Nem létező épületazonosító";
  39. }
  40.  
  41. $allowed_rtypes["ST_HOMOGEN"] = true;
  42. $allowed_rtypes["ST_MALE"] = true;
  43. $allowed_rtypes["ST_FEMALE"] = true;
  44. $allowed_rtypes["ST_HETEROGEN"] = true;
  45. if (!isset($allowed_rtypes[$arr["rtype"]]))
  46. {
  47. return "Érvénytelen szobakategória!";
  48. }
  49.  
  50. return true;
  51. }
  52.  
  53. if (count($_POST) > 0)
  54. {
  55. debug_echo("post OK");
  56. if (isset($_FILES["szlist"]) &&
  57. is_uploaded_file($_FILES["szlist"]["tmp_name"]))
  58. {
  59.  
  60. $f = fopen($_FILES["szlist"]["tmp_name"], 'r');
  61. if ($f === false)
  62. {
  63. myerr("Fájlmegnyitási hiba a szerveren.");
  64. }
  65. while (!feof ($f))
  66. {
  67. $line = fgets($f, 1024);
  68. if ($line === false)
  69. break;
  70. $arr = csv2array($line, $CSV_ROOMLIST_FSEQ);
  71. $chk = check_room_row($arr);
  72. if (true !== $chk)
  73. {
  74. $errs[] = $chk;
  75. $errc++;
  76. $sql_i = array();
  77. break;
  78. }
  79. /* módosításnál csak a név és az épület változhat, ha mást
  80. is akar módosítani, akkor ajánlatos előbb törölni.
  81. pl.: ha megváltozik a férőhelyek száma, csökken, akkor oda
  82. a konzisztencia a room_conn_student táblával */
  83. if (is_room_exist($arr["roomid"]))
  84. {
  85. $sql_i[] = sprintf("UPDATE rooms SET rnum = '%s',
  86. rname = '%s', bid = '%d' WHERE roomid = '%d'", $arr["rnum"], $arr["rname"],
  87. $arr["bid"], $arr["roomid"]);
  88. } else {
  89. $sql_i[] = sprintf("INSERT INTO rooms (rnum, rname, bid, space, rtype)
  90. VALUES ('%s', '%s', '%d', '%d', '%s')",
  91. $arr["rnum"], $arr["rname"], $arr["bid"], $arr["space"], $arr["rtype"]);
  92. }
  93. }
  94. fclose($f);
  95. } else {
  96. myerr("Töltsön fel helyes fájlt!");
  97. }
  98. } else {
  99. /* nincs semmi tennivalónk? */
  100. ?>
  101.  
  102. <?php
  103. }
  104.  
  105. ?>
  106. <h2>Szobalista feltöltése</h2>
  107.  
  108. <p id="szobalist_upload_form">
  109. <form enctype="multipart/form-data" id="szobalista_upload" method="post" action="<?= $_SERVER["PHP_SELF"] ?>?action=<?= $action ?>">
  110. Szobalista:
  111. <input type="file" id="szlist" name="szlist" /><br />
  112. <input type="submit" value="feltölt" />
  113. <input type="hidden" id="sz" name="sz" value="sz" />
  114. </form>
  115. </p>
  116.  
  117. <?php
  118. show_errors($errs);
  119. ?>
  120. <p>
  121. <?php
  122. if (count($sql_i) > 0)
  123. {
  124. $c = 0;
  125. $sql_d = "DELETE FROM rooms";
  126. //mysql_query($sql_d, $database)
  127. //or myerr("Az adatbázis kiürítése nem sikerült.");
  128. reset($sql_i);
  129. while (list(, $i) = each($sql_i))
  130. {
  131. //echo $i . "\n";
  132. mysql_query($i, $database)
  133. or myerr("Adatfeltöltési hiba! ($i)");
  134. $c++;
  135. }
  136. printf("%d rekord sikeresen feltöltve/módosítva.", $c);
  137. }
  138. ?>
  139. </p>

Documentation generated on Wed, 18 May 2005 19:24:43 +0200 by phpDocumentor 1.3.0RC3