Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá,
Não estou conseguindo fazer uma consulta no BD e imprimir os resultados pelo ID do usuário.
Tenho:
a tabela "wp_usermeta"
as colunas "user_id" e "meta_key"
Eu gostaria de ter algo do tipo:
Selecione todos os resultados da tabela "wp_usermeta" que tenham o id do usuário selecionado na coluna "user_id" e imprima os valores da coluna "meta_key".
Alguém pode me ajudar a montar essa consulta e impressão dos resultados?
Olá Bruce,
Eu não tenho um código. Quero inserir em uma página normal do wordpress essa função de trazer tais valores para a página, depois vou inserir esses valores em um form e depois enviar.
O quê você me sugere?
Abs.
$usuario = $_POST['user'];
$consulta = mysql_query("SELECT * FROM wp_usermeta WHERE user_id='$usuario'");
$valor = mysql_num_rows($consulta);
echo $valor['meta_key'];
Agora implemente conforme necessário !
Oi Bruce,
Primeiramente muito obrigado pela ajuda. Bom, inseri o código na página "wp-admin/user-edit.php" e rodou sem erro, mas não me retornou nenhum registro na tela.
[codigo]
$usuario = $user_id;
$consulta = mysql_query("SELECT * FROM wp_usermeta WHERE user_id='$usuario'");
$valor = mysql_num_rows($consulta);
echo $valor['meta_key'];
[/codigo]
Obs: na verdade eu preciso ter o retorno das colunas "meta_key" e "meta_value" respectivamente. Ou seja, ter o "meta_value" respectivo de cada "meta_key" para o user_id em questão (atual).
Abs.
Então cara, não vai dar certo.
Faça assim,
Tem id no seu banco ne ?
pega ele e coloca assim
WHERE user_id =1 por exemplo
É... não deu certo mesmo não:
=/
[CODIGO]
$usuario = $user_id;
$consulta = mysql_query("SELECT * FROM wp_usermeta WHERE user_id=4");
$valor = mysql_num_rows($consulta);
echo $valor['meta_key'] . $user_id . "AQUI!";
[/CODIGO]
na tela imprime para mim somente: 4AQUI!
Olá Bruce,
Consegui fazer de uma forma diferente, fiz o seguinte:
<?php
$usuario = $user_id;
$sql = "SELECT * FROM wp_usermeta WHERE user_id='$usuario'";
$query = mysql_query($sql);
while($sql = mysql_fetch_array($query)){
$key = $sql["meta_key"];
$value = $sql["meta_value"];
echo "$key:$value<br>";
}
?>
Agora funcionou da forma que eu queria, pois com estes valores retornardos eu vou joga-los em hidden fields de um form para depois envia-los para outro código que está pronto para recebe-los.
Muito obrigado por sua paciência e ajuda.
Bruce,
Só mais uma pequena dúvida para montar o formulario:
$usuario = $user_id;
$sql = "SELECT * FROM wp_usermeta WHERE user_id='$usuario'";
$query = mysql_query($sql);
while($sql = mysql_fetch_array($query)){
$key = $sql["meta_key"];
$value = $sql["meta_value"];
}
echo "<form action='gerar-pdf.php' method='post'>
<input name='first_name' type='hidden' value="
if ($key == "first_name") {
echo $value;
}
"' />
<input name='ico' type='image' src='images/ico-PDF.png' title='Baixar Ficha de Cadastro' />
</form>"
* Está dando o seguinte erro: "Parse error: syntax error, unexpected T_IF, expecting ',' or ';' in /www/wp-admin/user-edit.php on line 190"
Faça assim:
<input type="text" name="id" value"<?php echo $user ?>">Eu consegui encontrar uma solução para o tópico:
<?php
$usuario = $user_id;
$sql = "SELECT * FROM wp_usermeta WHERE user_id='$usuario'";
$query = mysql_query($sql);
while($sql = mysql_fetch_array($query)){
$key = $sql["meta_key"];
$value = $sql["meta_value"];
if ($key == "first_name") {
$campo1=$value;
} elseif ($key == "last_name") {
$campo2=$value;
} elseif ($key == "email") {
$campo3=$value;
}
}
echo "<form action='enviar.php' method='post'>
<input name='first_name' type='hidden' value='".$campo1."' />
<input name='last_name' type='hidden' value='".$campo2."' />
<input name='email' type='hidden' value='".$campo3."' />
<input name='ico' type='image' src='images/ico-enviar.png' title='Enviar Dados' />
</form>"
?>
EXPLICANDO: Primeiro eu busco todos os IDs do usuário ($user_id) que estiverem dentro da tabela "wp_usermeta" e chamo os registros das colunas "meta_key" e "meta_value" da tabela que estejam ligados ao ID do usuário. Depois, eu seleciono quais as linhas que eu quero postar/imprimir na página dando-lhes uma variável sequencial "$campoN", para então referenciar seus respectivos valores dentro de um FORM que posteriormente enviará estes dados/valores para outra página PHP.
Poste seu código !