Ir para conteúdo
Fórum Script Brasil
  • 0

carregar menudropdown com mysql e preencher text


crzcrazycrz

Pergunta

     <?php
        $connection = new PDO('mysql:host=localhost;dbname=lanchonete', 'root', '');

      //insertion function
        $smt = $connection->prepare('select * From lanches');
        
    /**
        * função que retorna o select
        */
        function montaSelect()
        {
        $smt = $connection->prepare('select * From lanches');
        
         
        if( mysql_num_rows( $smt ) > 0 )
        {
        while( $dados = mysql_fetch_assoc( $smt ) )
        {
        $opt .= '<option value="'.$dados['lanche'].'">'.$dados['valor'].'</option>';
        }
        }
        else
        $opt = '<option value="0">Nenhum cliente cadastrado</option>';
         
        return $opt;
        }
         
        /**
        * função que devolve em formato JSON os dados do cliente
        */
        function retorna( $id )
        {
        $id = (int)$id;
     
       $smt = ('select * From lanches');
           

        $arr = Array();
        if( mysql_num_rows( $smt ))
        {
        while( $dados = mysql_fetch_object( $smt ) )
        {
        $arr['lanche'] = $dados->lanche;
        $arr['valor'] = $dados->valor;
        }
        }
        else
        $arr[] = 'endereco: não encontrado';
         
        return json_encode( $arr );
        }
         
        /* só se for enviado o parâmetro, que devolve o combo */
        if( isset($_GET['lanche']) )
        {
        echo retorna( $_GET['lanche'] );
        }
    ?>

mysql_fetch_assoc e mysql_num_rows e mysql_fetch_assoc e mysql_fetch_object

Qual seria a versao destas funcoes em pdo??

tentei assim mas tem algo errado

<?php
	$connection = new PDO('mysql:host=localhost;dbname=lanchonete', 'root', '');

  //insertion function
    $smt = $connection->prepare('select * From lanches');
    
/**
    * função que retorna o select
    */
    function montaSelect()
    {
    $smt = $connection->prepare('select * From lanches');
    
     
    if( $stmt->rowCount() > 0 )
    {
    while( $dados = $smt->fetch(PDO::FETCH_ASSOC ))
 {
    $opt .= '<option value="'.$dados['lanche'].'">'.$dados['valor'].'</option>';
    }
    }
    else
    $opt = '<option value="0">Nenhum cliente cadastrado</option>';
     
    return $opt;
    }
     
    /**
    * função que devolve em formato JSON os dados do cliente
    */
    function retorna( $id )
    {
    $id = (int)$id;
     
    $smt = ('select * From lanches');
     
     
    $arr = Array();
    if($smt -> rowCount($smt))
    {
    while($row = mysql_fetch_object($result) )
    {
    $arr['lanche'] = $dados->lanche;
    $arr['valor'] = $dados->valor;
    }
    }
    else
    $arr[] = 'endereco: não encontrado';
     
    return json_encode( $arr );
    }
     
    /* só se for enviado o parâmetro, que devolve o combo */
    if( isset($_GET['lanche']) )
    {
    echo retorna( $_GET['lanche'] );
    }

da um erro na linha 39

Fatal error: Call to a member function rowCount() on a non-object in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\projetosite\function.php on line 39
  
Editado por crzcrazycrz
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

cara, não existem mais funções mysql*..

use PDO:

http://www.devmedia.com.br/introducao-ao-php-pdo/24973
http://www.rafaelwendel.com/2011/12/tutorial-pdo-php-data-object/

veja como agora você encapsula o banco de dados só na string d conexão.

olha a vantagem: no seu caso, não precisaria alterar + nada, a aplicação continuaria rodando rapidinho e normal...

falou... :)

Link para o comentário
Compartilhar em outros sites

  • 0

obrigado pela ajuda mai não entendi muito bem mas ta ai ajustei mais um pouco com seus topicos

<?php
	$connection = new PDO('mysql:host=localhost;dbname=lanchonete', 'root', '');

  //insertion function
    $smt = $connection->prepare('select * From lanches');
    
/**
    * função que retorna o select
    */
    function montaSelect()
    {
    $smt = $connection->prepare('select * From lanches');
    
     
    if( $smt->rowCount() > 0 )
    {
    while( $dados = $smt->fetch(PDO::FETCH_ASSOC ))
 {
    $opt .= '<option value="'.$dados['lanche'].'">'.$dados['valor'].'</option>';
    }
    }
    else
    $opt = '<option value="0">Nenhum cliente cadastrado</option>';
     
    return $opt;
    }
     
    /**
    * função que devolve em formato JSON os dados do cliente
    */
    function retorna( $id )
    {

    $id = (int)$id;
     
        
    $arr = Array();
    if($smt->rowCount())
    {
    while($dados = $smt->fetch(PDO::FETCH_OBJ ))
    {
    $arr['lanche'] = $dados->lanche;
    $arr['valor'] = $dados->valor;
    }
    }
    else
    $arr[] = 'endereco: não encontrado';
     
    return json_encode( $arr );
    }
     
    /* só se for enviado o parâmetro, que devolve o combo */
    if( isset($_GET['lanche']) )
    {
    echo retorna( $_GET['lanche'] );
    }

quando entro em http://localhost/projects/projetosite/function.php?lanche=1

da esses erros

Notice: Undefined variable: smt in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\projetosite\function.php on line 38

Fatal error: Call to a member function rowCount() on a non-object in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\projetosite\function.php on line 38

da uma luz ai por favor

Link para o comentário
Compartilhar em outros sites

  • 0
<?php
$connection = new PDO("mysql:host=localhost;dbname=lanchonete", "root", "");

$stm = $connection->prepare("select * from lanches");
$stm->execute();

?>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<form id="form1" name="form1" method="post" action="">

<select name="select">

<?php
while($dados = $stm->fetch(PDO::FETCH_OBJ))
{
?>

<option value="<?php echo $dados->id?>"><?php echo $dados->lanche?></option>

<?php
}
?>

</select>
<label>
<input type="submit" name="pesquisa" value="pesquisar" />
</label>
</form>
<?php
$id=$_POST['select'];
$pesquisa=$_POST['pesquisar'];
if(isset($pesquisa));
//echo $id."<br />";

$stm2 = $connection->prepare("select valor from lanches where id=?");
$stm2->bindParam(1, $id, PDO::PARAM_INT);
$stm2->execute();

while($preco = $stm2->fetch(PDO::FETCH_OBJ))
{
echo "preco do lanche escolhido: R$".$preco->valor;
}
?>

</body>
</html>

bom carnaval... :)

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...