Pesquisar na Comunidade
Mostrando resultados para as tags ''PDO''.
Encontrado 53 registros
-
mysql Gostaria de tirar uma dúvida referente a uma consulta ao banco de dados!
TheRonaldoStar postou um tópico no fórum PHP
Olá. eu gostaria de tirar uma dúvida que já faz exatamente 1 dia que eu estou fazendo pesquisas e nada. Minha dúvida é a seguinte, Estou fazendo um aplicativo de mensagem por browser se e que pode se chamar assim. Tipo eu tenho o loby de mensagem semelhante ao Whatsapp e quando a pessoa clica em conversas eu faço a consulta via ajax Nesta consulta eu só informo o meu id ou seja o id do usuário logado. e na pagina php eu faço a seguinte consulta no banco de dados: Procurar por todas as mensagens da tabela: privado, Nesta consulta me retorna todas as mensagens cujo meu id existe como na coluna: Para, com o status da mensagem valor 0 Ou seja 0= Disponível e 1 seria deletada. este e o código usado: $sql = $db->prepare("SELECT * FROM privado WHERE Para = '$ID_user' AND Status = '0' ORDER BY id DESC"); $sql->execute(); Continuando; Após o fazer esta consulta coloquei para listar tudo com o while, colocando todos os id dos usuários em uma variável e dentro deste mesmo while eu faço Outra consulta por os usuários informado pela variável id da pessoa que mandou. e isso ocorre com sucesso, ou seja eu consigo fazer quase tudo que eu quero. Procurei pelas mensagem, pesquisei por estes usuários mostro: Nome, foto, e a mensagem; Este e o código usado: while($dados = $sql->fetch(PDO::FETCH_OBJ)){ $ID_De = ($dados -> De); $U_mensagem = ($dados -> Texto); $sql1 = $db->prepare("SELECT * FROM usuarios WHERE id = '$ID_De' ORDER BY id DESC"); $sql1->execute(); while($dados1 = $sql1->fetch(PDO::FETCH_OBJ)){ $Foto = ($dados1 -> foto == "") ? "defaut.png" : $dados1 -> foto; $Nome = ($dados1 -> nome); echo "Nome: ".$Nome."<br>Foto: ".$Foto."<br>Mensagem: ".$U_mensagem."<br><br>"; } } No final fica tudo assim: Nome: ModeradorFoto: user_3.pngMensagem: Mensagem do moderadorNome: RonaldoFoto: user_1.pngMensagem: Como vai você?Nome: RonaldoFoto: user_1.pngMensagem: Olá Mas no final das contas eu gostaria de saber somente uma coisa para que meu projeto funcione como quero: Eu quero que a listagem da ultima mensagem de cada usuário não todas as mensagem daquele usuário, ou seja somente da ultima mensagem de cada um usuário "Tabela nome: usuários Colunas: [ id, De, Para, Texto, Status ]" Este e o código completo da pagina: <?php $Hostname = "localhost"; $Database = "servidor_app"; $Charset = "utf8"; $Username = "root"; $Password = ""; $db = new PDO('mysql:host='.$Hostname.';dbname='.$Database.';charset='.$Charset.'', $Username, $Password); $db -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $URL_ATUAL= "https://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; parse_str(parse_url($URL_ATUAL, PHP_URL_QUERY), $vamos_ver); $ID_user = $vamos_ver['id']; $sql = $db->prepare("SELECT * FROM privado WHERE Para = '$ID_user' AND Status = '0' ORDER BY id DESC"); $sql->execute(); while($dados = $sql->fetch(PDO::FETCH_OBJ)){ $ID_De = ($dados -> De); $U_mensagem = ($dados -> Texto); $sql1 = $db->prepare("SELECT * FROM usuarios WHERE id = '$ID_De' ORDER BY id DESC"); $sql1->execute(); while($dados1 = $sql1->fetch(PDO::FETCH_OBJ)){ $Foto = ($dados1 -> foto == "") ? "defaut.png" : $dados1 -> foto; $Nome = ($dados1 -> nome); echo "Nome: ".$Nome."<br>Foto: ".$Foto."<br>Mensagem: ".$U_mensagem."<br><br>"; } } ?> Pro favor preciso de ajuda urgente. Atenciosamente, ~Ronaldo -
Boa Tarde Turma, estou tentando puxar dados de duas tabelas em bancos de dados diferentes com usuario e senha diferente em casa banco mas esta trazendo nada: include 'conectarel.php'; // abre a conexão e define codificação UTF-8 $PDO = new PDO('mysql:host=' . MYSQL_HOST . ';dbname=' . MYSQL_DB, MYSQL_USER, MYSQL_PASSWORD); $PDO2 = new PDO('mysql:host=' . MYSQL_HOST2 . ';dbname=' . MYSQL_DB2, MYSQL_USER2, MYSQL_PASSWORD2); $sql = "SELECT n.ano as AnoLetivo, c.id_comissao, c.comissao AS comissao, a.id_ata, a.numero, a.id_comissao, a.descricao, a.ano, a.data FROM admin_cmcorumbatai.atas AS a INNER JOIN admin_cmcorumbatai.comissao c ON c.id_comissao = a.id_comissao INNER JOIN admin_moderador.ano n ON n.id_ano = a.ano WHERE 1=1 "; $sql .= " order by a.numero DESC, a.ano DESC "; //$PDO->exec("set names utf8"); // cria o Prepared Statement $stmt = $PDO->prepare($sql); $stmt .= $PDO2->prepare($sql); // faz o bind dos valores dos filtros // executa a query $stmt->execute(); // cria um array com os resultados $atas = $stmt->fetchAll(PDO::FETCH_ASSOC); print_r($atas); //paginacao independe da forma que vem o resultado, ele pega a qtde do result e divide em paginas $porPagina = 8; $paginas = ceil(count($atas)/$porPagina); $pagina = empty($_POST['pag']) ? 1 : $_POST['pag']; //a função array_slice extrai uma fatia do vetor, no caso, a parte específica da página $primeiro = ($pagina-1) * $porPagina; //obs: a primeira posição do vetor começa em zero $resultadoPagina = array_slice($atas, $primeiro, $porPagina); <?php if(count($resultadoPagina)>0){ foreach($resultadoPagina as $i=>$ata){ echo "<div class=\"panel panel-default\">"; echo "<table class=\"table table-bordered table-condensed tabelalicitacao\"> <tbody> <tr> <td colspan=\"6\" class=\"tdpreto\" style=\"background-color:#02284e;\"><strong><font color=\"#ffffff\"> Número :".$ata['numero']."/".$ata['AnoLetivo']."</font></strong></td> </tr> <tr> <td class=\"tdcinza\" valign=\"top\" style=\"background-color:#f5f5f5;\"><strong>Data:</strong></td> <td>".TrataDataHora($ata['data'])."</td> </tr> <tr> <td class=\"tdcinza\" valign=\"top\" style=\"background-color:#f5f5f5;\"><strong>Descrição:</strong></td> <td colspan=\"4\">".$ata['descricao']."</td> </tr> <tr> <td class=\"tdcinza\" style=\"background-color:#f5f5f5;\"><strong>Comissão:</strong></td> <td>"; echo $ata['comissao']; echo "</tr> <tr> <td colspan=\"2\">"; echo "<a href=\"documentos/atas/".$ata["id_ata"].".pdf\" target=\"_blank\">BAIXAR</a>"; echo "</td></tr> </tbody> </table>"; echo "</div>"; } }else{ echo "Nenhuma licitação encontrada."; } ?> Alguem poderias me ajudar, já tentei de tudo e pesquisei e não achei nada parecido na net. Obrigado galera !!!
-
Olá, Estou precisando inserir alguns dados diretamente no banco saindo dos campos inputs. Preciso que cada item do array seja cadastrado no banco, por exemplo o cliente vai comprar 3 ingressos, que os nomes dos 3 ingressos apareçam um a um nos registros. Ajustei os códigos abaixo, mas não funciona. Primeiro veja como está o html: <label for="nomeingresso">Ingresso:</label> <input type="text" id="ingresso" name="ingresso[]" placeholder="Ex.: Ingresso Conferência" class="form-control name_list" value="<?php echo $row_ingressos['ingresso'];?>" readonly required /> <label for="valoringresso">Valor:</label> <input type="text" class="form-control" id="valor" name="valor[]" placeholder="Ex.: 1.150,00" value="<?php echo $row_ingressos['valor'];?>" readonly required> <label for="nomeingresso">Quantidade:</label> <input type="number" id="quantidade" name="quantidade[]" class="form-control name_list" value="" min="0" required /> <input name="idingresso[]" type="hidden" id="idingresso" value="<?php echo $row_ingressos['id_ingresso']; ?>"> Bom, no código abaixo só funciona se eu tirar o foreach, com ele o código não insere os dados no banco. Estou testando o cadastro apenas com o campo ingresso para ver se funciona para depois adicionar os campos valor e quantidade, portanto não insere. function salvarIngresso(){ $ingresso = $_POST['ingresso']; $valor = $_POST['valor']; $quantidade = $_POST['quantidade']; try { // begin the transaction $this->pdo->beginTransaction(); // our SQL statements foreach($ingresso as $key => $ing){ $this->pdo->exec("INSERT INTO evn_pedidos_ing (ing) VALUES ('$ing');"); } // commit the transaction $this->pdo->commit(); echo "New records created successfully"; } catch(PDOException $e) { // roll back the transaction if something failed $this->pdo->rollback(); echo "Error: " . $e->getMessage(); } } A função de conexão é esta abaixo: function __construct(){ $this->pdo = new PDO('mysql:host='.$this->host.';dbname='.$this->db, $this->usuario, $this->senha); } Para entender melhor qual é o passo a passo do que estou tentando fazer tem um link abaixo. Ao clicar no botão "Inscrever" surge o lightbox do Pagseguro, então ele automaticamente insere no banco. Vale ressaltar que só não funciona com o FOREACH, sem esta função o código cadastra normalmente, porém só leva o primeiro item do array. Agradeço pela ajuda.