kod sprawdzajacy dlugosc plikow audio w katalogu (getid3)

Odpowiedz Nowy wątek
2020-08-01 15:27

Rejestracja: 1 tydzień temu

Ostatnio: 1 tydzień temu

0

co robie zle w tym kodzie...

<?
session_start();
require_once('audioCheck/getid3/getid3.php');

// baza danych
            $link = mysql_connect('x', 'x', 'x');
            if (!$link) {
            die('Could not connect: ' . mysql_error());
            }

// jesli nie ma polaczenia
if (!mysql_select_db($_SESSION['nazwaBazyDanych'], $link)) {
echo 'Could not select database!';
} 

// current directory
$Path = getcwd();
$Path = $Path."/audioblog";
if ($handle = opendir($Path)) {
$Index = 0;

    //this is the correct way to loop over the directory.
    while (false !== ($entry = readdir($handle))) {

    //badamy rozszerzenie pliku audio bez kropki
    $formatPlikuAudio = substr(strrchr($entry, "."), 1);

    //obcinamy rozszerzenia
    $entry = str_replace('.mp3', '', $entry);
    $entry = str_replace('.wav', '', $entry); 
    $entry = str_replace('.ogg', '', $entry);
    $entry = str_replace('.opus', '', $entry);

    //tutaj musimy zrobic konkretne jedno zapytanie do bazy danych ktore bedzie loopowane poprzez wszystkie wykryte pliki w katalogu audio

    //zapytanie do bazy danych
    $sql = "SELECT id, dlugosc FROM audioblog WHERE id = '$entry' AND dlugosc = ''";

    //procedujemy zapytanie do bazy danych
    $result = mysql_query($sql, $link) or die(mysql_error());

        //liczymy wyniki
        $ile = mysql_num_rows($result);

        //robimy petle while we while jesli dany podcast jest jeszcze nie opisany

// OD TEGO MIEJSCA CHYBA COS NIE POTRAFIE DOBRZE SKLEIC... PROSZE O POMOC

        if($ile == 0) {

            $row = mysql_fetch_array($result);

            $id_old = $id = $row['id'];

            //zamieniamy : na .
            $id = str_replace(":",".",$id);

            $id = '/home/kubutek/public_html/audioblog/'.$id;

            $id = glob("$id.*");

            //ok mamy pliki do obrobienia
            $id = $id[0];

            //wyswietlamy wyniki 
            //nastepnie tutaj przeprowadzamy cala operacje
            $filename = $id;
            $getID3 = new getID3;
            $ThisFileInfo = $getID3->analyze($filename);
            $getID3->CopyTagsToComments($ThisFileInfo);
            //sleep(0.3);
            $dlugosc = $ThisFileInfo['playtime_string'];
            $bitrare = $ThisFileInfo['audio']['bitrate'];
            $sql2 = "INSERT INTO audioblog (dlugosc, bitrare) VALUES ('$dlugosc', '$bitrare') WHERE id = '$id_old'";
            mysql_query($sql2, $link); 

        }

    //koniec petli while odczytujacej podkasty w katalogu
    }

    //koniec otwarcia katalogu    
    }

?>

dziekuje i pozdrawiam
kuba

poddaje sie... jestem za cienki na to... bez waszej pomocy tego nie ogarne. jestem teraz w podrozy i nie mam mozliwosci rozlozenia sie na wersalce z laptopem na kilka dni... - James Prada 2020-08-01 15:34
Na czym to uruchamiasz? Biblioteka mysql nie zadziała od php 7.0 https://www.php.net/manual/en/mysqlinfo.api.choosing.php - Delor 2020-08-01 16:06

Pozostało 580 znaków

2020-08-01 15:36

Rejestracja: 6 lat temu

Ostatnio: 9 godzin temu

0

Eeee, nie mam czasu tego analizować, ale:
1) Nie używaj <?, zawsze powinieneś używać <?php.
2) Nazwa bazy przetrzymywana w sesji? Weź to wrzuć do jakiegoś enva.

edytowany 1x, ostatnio: serek, 2020-08-01 15:40
yeah why not? - James Prada 2020-08-01 16:44

Pozostało 580 znaków

2020-08-01 16:23

Rejestracja: 1 rok temu

Ostatnio: 2 minuty temu

0

Przyjrzałbym się zapytaniu:

James Prada napisał(a):

    //zapytanie do bazy danych
    $sql = "SELECT id, dlugosc FROM audioblog WHERE id = '$entry' AND dlugosc = ''"; //szukanie wpisów które NIE mają wpisanej długości?
...
        $ile = mysql_num_rows($result);
...        
        if($ile == 0) {  //gdy zero takich rekordów to coś zrób...
fakt mialo byc 1... - James Prada 2020-08-01 16:45
ale i tak nie dziala napisalem dziadostwo od nowa - James Prada 2020-08-01 16:45

Pozostało 580 znaków

2020-08-01 16:47

Rejestracja: 1 tydzień temu

Ostatnio: 1 tydzień temu

0

nie dziala...
pomozecie?

<?
session_start();
require_once('audioCheck/getid3/getid3.php');

// baza danych
            $link = mysql_connect('x', 'x', 'x');
            if (!$link) {
            die('Could not connect: ' . mysql_error());
            }

// WYBIERAMY BAZĘ DANYCH i test jesli nie ma polaczenia
if (!mysql_select_db($_SESSION['nazwaBazyDanych'], $link)) {
echo 'Could not select database!';
} 

// current directory
$Path = getcwd();
$Path = $Path."/audioblog";
if ($handle = opendir($Path)) {
$Index = 0;

    //this is the correct way to loop over the directory.
    while (false !== ($entry = readdir($handle))) {

    //badamy rozszerzenie pliku audio bez kropki
    $formatPlikuAudio = substr(strrchr($entry, "."), 1);

    //obcinamy rozszerzenia
    $entry = str_replace('.mp3', '', $entry);
    $entry = str_replace('.wav', '', $entry); 
    $entry = str_replace('.ogg', '', $entry);
    $entry = str_replace('.opus', '', $entry);

    //robimy z tego tablice $Dane
    $Dane[$Index] = array('plik' => $entry);

    //powiekszamy index o jeden w kazdej iteracji    
    $Index++;

    //koniec petli while odczytujacej podkasty w katalogu
    }

    //zamykamy handle
    closedir($handle);

    //koniec otwarcia katalogu    
    }

//echo '<pre>';
$plik  = array_column($Dane, 'plik');
array_multisort($plik, SORT_DESC, $Dane);
$n = count($Dane);
$n = $n - 2;
//print_r($Dane);

//odpalamy petle for
for ($i=0;$i<$n; $i++) {

$id = $Dane[$i][plik];
//zamieniamy . na : - WERSJA NAZW ID Z BAZY DANYCH
$id = str_replace(".",":",$id);
echo 'ID: '.$id.'<br>';

//zapytanie do bazy danych
$sql = "SELECT id, dlugosc FROM audioblog WHERE id = '$id' AND dlugosc = ''";
//procedujemy zapytanie do bazy danych
$result = mysql_query($sql, $link) or die(mysql_error());
//liczymy wyniki
$ile = mysql_num_rows($result);
//jesli zynik JEST
if($ile == 1) {

$id_old = $id;
$id = str_replace(":",".",$id);
$id = '/home/kubutek/public_html/audioblog/'.$id;
$id = glob("$id.*");
$id = $id[0];
echo 'PLIK: '.$id.' - NIE sprawdzony<br><br>';

//w takim razie musimy to sprawdzic

require_once('audioCheck/getid3/getid3.php');
$filename = $id;
$getID3 = new getID3;
$ThisFileInfo = $getID3->analyze($filename);
$getID3->CopyTagsToComments($ThisFileInfo);
//sleep(0.2);
$dlugosc = $ThisFileInfo['playtime_string'];
$bitrare = $ThisFileInfo['audio']['bitrate'];
$sql2 = "INSERT INTO audioblog (dlugosc, bitrare) VALUES ('$dlugosc', '$bitrare') WHERE id = '$id_old'";
mysql_query($sql2, $link); 

$nie++;

}else{

$id_old = $id;
$id = str_replace(":",".",$id);
$id = '/home/kubutek/public_html/audioblog/'.$id;
$id = glob("$id.*");
$id = $id[0];
echo 'PLIK: '.$id.' - TAK sprawdzony<br><br>';    

$tak++;

}

}

echo "Nie: $nie Tak: $tak";  

?>
nie dziala... a coś więcej na ten temat? Jakieś błędy? Objawy? Czego oczekujesz a co dostajesz? Test zakłada że mam w cookies nazwę bazy. - Delor 2020-08-01 16:53
z baza danych wszystko jesto okey - James Prada 2020-08-01 18:12
aha sorry. wam nie dziala a mi tak - James Prada 2020-08-01 18:13

Pozostało 580 znaków

2020-08-01 16:59

Rejestracja: 6 lat temu

Ostatnio: 9 godzin temu

0

Kurde, przecież jak byk masz pisane, że jest problem z połączeniem z bazą danych. Sprawdź dane do połączenia...

Pokaż pozostałe 4 komentarze
no i temat posta: kod sprawdzajacy dlugosc plikow audio w katalogu (getid3) - James Prada 2020-08-01 18:15
Szczerze? Nie chce mi się w to wgłębiać. Weź to sformatuj najpierw porządnie, dodaj wcięcia, to może ktoś więcej czasu na to poświęci. - serek 2020-08-01 18:17
szczerze to nie mow mi tego na forum dla programistow - James Prada 2020-08-01 18:18
skoro tobie sie nie chce zaglebiac? to dlaczego mi nie wolno przeklinac tu? lol - James Prada 2020-08-01 18:22
bo się ciężko taki kod czyta. Skoro chcesz pomocy, to też daj coś od siebie. - serek 2020-08-01 18:28

Pozostało 580 znaków

2020-08-01 18:37

Rejestracja: 6 lat temu

Ostatnio: 9 godzin temu

0

Chcesz pomocy, ale:
1) Kodu nie chce Ci się dobrze sformatować
2) Na pytania o błędy, które się pojawiają, nie odpowiadasz
3) Na pytanie o wersję PHP nie odpowiadasz
4) Napisałem, żebyś zmienił sesję i short tag, to to pominąłeś

0 współpracy z Twojej strony, a jeszcze się oburzasz.

nie oburzam tylko wyglupiam - James Prada 2020-08-01 18:39

Pozostało 580 znaków

2020-08-01 18:40

Rejestracja: 1 tydzień temu

Ostatnio: 1 tydzień temu

0

tylko tutaj jest problem
bo wszystko inne sprawdzilem
czy widzicie tu cos podejrzanego?

echo "$dlugosc $bitrare<br><br>";

$sql2 = "INSERT INTO audioblog (dlugosc, bitrare) VALUES ('$dlugosc', '$bitrare') WHERE id = '$id'";

mysql_query($sql2, $link); 
okey udalo sie... zastosowalem PDO... mega szybkie + zmienimem typy komorek w sql... z tinytext na time i int(30) - James Prada 2020-08-01 18:54
chcecie zobaczyc kodzik? - James Prada 2020-08-01 18:54

Pozostało 580 znaków

2020-08-01 18:55

Rejestracja: 1 tydzień temu

Ostatnio: 1 tydzień temu

0
<?
session_start();

// baza danych
            $link = mysql_connect('x', 'x', 'x');
            if (!$link) {
            die('Could not connect: ' . mysql_error());
            }

// WYBIERAMY BAZĘ DANYCH i test jesli nie ma polaczenia
if (!mysql_select_db($_SESSION['nazwaBazyDanych'], $link)) {
echo 'Could not select database!';
} 

//PDO
$servername = "x";
$username = "x";
$password = "x";
$dbname = "x";

// current directory
$Path = getcwd();
$Path = $Path."/audioblog";
if ($handle = opendir($Path)) {
$Index = 0;

    //this is the correct way to loop over the directory.
    while (false !== ($entry = readdir($handle))) {

    //badamy rozszerzenie pliku audio bez kropki
    $formatPlikuAudio = substr(strrchr($entry, "."), 1);

    //obcinamy rozszerzenia
    $entry = str_replace('.mp3', '', $entry);
    $entry = str_replace('.wav', '', $entry); 
    $entry = str_replace('.ogg', '', $entry);
    $entry = str_replace('.opus', '', $entry);

    //robimy z tego tablice $Dane
    $Dane[$Index] = array('plik' => $entry);

    //powiekszamy index o jeden w kazdej iteracji    
    $Index++;

    //koniec petli while odczytujacej podkasty w katalogu
    }

    //zamykamy handle
    closedir($handle);

    //koniec otwarcia katalogu    
    }

//echo '<pre>';
$plik  = array_column($Dane, 'plik');
array_multisort($plik, SORT_DESC, $Dane);
$n = count($Dane);
$n = $n - 2;
//print_r($Dane);

//odpalamy petle for
for ($i=0;$i<$n; $i++) {

$id = $Dane[$i][plik];

//zamieniamy . na : - WERSJA NAZW ID Z BAZY DANYCH
$id = str_replace(".",":",$id);
echo 'ID: '.$id.'<br>';

//zapytanie do bazy danych
$sql = "SELECT id, dlugosc FROM audioblog WHERE id = '$id' AND dlugosc = ''";
//procedujemy zapytanie do bazy danych
$result = mysql_query($sql, $link) or die(mysql_error());
//liczymy wyniki
$ile = mysql_num_rows($result);

//jesli zynik JEST
if($ile == 1) {

$idNew = str_replace(":",".",$id);
$idNewPath = '/home/kubutek/public_html/audioblog/'.$idNew;
$idNewPathWithExtention = glob("$idNewPath.*");
echo 'PLIK: '.$idNewPathWithExtention[0].' - NIE sprawdzony<br>';

//w takim razie musimy to sprawdzic

require_once('audioCheck/getid3/getid3.php');
$filename = $idNewPathWithExtention[0];
$getID3 = new getID3;
$ThisFileInfo = $getID3->analyze($filename);
$getID3->CopyTagsToComments($ThisFileInfo);
//sleep(0.2);
$dlugosc = $ThisFileInfo['playtime_string'];
$bitrare = $ThisFileInfo['audio']['bitrate'];

//test outputu
echo "$dlugosc $bitrare > ";

//probujemy zapisac to poprzez PDO
try {
  $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
  // set the PDO error mode to exception
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  $sql2 = "INSERT INTO audioblog (dlugosc, bitrare) VALUES ('$dlugosc', '$bitrare') WHERE id = '$id'";
  // use exec() because no results are returned
  $conn->exec($sql2);
  echo "New record created successfully";
} catch(PDOException $e) {
  echo $sql2 . "<br>" . $e->getMessage();
}

$conn = null;

$nie++;

}else{

$id = str_replace(":",".",$id);
$id = '/home/kubutek/public_html/audioblog/'.$id;
$id = glob("$id.*");
echo 'PLIK: '.$id[0].' - TAK sprawdzony<br><br>';    

$tak++;

}

}

echo "Nie: $nie Tak: $tak";  

?>

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0