Jump to content


pisikpatha

Member Since 30/11/2005
Offline Last Active 09/12/2005, 12:24
-----

Topics I've Started

Trio Parada Dura (fwrite, Fopen, Fclose)

06/12/2005, 13:47

Blz pessoal?
Seguinte...
To com uma duvida monstra aki, ja usei a pesquisa mas com esse novo modelo de busca eu ainda to meio perdido.
Eu preciso eh saber como q faz para excluir um trecho do arquivo texto ao invés de adicionar com fwrite.

Vou explicar melhor....
tenho um XML com o seguinte corpo:
<houses> 
<house name="Bamboo"> <tiles fromx="164" fromy="182" fromz="7" tox="120" toy="110" toz="7"/> </house>
<house name="Palmera"> <tiles fromx="158" fromy="120" fromz="6" tox="180" toy="200" toz="6"/> </house>
</houses>

daí eu fiz um formulario de criação pra XML
esse eh o responsavel por gerar o XML
<?php
function newhouse()
{
	
	$fromx = $_POST['fromx'];
	$fromy = $_POST['fromy'];
	$fromz = $_POST['fromz'];
	$tox = $_POST['tox'];
	$toy = $_POST['toy'];
	$toz = $_POST['toz'];
	$portax = $_POST['portax'];
	$portay = $_POST['portay'];
	$portaz = $_POST['portaz'];
	$andar = $_POST['andar'];
	$nome = $_POST['nome'];
	$house_name = "$nome.xml";
	$houses = "gravar.xml";

// houses.xml
$file = fopen("$houses", "a+");
fwrite($file, '<house name="' .$nome. '"> <tiles fromx="'. $fromx .'" fromy="'. $fromy .'" fromz="'. $fromz .'" tox="'. $tox .'" toy="'. $toy .'" toz="'. $toz .'"/> </house> </houses> ');
 fclose($file);	
}
newhouse();
echo 'House criada com sucesso';
?>

até ai beleza, ele incluir todos os registros dentro do XML... soh tem um porem,
ele inclui após a TAG de fechamento do XML, eu preciso saber como q faz pra toda vez q ele for gravar no xml ele elimine a ultima tag antes de começar o processo.

olha como ele ta gerando o XML
<houses> 
<house name="Bamboo"> <tiles fromx="164" fromy="182" fromz="7" tox="120" toy="110" toz="7"/> </house>
<house name="Palmera"> <tiles fromx="158" fromy="120" fromz="6" tox="180" toy="200" toz="6"/> </house>
</houses>
<house name="Palmera"> <tiles fromx="158" fromy="120" fromz="6" tox="180" toy="200" toz="6"/> </house>
</houses>
<house name="Palmera"> <tiles fromx="158" fromy="120" fromz="6" tox="180" toy="200" toz="6"/> </house>
</houses>

por ele naum estar deletando a tag </houses> a mesma esta repetindo varias vezes.

pra resumir, eu preciso saber qual comando usa pra deletar um trecho da string dentro do XML...

obrigado a todos,
CYA...

Edit
esqueci o codigo do formulario propiamente dito:
<html>
<body>
<form method="post" action="newhouse.php">
<div style="text-align: center">	</div>
<table cellspacing="0" width="100%">

 <tr>
  <td width="20%">Da Posi&ccedil;&atilde;o X: </td>
  <td><input type="text" name="fromx" maxlength="20" /></td>
 </tr>

 <tr>
  <td width="20%">Da Posi&ccedil;&atilde;o Y:</td>
  <td><input type="text" name="fromy" maxlength="10"></td>
 <tr>
   <td>No Andar Z: </td>
   <td><input type="text" name="fromz" maxlength="10"></td>
 </tr>
 <tr>
  <td width="20%">At&eacute; a Posi&ccedil;&atilde;o X:</td>
  <td><input type="text" name="tox" maxlength="10"></td>
 </tr>

 <tr>
  <td width="20%">At&eacute; a Posi&ccedil;&atilde;o Y:</td>
  <td><input type="text" name="toy" maxlength="10"></td>
 </tr>
 <tr>
   <td>At&eacute; o  Andar Z: </td>
   <td><input type="text" name="toz" maxlength="10"></td>
 </tr>
 <tr>
   <td>Porta Pocis&ccedil;&atilde;o X: </td>
   <td><input type="text" name="portax" maxlength="10"></td>
 </tr>
 <tr>
   <td>Porta Pocis&ccedil;&atilde;o Y: </td>
   <td><input type="text" name="portay" maxlength="10"></td>
 </tr>
 <tr>
   <td>Porta Pocis&ccedil;&atilde;o Z: </td>
   <td><input type="text" name="portaz" maxlength="10"></td>
 </tr>
 <tr>
   <td>Nome da Casa </td>
   <td><input type="text" name="nome" maxlength="10"></td>
 </tr>
 <tr>
   <td><input name="submit" type="submit" value="Create">
&nbsp;
<input name="reset" type="reset" value="Reset"></td>
   <td>&nbsp;</td>
 </tr>
</table>
</form>
</div>
</body>
</html>

Cadastro De Horario - Checkbox E Combobox

30/11/2005, 11:11

Atualizado 02/12/05
Boa Tarde a todos q passerem por aqui,


Estou fazendo um site para uma escola de dança, e nesse site tera uma parte contendo os horarios de aula de todas as modalidades, soh q estes horarios estão sempre mudando por issu resolvi desenvolver um Backend (não sei se eh assim q chama :wacko: ) para q o cliente pudesse estar cadastrando, exibindo, alterando e excluindo os horarios na pagina. Apesar de não ter muito conhecimento com PHP e MySQL eu acho q esse eh o melhor caminho para resolver isso. conto com a ajuda de todos v6 para terminar esse codigo. OBRIGADO :lol:


Vamos começar, primeiro criei a tabela cadastro com a estrutura abaixo (digam c ela esta correta para esse serviço)

Atualizado 02/12/05
-- cria a tabela de modalidades
Create table modalidade (
 idmoda Int NOT NULL AUTO_INCREMENT,
 moda Char(35) NOT NULL,
 data_cadastro Date,
 Primary Key (idmoda)); 


-- cria a tabela de horarios
CREATE TABLE horario (
id Int NOT NULL AUTO_INCREMENT,
idmoda INT NOT NULL ,
hora Text ,
prof Text ,
nive Text ,
valo Text ,
seg Bool DEFAULT 0 ,
ter Bool DEFAULT 0 ,
qua Bool DEFAULT 0 ,
qui Bool DEFAULT 0 ,
sex Bool DEFAULT 0 ,
sab Bool DEFAULT 0 ,
PRIMARY KEY ( id )); 

-- adiciona um index para o campo moda
Alter table horario add Index IX_Relationship1 (idmoda);


-- adiciona uma chave estrangeira na tabela de horarios com referência à tabela de modalidades 
Alter table horario add Foreign Key (idmoda) references modalidade (idmoda) on delete restrict on update restrict;

-- insere alguns registros na tabela de modalidade
insert into modalidade (moda, data_cadastro) values ('Flamenco',current_date);
insert into modalidade (moda, data_cadastro) values ('Tec Flamenco',current_date);
insert into modalidade (moda, data_cadastro) values ('Danca do Ventre',current_date);
insert into modalidade (moda, data_cadastro) values ('Danca Cigana',current_date);
insert into modalidade (moda, data_cadastro) values ('Danca de Salao',current_date);
insert into modalidade (moda, data_cadastro) values ('Outras',current_date); 

-- insere alguns registros na tabela de horarios
insert into horario (idmoda,seg,ter,qua,qui,sex,sab,hora,prof,nive,valo) values (1,1,0,1,0,0,0,'11:00 as 12:00','Regis','Iniciante','65,00');
insert into horario (idmoda,seg,ter,qua,qui,sex,sab,hora,prof,nive,valo) values (1,0,1,0,1,0,0,'12:00 as 13:00','Kelly','Avançado','95,00');

agora o config.php
<?php
/* conecta no banco e seleciona a base de dados */
$cn = mysql_connect ("localhost","root","");
mysql_select_db("cadastro",$cn);

?>


salvar.php eh o arquivo responsavel por inserir no banco
Atualizado 02/12/05
<?php
$sql = sprintf("insert into horario (idmoda,hora,prof,nive,valo,seg,ter,qua,qui,sex,sab)".
"values (%d,'%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')",
$_POST["idmoda"],$_POST["hora"],$_POST["prof"],$_POST["nive"],
$_POST["valo"],$_POST["seg"],$_POST["ter"],$_POST["qua"],$_POST["qui"],
$_POST["sex"],$_POST["sab"]);
   /* insere no banco */
   mysql_query($sql);
   echo "o cadastro foi feito com sucesso<br><a href=c.php>Clique aqui para voltar!</a></br>";
   unset($_POST,$_REQUEST);
?>

cadastrar.php o formulario de cadastro propriamente dito
Atualizado 02/12/05
<?php
/* pega o arquivo de configuração */
require_once "config.php";
echo '
   <tr> 
      <td width="357" align="center" bgcolor="#FFFFFF"><strong><font color="#FF0000" size="1" face="verdana"><a href="cadastrar.php">Cadastrar</a> <a href="listar.php">Listar</a> <a href="deletar.php">Excluir</a></font></strong></td></br>
    </tr></br>';

/* se o cara clicar no botão salvar, chama
o PHP que insere no banco de dados */
if(isset($_POST["acao"]) && $_POST["acao"] == "Salvar") {
   require_once "salvar.php";
}
/* função para imprimir o campo do formulário com o valor se tiver na variavel post */
function input ($type, $va, $extra='') {
   /* se não for do tipo textarea */
   if($type != "textarea") {
      /* começa a input */
      $input = "<input type='$type' name='$va'";
      /* se a variavel post com o mesmo nome do que o campo
      estiver setada */
      if(isset($_POST[$va])) {
         /* coloca na input */
         $input .= " value='".$_POST[$va]."'";
      }
      /* adiciona alguma coisa extra e termina a input */
      $input .= " $extra>";
   } else {
      /* começa a textarea */
      $input = "<textarea name='$va' cols='50' rows='5'>";
      /* se a variavel post com o mesmo nome do que o campo
      estiver setada */
      if(isset($_POST[$va])) {
         /* coloca o valor na textarea */
         $input .= $_POST[$va];
      }
      /* termina a textarea */
      $input .= "</textarea>";
   }
   /* checa se tem mensagem de erro para este input */
   if(isset($_REQUEST[$va."_error"])) {
      $input .= "<font color=red>".$_REQUEST[$va."_error"]."</font>";
   }
   /* retorna a input */
   return $input;
}

/* formulario */
$form = "<html>".
"<head><title>Formulário de cadastro</title>".
"<style type='text/css'>".
"td, body, textarea { ".
   "font-family: Verdana; font-size: 11px; ".
   "background-color: #FFFFFF;".
"}".
"</style>".
"</head>".
"<body>".
"<form action='".$_SERVER["PHP_SELF"]."' method='post' enctype='multipart/form-data' name='cadastro'>".
"<table cellpadding='2' cellspacing='1' bgcolor='#CCCCCC' width='20%'>".

"<tr><td colspan='2'><b>Formulário de cadastro</b></td></tr>".
"<tr><td width='30%' align='right'>Hora:</td><td>".input('text','hora')."</td></tr>".
"<tr><td align='right'>Modalidade:</td><td><select name=idmoda>";

/* pega todos os tipos */
$rs = mysql_query("select * from modalidade order by idmoda asc");
while($row = mysql_fetch_assoc($rs)) {
   $form .= "<option value='".$row["idmoda"]."'";
   if(isset($_POST["idmoda"]) && $row["idmoda"] == $_POST["idmoda"]) {
      $form .= " selected";
   }
   $form .= ">".$row["moda"]."</option>";
}

/* continuando o formulário */
$form .= "</td></tr>".
"<tr><td align='right'>Professor:</td><td>".input("text","prof")."</td></tr>".
"<tr><td align='right'>Nivel:</td><td>".input("text","nive")."</td></tr>".
"<tr><td align='right'>Valor:</td><td>".input("text","valo")."</td></tr>".
"<tr><td align='right'>Seg:</td><td>". input("checkbox","seg",($_POST["seg"]==1?"checked":"value='1'")). "</td></tr>".
"<tr><td align='right'>Ter:</td><td>". input("checkbox","ter",($_POST["ter"]==1?"checked":"value='1'")). "</td></tr>".
"<tr><td align='right'>Qua:</td><td>". input("checkbox","qua",($_POST["qua"]==1?"checked":"value='1'")). "</td></tr>".
"<tr><td align='right'>Qui:</td><td>". input("checkbox","qui",($_POST["qui"]==1?"checked":"value='1'")). "</td></tr>".
"<tr><td align='right'>Sex:</td><td>". input("checkbox","sex",($_POST["sex"]==1?"checked":"value='1'")). "</td></tr>".
"<tr><td align='right'>Sab:</td><td>". input("checkbox","sab",($_POST["sab"]==1?"checked":"value='1'")). "</td></tr>".
"<tr><td colspan=2 align=center>". input("submit","acao",($_POST["acao"] == ""?"value='Salvar'":""))."</td></tr>".
"</table></form>".
"</body></html>";

/* mostra na tela */
echo $form;
?>

agora o formulario de consulta listar.php

nesse eu preciso por escolher o tipo de cosulta pela modalidade

Adicionado 02/12/05
<?
include"config.php";
echo '
   <tr> 
      <td width="357" align="center" bgcolor="#FFFFFF"><strong><font color="#FF0000" size="1" face="verdana"><a href="cadastrar.php">Cadastrar</a> <a href="listar.php">Listar</a> <a href="deletar.php">Excluir</a></font></strong></td></br>
    </tr></br>';
$y = mysql_query("SELECT * FROM horario");
while($x = mysql_fetch_array($y)){ 
echo'
</br>
<table width="0%" border="0" cellspacing="1" bgcolor="#339900">
  <tr>
    <td height="98" valign="top" bgcolor="#FFFFFF"> <table width="400" height="106" border="0" cellspacing="0">
  <tr> 
          <td width="44"><strong><font size="1" face="verdana">Id:</font></strong></td>
          <td width="314"><strong><font color="#009900" size="1" face="verdana">'.$x['id'].'</font></strong></td>
        </tr>   
  <tr> 
          <td width="44"><strong><font size="1" face="verdana">Seg:</font></strong></td>
          <td width="314"><strong><font color="#009900" size="1" face="verdana">'.$x['seg'].'</font></strong></td>
        </tr>   
   
 <tr> 
          <td width="44"><strong><font size="1" face="verdana">Ter:</font></strong></td>
          <td width="314"><strong><font color="#009900" size="1" face="verdana">'.$x['ter'].'</font></strong></td>
        </tr>  
   <tr> 
          <td width="44"><strong><font size="1" face="verdana">Qua:</font></strong></td>
          <td width="314"><strong><font color="#009900" size="1" face="verdana">'.$x['qua'].'</font></strong></td>
        </tr>  
   <tr> 
          <td width="44"><strong><font size="1" face="verdana">Qui:</font></strong></td>
          <td width="314"><strong><font color="#009900" size="1" face="verdana">'.$x['qui'].'</font></strong></td>
        </tr>  
   <tr> 
          <td width="44"><strong><font size="1" face="verdana">Sex:</font></strong></td>
          <td width="314"><strong><font color="#009900" size="1" face="verdana">'.$x['sex'].'</font></strong></td>
        </tr>  
   <tr> 
          <td width="44"><strong><font size="1" face="verdana">Sab:</font></strong></td>
          <td width="314"><strong><font color="#009900" size="1" face="verdana">'.$x['sab'].'</font></strong></td>
        </tr>  
  <tr> 
          <td width="44"><strong><font size="1" face="verdana">Hora:</font></strong></td>
          <td width="314"><strong><font color="#009900" size="1" face="verdana">'.$x['hora'].'</font></strong></td>
        </tr>
        <tr> 
          <td width="40"><strong><font size="1" face="verdana">Professor :</font></strong></td>
          <td width="300"><strong><font color="#009900" size="1" face="verdana">'.$x['prof'].'</font></strong></td>
        </tr>
        <tr> 
          <td width="44"><strong><font size="1" face="verdana">Nivel :</font></strong></td>
          <td width="314"><strong><font color="#009900" size="1" face="verdana">'.$x['nive'].'</font></strong></td>
        </tr>
        <tr> 
          <td><strong><font size="1" face="verdana">Valor :</font></strong></td>
          <td><strong><font color="#009900" size="1" face="verdana">'.$x['valo'].'</font></strong></td>
        </tr>
  <tr> 
          <td><strong><font size="1" face="verdana">Modalidade:</font></strong></td>
          <td><strong><font color="#009900" size="1" face="verdana">'.$x['idmoda'].'</font></strong></td>
        </tr>
      </table></td>
  </tr>
</table></br>
';
} 
?>

tive grandes progressos, consegui fazer o cadastro funcionar legal e inserir todos os dados certinho no DB, abaixo uma imagem da tela de cadastro:
Posted Image
note que eu escolhi a primeira modalidade e os dias Terça e Quinta

essa eh a consulta:
Posted Image
como pode ver ele jogou 1 na terça e na quinta e 0 nos demais dias, e a modalidade ficou 1

soh q oq eu preciso agora eh fazer uma consulta (pondendo escolher por modalidade) e q o resultado venha organizado por (chave 1)dias da semana (chave 2)hora.
deu pra entender???
vou postar como esta atualmente no flash, e eh o q eu pretendo controlar com esse codigo q estamos desenvolvendo.

vou postar como esta atualmente no flash, e eh o q eu pretendo controlar com esse codigo q estamos desenvolvendo.
Assim q ele esta atualmente no flash:
Posted Image
meu objetivo eh controlar isso por PHP+MySQL.


soh q oq eu preciso agora eh fazer uma consulta (pondendo escolher por modalidade) e q o resultado venha organizado por (chave 1)dias da semana (chave 2)hora. issu no PHP mesmo.
deu pra entender???


de acordo com q for resolvendo esse problema eu vou editando o topico.

OBRIGADO A TODOS.

EDIT
Vou colocar os arquivos pra download pra v6 fazerem testes ai

IPB Skin By Virteq