Bernaz 0 Denunciar post Postado Outubro 5, 2009 Eu estou terminando um site e preciso de uma ajuda: 1- Tenho um site de um jogo de apostas. 2- Se você quiser jogar precisa ser cadastrado. 3- Para enviar sua aposta para o site, você cria sua conta e envia. 4- Se você enviar sua aposta para uma rodada, terá de esperar a próxima rodada para enviar outra aposta. -------------------- É no passo nº 4 que não estou sabendo fazer. Eu fiz assim: (tem uma tabela chamada "apostas") $confere = Confere se na tabela "apostas" da atual rodada já tem seu nick; se $confere estiver vazio { Pode enviar; } se não { "Você já enviou suas apostas" } Mas isso não está dando certo, COMO EU FAÇO PARA O MYSQL SÓ ENVIAR DADOS A UMA TABELA, SE O JOGADOR QUE ESTÁ ENVIANDO, AINDA NÃO ENVIOU ? Deu pra entender o que eu estou dizendo? Se quiserem eu envio o código. OBRIGADO Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Outubro 5, 2009 você faz o select e verifica o numero de linhas se for 0 você insere sql = "select * from tabela"; $exe = mysql_query($sql); $num_linhas = mysql_num_rows($exe); if($exe == 0) { // INSERT } Compartilhar este post Link para o post Compartilhar em outros sites
Bernaz 0 Denunciar post Postado Outubro 5, 2009 $exe = mysql_query("select * from tabela"); $num_linhas = mysql_num_rows($exe); if($exe == 0){ // INSERT } Dee nem dá certo fazer isso no meu caso, por que quando termina uma rodada e começa outra, a tabela não é resetada, os dados da rodada anterior continuam nela, pra mais tarde poder fazermos buscas de rodadas anteriores, entende. Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Outubro 5, 2009 você tem que por uma condição no WHERE para resolver isso. Compartilhar este post Link para o post Compartilhar em outros sites
Bernaz 0 Denunciar post Postado Outubro 5, 2009 você tem que por uma condição no WHERE para resolver isso. Já botei o WHERE... OLHA COMO ESTÁ: $sql=mysql_query("SELECT player FROM apostas WHERE player=\"".$player."\" AND rodada=".$rodada.";"); if (!$sql) { // INSERT } else { echo "Você já enviou suas apostas para esta rodada."; } Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Outubro 5, 2009 Se a tabela de aposta for algo assim aposta ------ cod_aposta n(6) pk cod_usuario n(6) pk data_aposta .... O Usuário só poderá fazer uma aposta por vez caso contrário dará um erro de DUPLICATE KEY. Compartilhar este post Link para o post Compartilhar em outros sites
Bernaz 0 Denunciar post Postado Outubro 5, 2009 A tabela é assim: +--------+--------+-------+------------+-------+-------+-------+-------+ | player | rodada | hora | dia | time1 | time2 | time3 | time4 | +--------+--------+-------+------------+-------+-------+-------+-------+ | Joao | 1 | 12:49 | 04/10/2009 | 16 | 4 | 7 | 0 | +--------+--------+-------+------------+-------+-------+-------+-------+ | Bernaz | 2 | 15:11 | 05/10/2009 | 3 | 0 | 10 | 7 | +--------+--------+-------+------------+-------+-------+-------+-------+ | Jose | 2 | 17:36 | 05/10/2009 | 5 | 1 | 9 | 5 | +--------+--------+-------+------------+-------+-------+-------+-------+ SE NÓS AINDA ESTIVERMOS NA SEGUNDA RODADA, NEM O BERNAZ NEM O JOSE PODERÃO ENVIAR SUAS APOSTAS, POIS ELES JÁ ENVIARAM, MAS O JOAO PODE, PORQUE NA RODADA 2 ELE AINDA NÃO ENVIOU, ENTENDERAM ? $sql=mysql_query("SELECT player FROM apostas WHERE player=\"".$player."\" AND rodada=".$rodada.";"); if (!$sql) { // INSERT } else { echo "Você já enviou suas apostas para esta rodada."; } Mas esse código acima não dá certo, acho que é ero de sintaxe. Alguém tem alguma sugestão ? Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Outubro 5, 2009 Qual a PK da tabela ? Compartilhar este post Link para o post Compartilhar em outros sites
Eclesiastes 2 Denunciar post Postado Outubro 6, 2009 A tabela é assim: +--------+--------+-------+------------+-------+-------+-------+-------+ | player | rodada | hora | dia | time1 | time2 | time3 | time4 | +--------+--------+-------+------------+-------+-------+-------+-------+ | Joao | 1 | 12:49 | 04/10/2009 | 16 | 4 | 7 | 0 | +--------+--------+-------+------------+-------+-------+-------+-------+ | Bernaz | 2 | 15:11 | 05/10/2009 | 3 | 0 | 10 | 7 | +--------+--------+-------+------------+-------+-------+-------+-------+ | Jose | 2 | 17:36 | 05/10/2009 | 5 | 1 | 9 | 5 | +--------+--------+-------+------------+-------+-------+-------+-------+ SE NÓS AINDA ESTIVERMOS NA SEGUNDA RODADA, NEM O BERNAZ NEM O JOSE PODERÃO ENVIAR SUAS APOSTAS, POIS ELES JÁ ENVIARAM, MAS O JOAO PODE, PORQUE NA RODADA 2 ELE AINDA NÃO ENVIOU, ENTENDERAM ? $sql=mysql_query("SELECT player FROM apostas WHERE player=\"".$player."\" AND rodada=".$rodada.";"); if (!$sql) { // INSERT } else { echo "Você já enviou suas apostas para esta rodada."; } Mas esse código acima não dá certo, acho que é ero de sintaxe. Alguém tem alguma sugestão ? Essa não é a maneira apropriada para verificar se houveram ou não registros obtidos com a query. Está apenas checando se houve erro ao executar a mysql_query(). Use http://www.php.net/mysql_num_rows Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Outubro 6, 2009 Troque isto $sql=mysql_query("SELECT player FROM apostas WHERE player=\"".$player."\" AND rodada=".$rodada.";"); if (!$sql) { // INSERT } else { echo "Você já enviou suas apostas para esta rodada."; } por isto. $sql = "SELECT player FROM apostas WHERE player= '$player' AND rodada= '$rodada'"; $exe = mysql_query($sql); $linhas = mysql_num_rows($exe); if($linhas == 0) { // Faz o Insert } else { // Ja possui } Compartilhar este post Link para o post Compartilhar em outros sites