Q:

Tocar som de alerta após consulta no banco (PHP + MYSQL)

Preciso que seja tocado um som de alerta após uma consulta no banco...
Exemplo lógico:
NUM_LINHAS = NUMERO DE LINHAS DA TABELA
SE (NUM_LINHAS > 0){
play();
}
Minha função javaScript que toca o som:
<audio id="audio">
    <source src="alert.mp3" type="audio/mp3" />
</audio>

<script type="text/javascript">

    audio = document.getElementById('audio');

function play(){
    audio.play();
}

</script>

A função "play()" está funcionando pois criei um botão para testar e o
  som é reproduzido através do onclick()

<input type="button" value="test sound" onclick="play()";>

OK. Agora preciso que este som de alerta seja tocado após a minha consulta no banco, que terá uma condição.
Segue o código:
<?php                           
//seleciona o numero de linhas da tabela
$consulta = $conexao->query("SELECT COUNT(*) FROM toyota_base where statuz='NOVO'");                            

//atribui a variavel $num_rows o numero de linhas
$num_rows = $consulta->fetchColumn();

//verifica se o numero de linhas é maior que 0 (zero)                       
if($num_rows > 0){
    //toca o som de alerta
    echo "<script> play();</script>";
}

?>

Não sei porque mais o som não é tocado...preciso de ajuda com isso.
Fiz um teste com um "alert()" ao invez de minha função "play()" e o alert funciona corretamente, mas o som não toca...

A:

Sua função javascript provavelmente não estava funcionando (acredito que) porque você estava "tocando" o som antes do elemento audio ser criado. Por exemplo:
<?php
//seleciona o numero de linhas da tabela
$consulta = $conexao->query("SELECT COUNT(*) FROM toyota_base where statuz='NOVO'");

//atribui a variavel $num_rows o numero de linhas
$num_rows = $consulta->fetchColumn();

//verifica se o numero de linhas é maior que 0 (zero)
if($num_rows > 0){
    //toca o som de alerta
    echo "<script> play();</script>"; // <-- O elemento audio só vai ser criado daqui algumas linhas,
                                      //     não tem como ele ser tocado ainda.
}

?>

<audio id="audio">
   <source src="alert.mp3" type="audio/mp3" />
</audio>

<script type="text/javascript">

   audio = document.getElementById('audio');

function play(){
   audio.play();
}

</script>

Se você estiver usando jQuery troque seu echo por:
echo "<script> jQuery(document).ready(play);</script>";

Se não estiver, aqui tem uma pergunta (em inglês) sobre
como criar o evento ready com javascript puro.
Ou simplesmente coloque o if e no elemento audio:
<?php 
    if($num_rows > 0){
?>
<audio id="audio" autoplay>
   <source src="alert.mp3" type="audio/mp3" />
</audio>
<?php
    }
?>

Assim o elemento audio só será criado se houver registros na tabela e não gerará consumo de banda desnecessária baixando o áudio quando não houver (o mesmo acontece com sua solução embed). Note também que o atributo autoplay faz com que o audio seja reproduzido automaticamente quando estiver pronto e não precisa criar nenhuma função javascript pra isso.

