Ir para conteúdo

POWERED BY:

Arquivado

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

André Baptista

[Resolvido] em Concatenação..

Recommended Posts

Ae galera beleza?

 

eu estava testando aqui alguns exemplos de Class e Objetos..

 

sem OO eu concatenava uma query assim:

$query = "SELECT campo1, campo2, campo3, campo4, campo5 ";
$query .= "FROM table1, table2 ";
$query .= "WHERE bla bla = bla ble ";
$query .= "GROUP BY bla blaba ";
$query .= "ORDER BY campo2 ";

como eu poderia fazer isto em OO, contendo dentro de minha classe MySql a seguinte função:

public function rodaQuery($query)
		{
			return mysql_query($query,$this->link);
		}

abraços..

Compartilhar este post


Link para o post
Compartilhar em outros sites

$query = "SELECT campo1, campo2, campo3, campo4, campo5 ";
$query .= "WHERE `campo1` = 1";
$Obj->rodaQuery($query);

Viva a lógica da programação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

é que dai no meu ver fica meio "Gambiarroso" hehe..(sei que fiz gambiarra)

mas beleza eu pensei q tinha alguma maneira de concatenar daquele jeito..

mas beleza.. valeu pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ao meu ver, me alertem se eu estiver errado, mas a única forma de fazer isso sem concatenar antes é criar um metodo que recebe dois parametros a variavel que quer adicionar e o conteudo que quer adicionar!!

 

porem ficaria muito mais trabalhoso

 

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

é que dai no meu ver fica meio "Gambiarroso" hehe..(sei que fiz gambiarra)

mas beleza eu pensei q tinha alguma maneira de concatenar daquele jeito..

mas beleza.. valeu pela ajuda.

Se quiser concatenar tudo numa linha só, é só fazer:

$Obj->rodaQuery("SELECT campo1, campo2, campo3, campo4, campo5 "."WHERE campo1 = 1");

Só que acho desnecessário...

 

Você também pode concatenar variaveis com strings:

$where = "WHERE campo1 = 1";
 $Obj->rodaQuery("SELECT campo1, campo2, campo3, campo4, campo5 ".$where);

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha eu estava digitando

so que dai acabou ficando muito extensa a query ai no caso como no exemplo acima, eu gostaria de saber

se tinha como concatenar neste estilo:

$query = "SELECT campo1, campo2, campo3, campo4, campo5 ";
$query .= "FROM table1, table2 ";
$query .= "WHERE bla bla = bla ble ";
$query .= "GROUP BY bla blaba ";
$query .= "ORDER BY campo2 ";

pq meu codigo estava ficando assim...

$Obj->rodaSql("SELECT campo1, campo2 FROM table1, table2 WHERE blabla = blable GROUP BY bla blaba ORDER BY campo2");

entendeu agora? :D

 

abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não vejo porque concatenar isso camarada, se o problema é que ficou grande, dê enter ue:

 

$Obj->rodaSql("SELECT campo1, campo2 
					   FROM table1, table2 
					   WHERE blabla = blable 
					   GROUP BY bla blaba 
					   ORDER BY campo2");

Sem confusão... tu query não ta grande, e nem precisa de concatenação.

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

minha query não é essa.. e isso é APENAS pra sanar minhas duvidas..

apenas saber se era possivel fazer a concatenação daquele jeito..

 

 

desde já agradeço a atenção!

resolvido :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

function sqlJoin( $str ){
	return implode( chr(13), $str );
}
function sqlJoinField( $str ){
	return implode( chr(13) . ',', $str );
}

function sqlJoinValue( $str ){
	return implode( chr(13) . ',', $str );
}

// escapa da aspa simples para evitar injeções sql
function sqlEscape( $str ){
	return str_replace( "'", "\'", $str );
}

$sql[] = " SELECT ";
$sql[] = " field1, field2 ";
$sql[] = " FROM ";
$sql[] = " table ";

$sql = sqlJoin( $sql );
//echo $sql; exit; // for debug purposes

mysql_query( $sql, $db );
...

é bastante prático na hora de debugar, principalmente quando ocorre erro, basta descomentar e ver a query que está sendo gerada

o array é unido por quebra de linha, então a query aparece com quebras de linha, tornando fácil a leitura e compreensão

 

outro exemplo com insert

 

$fields[] = 'field1';
$fields[] = 'field2';
$fields = sqlJoinField( $fields );

$values[] = sqlEscape("foo");
$values[] = sqlEscape("bar");
$values= sqlJoinValue( $values );

$sql[] = " INSERT INTO table ";
$sql[] = " (" . $fields . ") ";
$sql[] = " VALUES ";
$sql[] = " (" . $values. ");";

$sql = sqlJoin( $sql );
//echo $sql; exit; // for debug purposes

mysql_query( $sql, $db );
...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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