montano 0 Denunciar post Postado Setembro 28, 2009 boa tarde galera, Como eu posso criar um array tipo assim: $produto[cod][nome]; para incluir algo nesse array posso usar array_push?e depois enviar por REQUEST é possivel? Depois ler ele em um foreach pegando o codigo e o nome do produto? obrigado pela ajuda Compartilhar este post Link para o post Compartilhar em outros sites
montano 0 Denunciar post Postado Setembro 28, 2009 function options($modulo){ switch ($modulo){ case ('Pme'): $produto['cod']['nome'] = array(); $result = $this->select('produtos','*',' ORDER by produto ASC'); while (mysqli_fetch_assoc($result)){ $produto[$row['cod']][$row['produto']][self::$ponteiro]; self::$ponteiro++; } $this->close(); $_REQUEST['produtos'] = $produto; break; } } Tentei assim Compartilhar este post Link para o post Compartilhar em outros sites
João Batista Neto 448 Denunciar post Postado Setembro 28, 2009 Como eu posso criar um array tipo assim: $produto[cod][nome]; para incluir algo nesse array posso usar array_push? As funções de trabalho com matrizes no PHP permitem tanto o trabalho como pilha (FILO) e como fila (FIFO): Tabalhando como pilha: (First In Last Out) $filo = array(); $filo[] = '1'; $filo[] = '2'; $filo[] = '3'; $filo[] = '4'; $filo[] = '5'; while ( count( $filo ) ) var_dump( array_pop( $filo ) ); A saída será: string(1) "5" string(1) "4" string(1) "3" string(1) "2" string(1) "1" Trabalhando como fila (First In First Out) $fifo = array(); $fifo[] = '1'; $fifo[] = '2'; $fifo[] = '3'; $fifo[] = '4'; $fifo[] = '5'; while ( count( $fifo ) ) var_dump( array_shift( $fifo ) ); A saída será: string(1) "1" string(1) "2" string(1) "3" string(1) "4" string(1) "5" e depois enviar por REQUEST é possivel? Depois ler ele em um foreach pegando o codigo e o nome do produto? A grande confusão está aqui, você não envia por REQUEST, $_GET e $_POST são formas de se recuperar os dados enviados pelo usuário via HTTP: Se você fizer seu formulário e definir no atributo method o valor post, você recuperará esses dados na sua aplicação PHP utilizando $_POST: echo $_POST[ 'valor' ]; Da mesma forma, o $_GET é utilizado se o atributo method for definido como get: echo $_GET[ 'valor' ] Quando não importa o método que foi utilizado para enviar os dados você pode utilizar $_REQUEST: echo $_REQUEST[ 'valor' ]; Dessa forma, se o usuário enviar os dados via GET ou via POST, sua aplicação irá conseguir recuperar esses dados. Agora, pelo que pude entender no seu código, você não está utilizando um formulário e como também não acredito que você vá trafegar esses dados via HTTP, talvez seja interessante você dizer o que está tentando fazer para que possamos lhe indicar um caminho. ;) Compartilhar este post Link para o post Compartilhar em outros sites
montano 0 Denunciar post Postado Setembro 28, 2009 Desculpe se nao me expliquei bem e obrigado pela atenção, parabens pelas respostas sempre bem respondidas. Seguinte: Eu estou trabalhando com MVC, o meu VIEW esta somente recebendo valores, ele nao manipula nada. meu codigo seria assim: controller require_once ('../../app/model/action/' . $acao . '.php'); $acao = new $acao; $acao->execute($this->modulo); // Digamos que a ação seja 'SelectOption' isso vai me retorna por exemplo todos meus produtos cadastrados no meu BD para dentro de um select option, porem preciso pegar o nome do produto e seu codigo, para poder usalo como FK no formulario. ACTION -> SelectOption public function execute($modulo) { require_once('/home/insidete/app/model/dao/SelectOptionDao.php'); $selectOption = new SelectOptionDao(); $selectOption->execute($modulo); } // Aqui eu vou solicitar para o meu DAO oque eu preciso, estou mandando como parametro o modulo 'seria a pagina view que esta solicitando', DAO ->SelectOptionDao function execute($modulo) { switch ($modulo) { case ('Pme'): // PRODUTOS $produto['cod']['nome'] = array(); // Nao sei se é assim que se fa :S $result = $this->select('produtos', '*', ' ORDER by produto ASC'); while (mysqli_fetch_assoc($result)) { $produto[$row['cod']][$row['produto']][self::$ponteiro]; self::$ponteiro++; } $this->close(); $_REQUEST['produtos'] = $produto; break; } } // É aqui que eu quero pegar os dados do BD e inserir eles em um array, porem tenho que por codigo e nome do produto dentro do mesmo array, você vera na VIEW o porque disso VIEW -> Pme.php (esse é o modulo) <b>Produto: </b><select name="produto"/> <option></option> <?php foreach ($_REQUEST['produtos'] as $produto){ // Aqui eu nao sei como receber meu array lendo codigo e produto echo "<option value='" . $codproduto . "'>" . $nomeproduto . '</option>'; } ?> </select> A ideia é essa, minha VIEW tem só que pegar esse valor, ela nao tem contato com o DAO. Por isso estou enviando por $_REQUEST; Compartilhar este post Link para o post Compartilhar em outros sites
montano 0 Denunciar post Postado Setembro 28, 2009 function execute($modulo) { switch ($modulo) { case ('Pme'): // PRODUTOS $produto['cod']['produto'] = array(); $result = $this->select('produtos', '*', ' ORDER by produto ASC'); while ($row = mysqli_fetch_assoc($result)) { $produto['cod'][self::$ponteiro] = $row['cod']; $produto['produto'][self::$ponteiro] = $row['produto']; self::$ponteiro++; } $this->close(); $_REQUEST['produtos'] = $produto; break; } } Assim esta incluindo, como eu faço para ler dentro de um mesmo foreach o cod e o produto? para implementar no meu select option. Existe uma forma de incluir cod e produto ao mesmo tempo ao invez de fazer em 2 linhas? $produto['cod'][self::$ponteiro] = $row['cod']; $produto['produto'][self::$ponteiro] = $row['produto']; Compartilhar este post Link para o post Compartilhar em outros sites
João Batista Neto 448 Denunciar post Postado Setembro 28, 2009 Assim esta incluindo, como eu faço para ler dentro de um mesmo foreach o cod e o produto? para implementar no meu select option. Existe uma forma de incluir cod e produto ao mesmo tempo ao invez de fazer em 2 linhas? $produto['cod'][self::$ponteiro] = $row['cod']; $produto['produto'][self::$ponteiro] = $row['produto']; Provavelmente sim, mas de um var_dump( $produto ) e coloque aqui o resultado, ai fica mais fácil dizer se sim ou se não. var_dump( $produto ); Compartilhar este post Link para o post Compartilhar em outros sites
montano 0 Denunciar post Postado Setembro 28, 2009 Bom esta resolvido, Usei meu BEAN pra cadastramento de produto EX: <?php class Produto { private $cod; private $produto; //SET´s function setCod($cod) { $this->cod = $cod; } function setProduto($produto) { $this->produto = $produto; } // GET´S function getCod($cod) { return $this->cod; } function getProduto($produto) { return $this->produto; } } ?> [/code Minha DAO fico assim [code] <?php function execute($modulo) { switch ($modulo) { case ('Pme'): // PRODUTOS $produtos = array(); $result = $this->select('produtos', '*', ' ORDER by produto ASC'); //BEAN require_once ('/home/insidete/app/model/bean/Produto.php'); while ($row = mysqli_fetch_assoc($result)) { $produtos[self::$ponteiro] = new Produto(); $produtos[self::$ponteiro]->setProduto($row['produto']); $produtos[self::$ponteiro]->setCod($row['cod']); self::$ponteiro++; } $this->close(); return $lista; } } ?> [/code] Minha DAO faz o select e cria um objeto para cada $row, eu faço o encapsulamento deles no BEAN, e depois retorno para minha VIEW o array onde vai estar meus objetos. la na view eu faço isso: [code] foreach ($produtos as $produto){ $produto->getCod(); $produto->getProduto(); } Bom aceito mais sugestoes , espero que ajude mais pessoas. abraços Compartilhar este post Link para o post Compartilhar em outros sites