Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Luc4s_M4rtins

Como fazer este codigo funcionar atualmente?

Recommended Posts

Estou vendo umas vídeo aulas, para me aprofundar mais no php, e elas são de certa forma antigas, em um dos vídeos, o professor ensina a fazer uma função genérica que faz leituras de banco de dados (codigo logo abaixo).

function read($tabela){
		$qrRead = "SELECT * FROM ($tabela)";
		$stRead = mysql_query($qrRead) or die ('Erro ao ler '.$tabela.' '.mysql_error());
		$cField = mysql_num_fields($stRead);
		
		for($y = 0; $y < $cField; $y++){
			$names[$y] = mysql_field_name($stRead, $y);
		}
	}

Só que algumas funções estão depreciadas, e até mesmo, nem reconhecida como função é mais. Até agora, consegui "converter" até aqui:

function read($conc, $tabela){
	$qrRead = "SELECT * FROM ($tabela)";
	$stRead = mysqli_query($conc, $qrRead) or die ('Erro ao ler '.$tabela.' '.mysqli_error($conc));
	$cField = mysqli_num_fields($stRead);
	
	for($y = 0; $y < $cField; $y++){
		$names[$y] = mysqli_fetch_field_direct($stRead, $y).'<br/>';
	}
}

Mas ele me retorna o seguinte erro:

Catchable fatal error: Object of class stdClass could not be converted to string in C:\caminho\arquivo.php on line (linha onde a variavel $names[$y] está).

 

Como posso fazer

 for($y = 0; $y < $cField; $y++){
            $names[$y] = mysql_field_name($stRead, $y);
        }

Atualmente? Estou usando a mysqli_fetch_field_direct errada? Pois sinto que sim... por favor, se alguém poder me ajudar! Desde já, agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que eu vi aqui tenta tirar o [$y]

 

antes:

$names[$y] = mysqli_fetch_field_direct($stRead, $y).'<br/>';

 

depois:

$names = mysqli_fetch_field_direct($stRead, $y).'<br/>';

 

tambem nao entendo muito , mais andei analizando. pode ser isso

Compartilhar este post


Link para o post
Compartilhar em outros sites

function read($conc, $tabela){
$qrRead = "SELECT * FROM ($tabela)";
$stRead = mysqli_query($conc, $qrRead) or die ('Erro ao ler '.$tabela.' '.mysqli_error($conc));
$cField = mysqli_num_fields($stRead);
$names = array();
for($y = 0; $y < $cField; $y++){
$names[$y] = mysqli_fetch_field_direct($stRead, $y);
}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ainda o mesmo erro
Catchable fatal error: Object of class stdClass could not be converted to string in C:\caminho\arquivo.php on line (linha onde a variavel $names[$y] está).

 

Algo me diz que a mysqli_fetch_field_direct não faz o mesmo que a "falecida" mysql_field_name, nesse meu caso.

Mas obrigado por tentar me ajudar, ainda ficarei no aguardo, caso alguém saiba como fazer!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Retire o ".'<br/>'" dessa linha

Fiz o que falou, mas não resultou no que queria, deduzi que a mysqli_fetch_field_direct não faz o mesmo que a mysql_field_name, no meu caso, pois só queria retornar os títulos das colunas, e ele retornou os atributos de cada coluna da tabela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Th14g0
      Novato em php, está dando erro ao enviar e-mail
       
      Código do form:
      <form action="contato.php" method="post" id="orcamento">
                              <div class="input-field">
                                  <input type="text" name="name" id="name" required="true">
                                  <label for="name">Nome</label>
                              </div>
                              <div class="input-field">
                                  <input type="email" name="email" id="email" required="true">
                                  <label for="email">E-mail</label>
                              </div>
                              <div class="input-field">
                                  <input type="text" name="assunto" id="assunto" required="true">
                                  <label for="assunto">Assunto</label>
                              </div>
                              <select class="browser-default" name="service" id="service" required="true">
                                  <option value="" disabled selected>Selecione o serviço:</option>
                                  <option value="1">Industrial e Comercial</option>
                                  <option value="2">Imóveis</option>
                                  <option value="3">Jurídico</option>
                                  <option value="" disabled="">Outros</option>
                                  <option value="4">Sugestões</option>
                                  <option value="5">Dúvidas</option>
                                </select>
                              <div class="input-field">
                                  <textarea id="message" name="message" class="materialize-textarea"></textarea>
                                  <label for="message">Mensagem</label>
                              </div>
                              <button class="btn color-y" type="submit">Enviar</button>
       
      php
       
      <?php
      // Recebendo dados do formulário
      $name = $_POST['name'];
      $email = $_POST['email'];
      $assunto = $_POST['assunto'];
      $service = $_POST["service"];
      $message = $_POST['message'];

      $headers = "Content-Type: text/html; charset=utf-8\r\n";
      $headers .= "From: $email\r\n";
      $headers .= "Reply-To: $email\r\n";
      // Dados que serão enviados
      $corpo = "Formulário da página de contato <br>";
      $corpo .= "Nome: " . $name . " <br>";
      $corpo .= "Email: " . $email . " <br>";
      $corpo .= "Assunto: " . $assunto . " <br>";
      $corpo .= "Serviço: " . $service . " <br>";
      $corpo .= "Mensagem: " . $message . " <br>";
      // Email que receberá a mensagem (Não se esqueça de substituir)
      $email_to = 'contato@saudetotalvendasonline.com.br';
      // Enviando email
      $status = mail($email_to, mb_encode_mimeheader($service, "utf-8"), $corpo, $headers);
      if ($status):
        // Enviada com sucesso
        header('location:index.php?status=sucesso');
      else:
        // Se der erro
        header('location:index.php?status=erro');
      endif;
      ?>
    • Por Eliel Sabino
      Olá, gostaria de saber por onde posso começar a estudar?
      Sou totalmente iniciante, não sei nada sobre programação, mas quero muito aprender.
    • Por DjalmirJunior
      Olá , tudo beleza sou novo no Fórum e estou aprendendo á uns dias PHP PDO e quebrando a cabeça um pouco , eu tenho um Form Bootstrap eu estava apredendo e estudando um pouco de "select".
       
      Codico do Form que quero inserir o Select .
      <!-- Text input--> <div class="form-group"> <label class="col-md-4 control-label" for="conta">Conta/Char</label> <div class="col-md-4"> <input id="conta" name="conta" type="text" placeholder="Login ou Nickname" class="form-control input-md" required=""> </div> </div> <!-- Button (Double) --> <div class="form-group"> <label class="col-md-4 control-label" for="button1id"></label> <div class="col-md-8"> <button id="button1id" name="button1id" class="btn btn-success">Iniciar</button> <button id="button2id" name="button2id" class="btn btn-danger">Limpar</button> </div> </div> </fieldset> </form> </div> Eu quero ajuda de vocês e eu estou iniciando agora , oque eu quero fazer a pessoa digitar o Usuário e apertar Iniciar ele mostrará as informações do Usuário digitado ex : (Email etc)
       
      Codico do Select :
      <?php try { // Instancia o objeto PDO $pdo = new PDO( 'mssql:host=localhost;dbname=RF_World', 'rf', '123456' ); // executa a instrução SQL $consulta = $pdo->query( 'SELECT Name,AccountSerial,Account,Serial FROM tbl_base;' ); // Pega os dados de um determinado usuário através de um array while ( $linha = $consulta->fetch( PDO::FETCH_ASSOC ) ) { // aqui eu mostro os valores de minha consulta echo "<b>ID :</b> {$linha['Account']} - <b>Nick :</b> {$linha['Name']} - <b>Serial :</b> {$linha['Serial']} - <B>AccountSerial :</b> {$linha['AccountSerial']}<br />"; } // fecho a conexão $pdo = null; } catch ( PDOException $e ) { // Caso ocorra uma exceção, exibe na tela echo $e->getMessage(); } ?> Se vocês poderem me dar uma dica , como começar eu agradeço .
       
       
       
    • Por Chirlison
      Bom dia a todos!
      Pessoal estou com dificuldade para alterar o mysql_field_name para o mysqli_field_name.
      Na verdade a função mysql_field_name não existe no myslqi, mas alguém sabe como eu poderia substituir o mysql_field_name por mysqli_field_name para pegar o nome dos campos.
      Abaixo segue o código:
      <?php /*************************** FUNÇÃO DE LEITURA NO BANCO ****************************/ function read($tabela, $cond = NULL){ $conn = mysqli_connect(HOST,USER,PASS,DBSA) or die ('Erro ao conectar: '.$conn(mysqli_error())); $qrRead = "SELECT * FROM {$tabela} {$cond}"; $stRead = mysqli_query($conn,$qrRead) or die ('Erro ao ler em '.$tabela.' '.$conn(mysqli_error())); $cField = mysqli_num_fields($stRead); for($y = 0; $y < $cField; $y++){ echo $names[$y] = mysqli_field_name($stRead,$y).'<br />'; } } read('up_posts'); ?> Por favor, peço a ajuda de vocês para que eu consiga seguir em frente.
      Desde já, muito obrigado a todos!
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.