Ir para conteúdo

POWERED BY:

Arquivado

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

juniorjrml

PHP e Mysql

Recommended Posts

Ola pessoal eu gostaria de saber qual o procedimento correto

para dar um comando em sql por uma variavel $str, para entender

melhor o motivo da minha pergunta eu vou explicar o problema

que tenho em mãos agora:

 

Eu ja utilizei antes o metodo normal(eu acho que só tem esse metodo) do

 

 

mysql_query($strVariavel) or die(mysql_error());

sendo que atualmente eu estou tendo que usar variaveis dentro do comando sql:

 

 

$strRegistracoou = "UPDATE mapa2 SET ocupacao='$strNometribo' WHERE X = '$coox' && Y = '$cooy' "

e esta dando erro!

 

ja tentei colocar de varios jeitos como:

 

 

 

$strRegistracoou = "UPDATE mapa2 SET ocupacao='";
$strRegistracood = $strNometribo;
$strRegistracoot = "' WHERE x ='";
$strRegistracooq = $coox;
$strRegistracooc = "' && y ='";
$strRegistracoos = $cooy;
$strRegistracooss = "'";
$strRegistracooo = $strRegistracoou . $strRegistracood . $strRegistracoot . $strRegistracooq . $strRegistracooc . $strRegistracoos . $strRegistracooss;

ou

 

 

 

$strConcluid = "INSERT INTO tribos(nometribo,defesa,populacao,populacaomax,x,y) VALUE('$strNometribo',20,5,20,'$coox','$cooy')";

e não vai por nada

 

se alguem pudesse ajudar eu agradeceria :)

 

abraço a todos

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual a mensagem de erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Substitua sua query por esta....

$strRegistracoou = "UPDATE mapa2 SET ocupacao='$strNometribo' WHERE X = '$coox' AND Y = '$cooy'";

 

Qual a diferença entre a antiga e esta ?

 

USA PDO RS

 

@Jordan, o problema dele é de SQL e não de API.

 

P.S: Refazendo a pergunta já feita, qual a mensagem de erro ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual a diferença entre a antiga e esta ?

 

 

@Jordan, o problema dele é de SQL e não de API.

 

P.S: Refazendo a pergunta já feita, qual a mensagem de erro ?

 

Antes ele usou && e o Alaerte alterou para AND. (:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Antes ele usou && e o Alaerte alterou para AND. (:

 

 

E dai ? isso não muda nada.

http://dev.mysql.com/doc/refman/5.0/en/logical-operators.html#operator_and

 

&& é a mesma coisa que AND.

 

 

 

mysql> SELECT 1 AND 1, 1 && 1, FALSE && TRUE, 0 AND 1, 0 && 1, ('A' = 'A' AND 'A' = 'B'), ('A' = 'A' && 'A' = 'A');
+---------+--------+---------------+---------+--------+---------------------------+--------------------------+
| 1 AND 1 | 1 && 1 | FALSE && TRUE | 0 AND 1 | 0 && 1 | ('A' = 'A' AND 'A' = 'B') | ('A' = 'A' && 'A' = 'A') |
+---------+--------+---------------+---------+--------+---------------------------+--------------------------+
|       1 |      1 |             0 |       0 |      0 |                         0 |                        1 |
+---------+--------+---------------+---------+--------+---------------------------+--------------------------+
1 row in set (0.00 sec)

 

 

 

o problema dele n é sql pq um sql de update é bem simples e o dele ta correto, deve ser no php

 

 

vi aqui agora ele botou VALUE e o correto é VALUES

 

mysql> use test;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| test           |
+----------------+
1 row in set (0.00 sec)

mysql> describe test;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| test  | int(11) | YES  |     | NULL    |       |
+-------+---------+------+-----+---------+-------+
1 row in set (0.17 sec)

mysql> insert into test value(1);
Query OK, 1 row affected (0.11 sec)

mysql> select * from test;
+------+
| test |
+------+
|    1 |
+------+
1 row in set (0.00 sec)

mysql> alter table test add column abc char(2) not null;
Query OK, 1 row affected (0.37 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql> insert into test value(10, 'ab');
Query OK, 1 row affected (0.04 sec)

mysql> select * from test;
+------+-----+
| test | abc |
+------+-----+
|    1 |     |
|   10 | ab  |
+------+-----+
2 rows in set (0.00 sec)

Compartilhar este post


Link para o post
Compartilhar em outros sites

E dai ? isso não muda nada.

http://dev.mysql.com/doc/refman/5.0/en/logical-operators.html#operator_and

 

&& é a mesma coisa que AND.

 

Em nenhum momento eu falei que muda função, você perguntou o que alterou na estrutura da query e eu respondi, simples. rs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em nenhum momento eu falei que muda função, você perguntou o que alterou na estrutura da query e eu respondi, simples. rs

 

Bom, isso é ÓBVIO né ? mas me responde, se ele alterar && pra AND, vai resolver o problema dele ? é isso que to falando, se o que MUDOU na SQL, vai resolver o problema.

 

:D

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

 

Bom, isso é ÓBVIO né ? mas me responde, se ele alterar && pra AND, vai resolver o problema dele ? é isso que to falando, se o que MUDOU na SQL, vai resolver o problema.

 

:D

 

Não irá mudar em nada em relação a performance.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não irá mudar em nada em relação a performance.

 

Ai você viajou legal, não estou falando de performance ...

Se com "&&" está dando errado, com AND também vai dar, então essa modificação é inútil, não vai resolver o problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não disse que iria resolver o problema dele, eu disse que em querys que são executadas sem erros, essas duas opções não iram influenciar na performance da query.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não disse que iria resolver o problema dele, eu disse que em querys que são executadas sem erros, essas duas opções não iram influenciar na performance da query.

Então meu chapá, eu diria pra você ler novamente o que estamos falando, porque você já está "indo para o norte" e eu indo para o sul.

 

Estávamos falando sobre o que muda na query, você disse que o "&&" foi substituído por "AND". Eu disse que isso NÃO muda nada. Depois você disse que não muda nada em relação à performance. Eu disse que não estou discutindo performance, nem ao menos toquei nessa palavra.

 

Não estou discutindo o óbvio, por favor, preste atenção no que eu falei.

Hugs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal desculpa eu não estou sabendo me expressar eu vou dar o código da pagina completa agora não ta aparecendo erro nenhum mais não ta acrescentando registros na tabela tribos nem modificando nada :(

 

 

 

<?php
session_start();


//conectando ao servidor do banco de dados
mysql_connect("mysql.hostinger.com.br","u534571186_admin","jlcj258") or die(mysql_error());
//selecionando banco de dados
mysql_select_db("u534571186_te") or die(mysql_error());


//comandos sql
$strSqlu = "SELECT * FROM mapa2";
$strSqld = mysql_query($strSqlu);






//rodando todas as coordenadas do mapa, opção por opção
while ($strTribo = mysql_fetch_array($strSqld)) {
//cria ou não uma nova aldeia?
$criaaldeia = rand(0,9);
//se o valor da variavel criaaldeia for 1, cria! chance de 10 para 1
if ($criaaldeia == 1) {
$coox = $strTribo["x"];
$cooy = $strTribo["y"];


//verificando se a coordenada ja esta ocupada
if ($strTribo["ocupacao"] =! 0) {
//se sim
$aleatoriox = rand(1,8);
$aleatorioy = rand(1,8);
//gera coordenada perto da aldeia ja populada em questão
$coox = $strTribo["x"] + $aleatoriox;
$cooy = $strTribo["y"] + $aleatorioy;


//acha as coordenadas  gerada anteriormente
while ($strTribo = mysql_fetch_array($strSqld)) {


if ($strTribo["x"] == $coox && $strTribo["y"] == $cooy) {


if ($strTribo["ocupacao"] == 0) {
//criar tribo
//variaveis randomicas
$muro = rand(1,15);
$seguidores = rand(10,100);
$materiais = rand(10,2500);
$central = rand(1,15);
$quartel = rand(1,15);
$defesa = rand(10,150);
//array nomes tribos
$strTribonome = Array("Arara","Arawete","Ashaninka","Asurini","Bororo","Enawene","Naue","Guarani","Juruna","Yudja","Kaapor","Kayapo","Kalapalo","Karaja","Kaxinawa","Kraho","Mayoruna","Marubo","Matis","Matipu","Mehinako","Rikbaktsa","Surui","Tembe","Ticuna","Tiriyo","Waiana","Apalai","Waura","Wai Wai","Waiapi","Ye kuana","AIMORE","AKUNTSU","botocudos","macro je","Akunt su","Tupari","ANAMBE","Tupi guarani","Moju","APIAKA","Apiaca","Apiaka Kayabi","Kayabi","APINAYE","Apinaje","Apinage","APURINA","Ipurinan","Kangite","Popengare","Arawak","Purus","Ajujure","Caribe","Arauete","Xingu","Kampa","Asurini do Trocara","Akuawa","Tucurui","Aticum","Atruahi","Atroai","Atrowari","Atroahy","Ki nya","Jatapu","Jauaperi","Canoeiro","Cara Preta","Carijo","Javares","Awa","Wazaizara","Tenetehara","Aiaye","Gwaza","Gurupi","Guama","Capim","Ka apor","Tembe","Guajajara","ATIKUM","ATROARI","AVA CANOEIRO","AWA GUAJA","BANIWA","Baniva","Baniua","Curipaco","BORORO","Coxipone","Araripocone","Araes","Cuiaba","Coroados","Porrudos","Bororo","Jarudore","Meruri","Tadarimana","Perigara");
$nometribor = rand(0,103);
$strNometribo = $strTribonome[$nometribor];




//comandos sql
//muralha,seguidores,material,central,quartel,defesa,nometribo
$strComandou = "UPDATE mapa2 SET ocupacao='$strNometribo' WHERE x = $coox AND y = $cooy";
$strComandod = "INSERT INTO tribos (muralha,seguidores,material,central,quartel,defesa,nometribo) VALUES('$muro','$seguidores','$materiais','$central','$quartel','$defesa','$strNometribo')";
//termina o registro 
mysql_query($strComandou) or die(mysql_error());
mysql_query($strComandod) or die(mysql_error());
echo "deu certo!";


}


else {
//não faz nada
echo "";


}


}


}










}




else {


//criar tribo
//variaveis randomicas
$muro = rand(1,15);
$seguidores = rand(10,100);
$materiais = rand(10,2500);
$central = rand(1,15);
$quartel = rand(1,15);
$defesa = rand(10,150);
//array nomes tribos
$strTribonome = Array("Arara","Arawete","Ashaninka","Asurini","Bororo","Enawene","Naue","Guarani","Juruna","Yudja","Kaapor","Kayapo","Kalapalo","Karaja","Kaxinawa","Kraho","Mayoruna","Marubo","Matis","Matipu","Mehinako","Rikbaktsa","Surui","Tembe","Ticuna","Tiriyo","Waiana","Apalai","Waura","Wai Wai","Waiapi","Ye kuana","AIMORE","AKUNTSU","botocudos","macro je","Akunt su","Tupari","ANAMBE","Tupi guarani","Moju","APIAKA","Apiaca","Apiaka Kayabi","Kayabi","APINAYE","Apinaje","Apinage","APURINA","Ipurinan","Kangite","Popengare","Arawak","Purus","Ajujure","Caribe","Arauete","Xingu","Kampa","Asurini do Trocara","Akuawa","Tucurui","Aticum","Atruahi","Atroai","Atrowari","Atroahy","Ki nya","Jatapu","Jauaperi","Canoeiro","Cara Preta","Carijo","Javares","Awa","Wazaizara","Tenetehara","Aiaye","Gwaza","Gurupi","Guama","Capim","Ka apor","Tembe","Guajajara","ATIKUM","ATROARI","AVA CANOEIRO","AWA GUAJA","BANIWA","Baniva","Baniua","Curipaco","BORORO","Coxipone","Araripocone","Araes","Cuiaba","Coroados","Porrudos","Bororo","Jarudore","Meruri","Tadarimana","Perigara");
$nometribor = rand(0,103);
$strNometribo = $strTribonome[$nometribor];






//comandos sql
//muralha,seguidores,material,central,quartel,defesa,nometribo
$strComandou = "UPDATE mapa2 SET ocupacao='$strNometribo' WHERE x = $coox AND y = $cooy";
$strComandod = "INSERT INTO tribos (muralha,seguidores,material,central,quartel,defesa,nometribo) VALUES('$muro','$seguidores','$materiais','$central','$quartel','$defesa','$strNometribo')";
//cria a tribo(na tabela tribos)






//termina o registro 
mysql_query($strComandou) or die(mysql_error());
mysql_query($strComandod) or die(mysql_error());
echo "deu certo!";
}
}














}
mysql_close();
?>


Pessoal eu consegui acertar caom a ajuda dos companheiros acima (o meu ultimo post ja esta funcionando já)

 

é pq eu esqueci que eu botei um sistema de probabilidade de não criar ae a promeira pag por azar não teve nenhum registro modificado (na tabela mapa 2)

 

eu ainda tenho que resolver o problema de acrescentar os dados na tabela tribos mais ta tranquilo minha cabeça ja desenrolou rsrsrs

obrigado a todos :)

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.