kod sprawdzajacy dlugosc plikow audio w katalogu (getid3)

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

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.
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...
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";  
        

        
?>
0

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

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.

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); 
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";  
        

        
?>

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