Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]tworzenie zapytania na podstawie ciągu
Forum PHP.pl > Forum > Przedszkole
ghastblood
Witam mam taki problem mam taki kod


  1. $baza = file($dir.'/'.$plik_nazwa);
  2. foreach($baza as $linia)
  3. {
  4. $t = explode(".", chop($linia));
  5. echo '<pre>';
  6. print_r($t);
  7. }



  1. KOWALSKI.Jan.97
  2. SZYMCZAK.Krzysztof.96


na podstawie ciągu z pliku txt generuje mi tablice



  1. Array
  2. (
  3. [0] => KOWALSKI
  4. [1] => Jan
  5. [2] => 97
  6. )
  7. Array
  8. (
  9. [0] => SZYMCZAK
  10. [1] => Krzysztof
  11. [2] => 96
  12. )


i jak wyniki takiej tablicy dodać do mysql
b4rt3kk
  1. INSERT INTO tablica (nazwy_pol) VALUES (wartosci_pol)
Arcioch
Musisz wstawić inserta tam gdzie masz teraz printa wink.gif Czyli robisz tak:
  1. $baza = file($dir.'/'.$plik_nazwa);
  2. foreach($baza as $linia)
  3. {
  4. $t = explode(".", chop($linia));
  5.  
  6. INSERT INTO tablica (nazwy_pol) VALUES ($t[0], $t[1], $t[2])
  7. }
ghastblood
dzięki mam teraz taki kod

  1. <?php
  2. require_once "core.php";
  3.  
  4. echo '<?xml version="1.0" encoding="iso-8859-2"?>';
  5. ?>
  6. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-
  7. transitional.dtd">
  8. <html>
  9. <head>
  10. <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
  11. <title>Upload</title>
  12. </head>
  13. <body>
  14. <?php
  15. if(isset($_SESSION['zalogowany'])) {
  16. }else{
  17. header('location: login.php');
  18. }
  19.  
  20. // Zapytania MySQL
  21. $dodaj = dbquery("INSERT INTO users_file (user_file_name, user_file_add_date) VALUES ('".$_FILES['plik']['name']."', '".date("Y-m-d")."')");
  22. $zawody = dbquery("SELECT id_zawodow, nazwa_zawodow FROM zawody");
  23.  
  24. // Zminne
  25. $dir = "upload/".$_SESSION['login'];
  26.  
  27. // Kod Strony
  28.  
  29. if(file_exists($dir)){
  30. } else{
  31. mkdir($dir, 0777);
  32. }
  33.  
  34. $plik_tmp = $_FILES['plik']['tmp_name'];
  35. $plik_nazwa = $_FILES['plik']['name'];
  36. $plik_rozmiar = $_FILES['plik']['size'];
  37. if(file_exists($dir."/".$plik_nazwa)){
  38. echo 'plik o podanej nazwie istnieje';
  39. } else{
  40. if(is_uploaded_file($plik_tmp)) {
  41. move_uploaded_file($plik_tmp, "$dir/$plik_nazwa");
  42.  
  43. $dodaj;
  44.  
  45. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  46. <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!";
  47. }
  48. }
  49. echo '<form enctype="multipart/form-data" action="dodawanie.php" method="POST">';
  50. echo '<select name="zawody">';
  51. while($r = dbarray($zawody)){
  52. echo '<option value="'.$r[id_zawodow].'">'.$r['nazwa_zawodow'].'</option>';
  53. }
  54. echo '</select>';
  55. echo '<br />';
  56. echo '<select name="konkurencja">';
  57. echo '<option value="Vetterli">Vetterli</option>';
  58. echo '</select>';
  59. echo '<br />';
  60. echo '<input type="hidden" name="MAX_FILE_SIZE" value="50000" />';
  61. echo '<input name="plik" type="file" />';
  62. echo '<br />';
  63. echo '<input type="submit" value="Wyślij plik" />';
  64. echo '</form>';
  65.  
  66. $baza = file($dir.'/'.$plik_nazwa);
  67. foreach($baza as $linia)
  68. {
  69. $t = explode(".", chop($linia));
  70. $sql = ("INSERT INTO wyniki (id_zaw, konkurencja, nazwisko, imie, wynik, przestrzeliny, milimetry) VALUES (".$_POST['zawody'].",
  71. '".$_POST['konkurencja']."', '".$t[0]."', '".$t[1]."', '".$t[2]."', '".$t[3]."', '".$t[4]."')") or die(mysql_error());
  72. $result = mysql_query($sql) or die(mysql_error());
  73. }
  74.  
  75. unlink($dir.'/'.$plik_nazwa);
  76.  
  77. ?>


ale niestety nie dodaje mi do bazy danych nazwisk z polskimi znakami.

np jak jest Bańkowski to dodaje mi tylko Ba
a jak jest nazwisko na Ż to nic mi nie dodaje.
b4rt3kk
  1. // Zapytania MySQL
  2. dbquery("SET NAMES utf8");
  3. dbquery("SET CHARACTER SET utf8");
  4. $dodaj = dbquery("INSERT INTO users_file (user_file_name, user_file_add_date) VALUES ('".$_FILES['plik']['name']."', '".date("Y-m-d")."')");
  5. $zawody = dbquery("SELECT id_zawodow, nazwa_zawodow FROM zawody");


Poza tym czy baza danych ma ustawione kodowanie na UTF-8?
ghastblood
tak kodowanie w mysql jest na utf-8

niestety dodanie
  1. dbquery("SET NAMES utf8");
  2. dbquery("SET CHARACTER SET utf8");

nic nie zmienia
Arcioch
Sprawdź w jakim kodowaniu jest plik który otwierasz przez php smile.gif pewnie jest to plik txt w ANSI co może powodować krzaczki wink.gif
ghastblood
tak jest to plik txt jak to naprawić?
b4rt3kk
Otwierasz notatnikiem: Plik -> zapisz jako... -> ustawiasz kodowanie utf-8 i zapisujesz.
Arcioch
B4rt3kk to rozwiązanie mija się z celem wink.gif Ktoś wrzuca plik txt na serwer a admin musi wejść i zmienić jego kodowanie wink.gif Jak dla mnie to funkcja iconv wink.gif
ghastblood
hmmm teraz mam ?URAKOWSKI kodowanie txt utf-8 kodowanie mysql utf-8
Arcioch
Dalej krzaczy? Wrzuć gdzieś plik który wrzucasz potem do bazy. Pokaż jakie znaki na jakie zamienia. Kodowanie w pliku to utf8 bez bom?
ghastblood
udało mi sie przez to te 2 linie mi krzaczyło

  1. dbquery("SET NAMES utf8");
  2. dbquery("SET CHARACTER SET utf8");


teraz chula jak ta lala
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.