Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite a todos!
Estou com um probleminha de sintaxe ou coisa parecida.
Tenho esta linha de código:
$texto1 = $reg["listings_properties.value"] where "listings_properties.id = listings.object_sid and listings_properties.complex_enum = 1";
$texto2 = $reg["listings_properties.value"] where "listings_properties.id = listings.object_sid and listings_properties.complex_enum = 2";
listings_properties.value é o valor que eu quero da tabela do DB, mas com a condição de listings_properties.complex_enum = 2 ou 1, conforme a variável $texto e listings_properties.id = listings.object_sid, não estou conseguindo fazer isto funcionar.
Alguém pode me ajudar?
kklo
Enrico, o código completo segue abaixo. Não entendo quase nada de php e DB. Preciso exportar alguns dados de um DB via CSV.
Este código já funciona em outra exportação, o que fiz foi fazer alterações do $sql e os campos necessários e colocar uma condicional para a variável $texto 1 e $texto2
Se alguém puder me ajudar, agradeço.
<?php
ini_set( 'display_errors', true );
error_reporting( E_ALL );
//ob_start();
include "conexao.php";
session_start();
include "envia_email.php";
$vInicio = 0;
if ($_REQUEST['de'] != '')
{
$vInicio = $_REQUEST['de'];
}
$vFim = 0;
if ($_REQUEST['ate'] != '')
{
$vFim = $_REQUEST['ate'];
}
$vlimite = " ";
$voffset = "";
if ($_REQUEST['offset'] != "")
{
$vOffset = " OFFSET "& $_REQUEST['offset'];
$vlimite = " LIMIT 50 ";
}
$vCond = "";
if ($_REQUEST['pendente'] == "1")
{
$vCond = " enviar = 0 ";
$vlimite = " LIMIT 50 ";
}
$campos = "*";
if ($vInicio != "0")
{
$sql= "SELECT
listings.*, listings_properties.object_sid, listings_properties.id,
listings_properties.value, listings_properties.complex_enum
FROM
listings INNER JOIN
listings_properties ON listings_properties.object_sid = listings.sid
WHERE
listings.sid >= $vInicio and sid <= $vfim $vlimite";
}
else
if ($voffset != "")
{
$sql = "SELECT
listings.*, listings_properties.object_sid, listings_properties.id,
listings_properties.value, listings_properties.complex_enum
FROM
listings INNER JOIN
listings_properties ON listings_properties.object_sid = listings.sid
WHERE
listings.sid > 0 $vlimite $voffset";
}
if ($vCond != "")
{
$sql = "SELECT
listings.*, listings_properties.object_sid, listings_properties.id,
listings_properties.value, listings_properties.complex_enum
FROM
listings INNER JOIN
listings_properties ON listings_properties.object_sid = listings.sid
WHERE
$vCond $vlimite";
}
else
{
$sql = "SELECT
listings.*, listings_properties.object_sid, listings_properties.id,
listings_properties.value, listings_properties.complex_enum
FROM
listings INNER JOIN
listings_properties ON listings_properties.object_sid = listings.sid
WHERE
listings.sid > 0 LIMIT 50 ";
}
$res = mysql_query($sql, $conecta);
$dados = mysql_fetch_array($res);
if (!$dados) {
die('Invalid query: ' . mysql_error());
}
$numcandidatos = $dados[0];
$resultado = mysql_query($sql, $conecta);
if($resultado)
{
$linhaatual = 1;
$nlinhas = mysql_num_rows($resultado);
echo " nlinhs=".$nlinhas;
echo "<br />";
while($reg = mysql_fetch_array($resultado))
{
echo "<br />";
echo $reg['CPF'] . " " . $reg['NomeCompleto'] . " ";
// A0
$id = $reg["sid"];
$cpf = $reg["CPF"];
$nome = $reg["NomeCompleto"];
$endereco = $reg["Endereco"];
// F0
$texto1 = $reg["listings_properties.value"] where ("listings_properties.id = listings.object.sid") and ("listings_properties.complex_enum = 1");
$texto2 = $reg["listings_properties.value"] where ("listings_properties.id = listings.object.sid") and ("listings_properties.complex_enum = 2");
/*************** Construindo arquivo SCV ***************/
$handle = fopen ("send/cv" . $cpf . ".scv", "w+");
/* Conteúdo do arquivo */
$conteudo ="A0#SCPF#SNOME#SENDERECO#\n"
.
"A1#" . $cpf . "#" . $nome . "#" . $endereco . #\n" .
$conteudo .= "F0#SCPF#BYSEQUENCIA#SNOMEEMPRESA#\n";
# F0 - Histórico
$conteudo .= "F1#$cpf#1#$texto1#\n";
$conteudo .= "F1#$cpf#2#$texto2#\n";
$conteudo .= "F1#$cpf#3#$texto3#\n";
$conteudo .= "F1#$cpf#4#$texto4#\n";
/* Fim do arquivo */
fwrite($handle, $conteudo);
fclose($handle);
$linhaatual++;
//prepara e envia os dados (arquivo) via email
$p_codigo = $cpf;
$assunto = 'Cadastro';
$mensagem = 'Envio do cadastrado pelo site';
$arquivo = "send/cv".$cpf.".scv";
sendMail("cadastro@servidor.com.br", $mensagem, $assunto,$arquivo );
//atualiza que já foi enviado para do site
} // fim while
# Envia e-mail com o arquivo SCV gerado
}
else
{
echo "Erro! Não foi possível carregar os dados.";
}
?>>
$texto1 = $reg["listings_properties.value"] where ("listings_properties.id = listings.object.sid") and ("listings_properties.complex_enum = 1");
$texto2 = $reg["listings_properties.value"] where ("listings_properties.id = listings.object.sid") and ("listings_properties.complex_enum = 2");
O PHP não tem um "where", o que você quer é fazer uma query, basta você usar o mysql_query, assim como fez nas outras partes.
seria assim?
$sqla = "SELECT
listings.NomeCompleto, listings_properties.id, listings_properties.value, listings_properties.complex_enum
FROM
listings INNER JOIN
listings_properties ON listings.sid = listings_properties.object_sid
WHERE
listings_properties.id = WorkExperience:CompanyName AND listings_properties.complex_enum = 1";
antes do $texto1?
e outro $sqlb antes do $texto2 para a condicional = 2
é isto?
Eu pesquisei na net e vi como se faz.
$tex = mysql_query("SELECT
listings.NomeCompleto, listings_properties.id, listings_properties.value, listings_properties.complex_enum
FROM
listings INNER JOIN
listings_properties ON listings.sid = listings_properties.object_sid
WHERE
listings_properties.id = WorkExperience:CompanyName AND listings_properties.complex_enum = 1");
}
if (!$tex) {
die('Invalid query: ' . mysql_error());
}
$texto1 = $reg["listings_properties.value"];
mas recebo o seguinte erro:
Invalid query: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':CompanyName AND listings_properties.complex_enum = 1' at line 7
Este SQL eu retirei do MySQL-Front que funcionou. A versão do MySQL é 5.5.23.55
Onde está o erro?
Já te agradeço pela ajuda.
Consegui fazer a query passar sem erro, mas o erro continua no = $reg["listings_properties.value"];
como disse a query passou, mas não consegui fazer aparecer o valor da "listings_properties.value". O $reg deve receber o valor do "listings_properties.value" que está no DB.
A query esta funcionando no phpmyadmin, aparece o resultado que eu quero. Onde estou errando?
WTF? Não existe "where" no PHP. O que você precisa é de uma query para ser executada no banco.