Jump to content

Archived

This topic is now archived and is closed to further replies.

gabrielfalieri

tem como usar 2 arrays em um foreach?

Recommended Posts

se as chaves forem as mesmas, pode usar:

foreach($array as $key => $data)
{
    echo "Array[$key]: ".$data.'<br />';
    echo "Array2[$key]: ".$array2[$key].'<br />';
    echo "Array3[$key]: ".$array3[$key].'<br />';
    echo "Array4[$key]: ".$array4[$key].'<br />';
}

Se as chaves não forem as mesmas, mas a sequência é, pode usar array_values e depois realizar o mesmo que acima:

$array = [0 , 1 , 2 , 3];//chaves: 0 , 1 , 2 , 3
$array2 = [0 , 5 => 1 , 2 , 10 => 3];//chaves: 0 , 5 , 6 , 10

$values = array_values($array);
$values2 = array_values($array2);

/** a mesma coisa que foi usada no primeiro exemplo **/

Basicamente o segundo exemplo apenas normaliza as chaves para o primeiro exemplo. Agora se nem a ordem e nem as chaves estão normalizadas, não tem o que fazer, a estrutura foi feita de forma errada.

Share this post


Link to post
Share on other sites

Erro de sintaxe é algo totalmente diferente ao problema dos arrays. Visto, ainda, que é um erro do SQL.

E prepared statements, cade?

$sql = "INSERT INTO $this->prt_partner_responsible VALUES (NULL,'"+$this->responsavel[$i]+"','"+$this->cargo[$i]+"',12);";

Seu código, se é de uma entrada de usuário, é vulnerável a SQL injections.

Share this post


Link to post
Share on other sites
  $id = self::pegaUltimoID();
            for($i = 0; $i = count($this->nome); $i++)
            {
                $sql = "INSERT INTO $this->prt_partner_responsible VALUES (NULL,:cargo,:nome,:id);";
                $stmt = DB::prepare($sql);
                $stmt->bindParam(":cargo",$this->cargo[$i],PDO::PARAM_STR);
                $stmt->bindParam(":nome",$this->nome[$i],PDO::PARAM_STR);
                $stmt->bindParam(":id",$id,PDO::PARAM_INT);
                return $stmt->execute();
            } 

Essa linha é onde está o PARAM_INT... é por causa do retorno da função ser um fetch?

Catchable fatal error: Object of class stdClass could not be converted to string in C:\wamp\www\ecoLicenseLayout\classes\Partner.php on line 154

Share this post


Link to post
Share on other sites


public function pegaUltimoID(){

try{

$sql = "SELECT IDPartner FROM prt_partner ORDER BY IDPartner DESC LIMIT 1;";

$stmt = DB::prepare($sql);

$stmt->execute();

return $stmt->fetch();

}catch (PDOException $ex){

$this->Caminho = explode("/", $_SERVER['SCRIPT_NAME']);

$this->arquivo = $this->Caminho[count($this->Caminho)-1];

$this->arquivoLog = 'log/erros.txt';

$this->erro = $ex->getCode();

$this->mensagem = $ex->getMessage();

erro($this->arquivo,$this->arquivoLog,$this->erro,$this->prt_partner,$this->mensagem);

}

}

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.