Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 407
Sexo: Masculino
Localização: VOLTA REDONDA RJ
Contato:

php pdo mysql_result

19-11-2014 08:33

Tenho uma consulta ao BD para obter uma listagem e mostrar os checkbox marcados, funciona perfeitamente, puro php e mysql, agora como faço esta em pdo, insert, update , select comuns ja aprendi.

Segue o código.

<?php                     $up1 = mysql_query("SELECT * FROM serie WHERE ids='$ids'") or die (mysql_error());                     $val = mysql_result($up1,0,'mats');                     $val1 = explode(', ',$val);                                                               $valores = mysql_query("SELECT * FROM mater ORDER BY mmat ASC") or die (mysql_error());                     while ($ex1 = mysql_fetch_array($valores)){                         $idmat = $ex1['idm'];                         $val11 = explode(', ',$idmat);                     foreach ( $val11 as $tag ){                     if(in_array($tag,$val1)){                         echo "<input name='mat[]' type='checkbox' value=".$tag." checked='checked' >".$ex1['mat_mat']."<br>";                         } else {                         echo "<input name='mat[]' type='checkbox' value=".$tag." >".$ex1['mat_mat']."<br>";                         }                         }                     }                         ?>

Desde ja agradeço.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17680
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

php pdo mysql_result

19-11-2014 12:34

Você precisa de um foreach, como esse exemplo

<form action="" method="POST"> a <input type="checkbox" name="valor[]" value="a"> <br> c <input type="checkbox" name="valor[]" value="c"> <br> e <input type="checkbox" name="valor[]" value="e"> <input type="submit" name="envia"> </form>


<?php if($_POST['envia']) { foreach($_POST['valor'] as $info1) { echo $info1."<br>"; } } ?>

0
A melhor hospedagem para o seu site HostGator!
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17680
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

php pdo mysql_result

20-11-2014 08:05

É em PDO, não havia percebido. Dá uma olhada nesse link http://coursesweb.net/php-mysql/pdo-exe ... ate-delete
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 407
Sexo: Masculino
Localização: VOLTA REDONDA RJ
Contato:

php pdo mysql_result

24-11-2014 08:13

Peço desculpa pela demora da resposta, tive de fazer uma viagem por questões familiares.

seguindo o exemplo estou tendo isso:

<?php                     $up1=$pdo->prepare("SELECT mats FROM serie WHERE ids=:ids");                     $up1->bindParam(':ids', $_GET['ids'], PDO::PARAM_STR);                     $up1->execute();                     $result=$up1->fetchALL();                     print_r($result);                     //$val1 = explode(', ',$result);                                                               $valores=$pdo->prepare("SELECT * FROM mater ORDER BY mmat ASC");                     while ($ex1 = $valores->fetch(PDO::FETCH_ASSOC)){                         $idmat = $ex1['idm'];                         $val11 = explode(', ',$idmat);                     foreach ( $val11 as $tag ){                     if(in_array($tag,$val1)){                         echo "<input name='idm[]' type='checkbox' value=".$tag." checked='checked' >".$ex1['mmat']."<br>";                         } else {                         echo "<input name='idm[]' type='checkbox' value=".$tag." >".$ex1['mmat']."<br>";                         }                         }                     }                         ?>

no print da = Array ( [0] => Array ( [mats] => 1, 2 [0] => 1, 2 ) )
quando dou o explode da :
Warning: explode() expects parameter 2 to be string, array given in
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17680
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

php pdo mysql_result

24-11-2014 13:13

O explode aparentemente não tem os parâmetros correto para funciona. Tenta dar um foreach para obter todos os valores que são retornados, e trabalha eles.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 407
Sexo: Masculino
Localização: VOLTA REDONDA RJ
Contato:

php pdo mysql_result

24-11-2014 14:55

Chegando perto ....
Os erros sumiram, o que esta acontecendo agora é que esta retornando marcado somente um checkbox, quando deveria retornar 2 dos 4.

<?php                     $up1=$pdo->prepare("SELECT * FROM serie WHERE ids=:ids");                     $up1->bindParam(':ids', $_GET['ids'], PDO::PARAM_STR);                     $up1->execute();                     $result=$up1->fetchALL(PDO::FETCH_COLUMN, 2);                     $val1 = explode(', ',$result[0][$mats]);                     print_r($result);                     print_r($val1);                                          $valores=$pdo->query("SELECT * FROM mater ORDER BY mmat ASC");                     while ($ex1 = $valores->fetch(PDO::FETCH_ASSOC)){                         $idmat = $ex1['idm'];                         var_dump($idmat);                         $val11 = explode(', ',$idmat);                     foreach ( $val11 as $tag ){                     if(in_array($tag,$val1)){                         echo "<input name='idm[]' type='checkbox' value=".$tag." checked='checked' >".$ex1['mmat']."<br>";                         } else {                         echo "<input name='idm[]' type='checkbox' value=".$tag." >".$ex1['mmat']."<br>";                         }                         }                     }                         ?>

esta retornando desta forma:

Array ( [0] => 3,4 ) Array ( [0] => 3 )   string '4' (LENGTH=1) Fisica string '2' (LENGTH=1) Matematica string '1' (LENGTH=1) Portugues string '3' (LENGTH=1) Quimica

como pode se observa o $val1 só esta pegando 01 valor ......
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17680
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

php pdo mysql_result

24-11-2014 17:11

Verifica se essas variáveis são as que realmente tem o array desejado para usar

   IF(in_array($tag,$val1)){

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 407
Sexo: Masculino
Localização: VOLTA REDONDA RJ
Contato:

php pdo mysql_result

24-11-2014 17:25

Resolvido.

$up1=$pdo->prepare("SELECT * FROM serie WHERE ids=:ids");                     $up1->bindParam(':ids', $_GET['ids'], PDO::PARAM_STR);                     $up1->execute();                     $result=$up1->fetch(PDO::FETCH_ASSOC);                     $val1 = explode(',',$result['mats']); 

:rock:
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17680
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

php pdo mysql_result

24-11-2014 17:27

:)
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado