Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]formularz
Forum PHP.pl > Forum > Przedszkole
marian2299
Mam kody w pliku txt. Wyglądają tak:
5fs42
6s2z1
itpe.

Chcę dodać je do mysql do tabeli kody, z rekordami kod, uzyty.
Chcę zrobić skrypt-formularz który będzie sprawdzał w bazie, czy wpisany kod jest w bazie i czy nie jest użyty.
Jak zrobić takie zapytanie, i jak wgrać te kody (jest ich 500) da się to zautomatyzować?
planet
oczywiście, że się da. ładujesz plik *.txt np. za pomocą funkcji file() potem przelatujesz pętlą po tablicy i robisz INSERT dla każdego kodu. a skrypt formularza to po prostu zwykły SELECT COUNT(kod) FROM tabela WHERE kod = wprowadzony kod AND kod_uzyty = false i potem tylko sprawdzenie czy COUNT(kod) == 1. to jest proste, jednak jeśli masz problemy na tym etapie to proponowałbym zacząć od zajrzenia do książek i poduczenia się co nieco.
marian2299
Czyli mogę zastosować, to z manuala ?
  1. <?php
  2. $uchwyt = @fopen ("/tmp/inputfile.txt", "r");
  3. if ($uchwyt) {
  4. while (!feof($uchwyt)) {
  5.    $buffer = fgets($uchwyt, 4096);
  6.    echo $buffer;
  7.    }
  8. fclose ($uchwyt);
  9. }
  10. ?>

Tylko to chyba wyszukuje wg linii, a ja nie znam linii ;|.
Jak "przelecieć pętlą po tablicy i zrobić insert dla każdego kodu" ?
Pawel_W
ehh, weź zassij kod z pliku, rozbij go za pomocą explode()" title="Zobacz w manualu PHP" target="_manual, potem jakaś pętla (najlepiej while) i INSERT INTO
tomekpl
Z jakiegoś mojego projektu, może się przydać.
Pewnie chodzi ci o wgrywania kodów np. dotpay

  1. <?php
  2. if($_POST['send']==6)
  3. {
  4.        $plik_tmp = $_FILES['plik6']['tmp_name'];
  5.        $plik_nazwa = $_FILES['plik6']['name'];
  6.        $plik_rozmiar = $_FILES['plik6']['size'];
  7.        
  8.        if(is_uploaded_file($plik_tmp)) {
  9.            move_uploaded_file($plik_tmp, "upload/".$plik_nazwa);
  10.            
  11.        $adres='upload/'.$plik_nazwa;
  12.        $aLogFilePath = $adres;
  13.        $aCountArray = array();
  14.        // Sprawdzenie czy plik istnieje
  15.    
  16.            if ( is_file( $aLogFilePath ) == true )
  17.            {
  18.                $sql = "DELETE FROM "._PRZED_DB."_kody_sms5";
  19.            $wynik = mysql_query($sql) or die("<script> alert('Operacja nie powiodła się!'); window.history.go(-1); </script>");
  20.            
  21.                //chmod('../admin/db.php', 0777);
  22.        
  23.                $aFile = fopen( $aLogFilePath, "r" );
  24.              
  25.                while ($kod = fgets($aFile)) {
  26.                       $kod=trim($kod);
  27.                    $q  = "INSERT INTO "._PRZED_DB."_kody_sms5(kod) values ('$kod')";
  28.                     mysql_query($q) or die("<script> alert('Nie można zapisać w bazie'); window.history.go(-1); </script>");
  29.                    
  30.                }
  31.                fclose( $aFile );
  32.                    echo "<div class='infoTlo'>Zaktualizowano!!</div>";
  33.                    unlink($adres);
  34.                  }else{
  35.                  echo "<div class='infoTlo'>Brak pliku z kodami!</div>";
  36.                }
  37.        
  38.                
  39.        }else
  40.        {
  41.            echo '<div class="infoTlo">Przesłanie pliku <b>'.$plik_nazwa.'</b> nie powiodło się.</div>';
  42.        }
  43.          
  44. }
  45. ?>
erix
Cytat
ehh, weź zassij kod z pliku, rozbij go za pomocą

Głupie rozwiązanie... Będziesz miał plik 300 MiB, to też tak zrobisz?

Cytat
Tylko to chyba wyszukuje wg linii, a ja nie znam linii ;|.
Jak "przelecieć pętlą po tablicy i zrobić insert dla każdego kodu" ?

A podstawy PHP to zna?
marian2299
Plik ma tylko 40KB.
Podstawy znam... trochę.

tomekpl, czemu tam jest
  1. <?php
  2. if($_POST['send']==6)
  3. ?>

?
erix
Cytat
Plik ma tylko 40KB.

Ale złe nawyki trzeba tępić już w zalążku.

I uzupełnij podstawy, bo nie będziemy mieli o czym rozmawiać.
Spawnm
Proszę poprawić tytuł tematu na bardziej sensowny.
marian2299
  1. <?php
  2. Czytałem kurs pehape, ale chyba były niedokładne bo o pętlach nic nie było.Tylko interesuje mnie jak każdy kod dodać do bazy i jak oznaczać kod jako użyty, lub nie.
  3. Nie mogę edytować topicu.
  4. ?>

Nie mogłem tego inaczej napisać ;/. Wywalało mi błąd autoryzacji.
erix
Edycja jest możliwa do 24h.

To zmień kurs, tego na pęczki w Sieci.
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.