• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

rgcouto

mais uma duvida de um iniciante

34 mensagens neste tópico

bem, estou com mais uma duvida... desta vez quero ir buscar um valor a uma tabela no registo k tem um certo nome só k ele nao faz isso :S nao sei pq.... dá sempre o erro k nao consegue fazer o mysql_fetch..

<?php

if ($_GET['option'] == '') {

echo'
	<style type="text/css">
	<!--
	.style20 {
		font-family: Verdana, Arial, Helvetica, sans-serif;
		font-size: 12px;
	}
	.style25 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; font-weight: bold; }
	.style28 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; }
	-->
	</style>
	<form>
		<table width="100%" border="0" cellpadding="3" cellspacing="0">
	      <tr>
	        <td background="images/barra.jpg"><span class="style20">Lista | Editar Icones</span></td>
	      </tr>
	      <tr>
			<table width="100%" border="1" bordercolor="#333333" cellpadding="3" cellspacing="0" style="border-collapse: collapse">
			  <tr bgcolor="#999999">
			    <td class="style25">Editar</td>
		        <td><span class="style25"  width="100">Imagem</span></td>
		        <td><span class="style25">Nome</span></td>
			  </tr>';

				//Dados DataBase
				$localhost = 'localhost';
				$db_name = 'rr_jrodrigues';
				$user = 'rr_root';
				$password = '';
				$username = $_GET['username'];

				//ligação á DataBase
				$link = mysql_connect($localhost,$user,$password);

				//Seleciona DataBase
				$db = mysql_select_db($db_name,$link);

				//Query SQL
				$consulta = "SELECT url, name FROM icon";

				//resultado da query
				$resultado = mysql_query($consulta, $link);

				//introdução dos dados do resultado da query numa caixa pendente
				while($linha = mysql_fetch_row($resultado)){
					printf("<tr bgcolor='#CCCCCC'>");
					printf("<td><span class='style28'><center><a href='redirect.php?site=filmes/editar_icones&option=editar_icones&username=$username&name=$linha[1]'><u>Editar</u></a><center></span></td>");
					printf("<td width='100'><span class='style28'><center><img src='$linha[0]' height='32' width='32'></center></span></td>");
					printf("<td><span class='style28'><center>$linha[1]</center></span></td>");
					printf("</tr>");
				};

				mysql_close($link);
echo '
			</table>
	      </tr>
	    </table>
	</form>';
}
else {

//Dados DataBase
$localhost = 'localhost';
$db_name = 'rr_jrodrigues';
$user = 'rr_root';
$password = '';
$username = $_GET['username'];
$name = $_GET['name'];

//ligação á DataBase
$link = mysql_connect($localhost,$user,$password);

//Seleciona DataBase
$db = mysql_select_db($db_name,$link);

        //O ERRO ESTÁ AQUI....

//Query SQL
$consulta = "SELECT url FROM icon where name = $name";

//resultado da query
$resultado = mysql_query($consulta, $link);

$linha = mysql_fetch_row($resultado);

echo'
	<style type="text/css">
	<!--
	.style1 {
		font-family: Verdana, Arial, Helvetica, sans-serif;
		font-size: 12px;
	}
	.style4 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; }
	-->
	</style>
		<form action="content/filmes/opcao_icones.php?option=editar_icones&url='.$linha[0].'" method="post">
	      	<table width="200" border="0" cellpadding="3" cellspacing="1" align="center">
			  <tr>
				<td colspan="2" background="images/barra.jpg"><span class="style1">Editar Icone</span></td>
			  </tr>
			  <tr bgcolor="#CCCCCC">
				<td><span class="style4">Icone:</span></td>
				<td><img src="'.$linha[0].'" width="32" height="32"></td>
			  </tr>
			  <tr bgcolor="#CCCCCC">
				<td class="style4">Nome: </td>
				<td><input type="text" name="name" size="20" value="'. $name. '"></td>
			  </tr>
			  <tr bgcolor="#CCCCCC">
				<td class="style4">Utilizador: </td>
				<td><input type="text" name="username" size="20" value="'. $username. '"></td>
			  </tr>
			  <tr bgcolor="#CCCCCC">
			    <td colspan="2"><input type="submit" name="Submit" value="Editar">
	              <input type="reset" name="Submit2" value="Apagar"></td>
		      </tr>
			</table>
		</form>';
}


?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

experimenta assim, faz primeiro a ligação, e dps poe o if

<?php

				//Dados DataBase
				$localhost = 'localhost';
				$db_name = 'rr_jrodrigues';
				$user = 'rr_root';
				$password = '';
				$username = $_GET['username'];

				//ligação á DataBase
				$link = mysql_connect($localhost,$user,$password);

				//Seleciona DataBase
				$db = mysql_select_db($db_name,$link);

if ($_GET['option'] == '') {

echo'
	<style type="text/css">
	<!--
	.style20 {
		font-family: Verdana, Arial, Helvetica, sans-serif;
		font-size: 12px;
	}
	.style25 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; font-weight: bold; }
	.style28 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; }
	-->
	</style>
	<form>
		<table width="100%" border="0" cellpadding="3" cellspacing="0">
	      <tr>
	        <td background="images/barra.jpg"><span class="style20">Lista | Editar Icones</span></td>
	      </tr>
	      <tr>
			<table width="100%" border="1" bordercolor="#333333" cellpadding="3" cellspacing="0" style="border-collapse: collapse">
			  <tr bgcolor="#999999">
			    <td class="style25">Editar</td>
		        <td><span class="style25"  width="100">Imagem</span></td>
		        <td><span class="style25">Nome</span></td>
			  </tr>';



				//Query SQL
				$consulta = "SELECT url, name FROM icon";

				//resultado da query
				$resultado = mysql_query($consulta, $link);

				//introdução dos dados do resultado da query numa caixa pendente
				while($linha = mysql_fetch_row($resultado)){
					printf("<tr bgcolor='#CCCCCC'>");
					printf("<td><span class='style28'><center><a href='redirect.php?site=filmes/editar_icones&option=editar_icones&username=$username&name=$linha[1]'><u>Editar</u></a><center></span></td>");
					printf("<td width='100'><span class='style28'><center><img src='$linha[0]' height='32' width='32'></center></span></td>");
					printf("<td><span class='style28'><center>$linha[1]</center></span></td>");
					printf("</tr>");
				};

				mysql_close($link);
echo '
			</table>
	      </tr>
	    </table>
	</form>';
}
else {

        //O ERRO ESTÁ AQUI....        POIS, AQUI TA O PROBLEMA

//Query SQL
$consulta = "SELECT url FROM icon where name = '$name'";

//resultado da query
$resultado = mysql_query($consulta, $link);

$linha = mysql_fetch_row($resultado);

echo'
	<style type="text/css">
	<!--
	.style1 {
		font-family: Verdana, Arial, Helvetica, sans-serif;
		font-size: 12px;
	}
	.style4 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; }
	-->
	</style>
		<form action="content/filmes/opcao_icones.php?option=editar_icones&url='.$linha[0].'" method="post">
	      	<table width="200" border="0" cellpadding="3" cellspacing="1" align="center">
			  <tr>
				<td colspan="2" background="images/barra.jpg"><span class="style1">Editar Icone</span></td>
			  </tr>
			  <tr bgcolor="#CCCCCC">
				<td><span class="style4">Icone:</span></td>
				<td><img src="'.$linha[0].'" width="32" height="32"></td>
			  </tr>
			  <tr bgcolor="#CCCCCC">
				<td class="style4">Nome: </td>
				<td><input type="text" name="name" size="20" value="'. $name. '"></td>
			  </tr>
			  <tr bgcolor="#CCCCCC">
				<td class="style4">Utilizador: </td>
				<td><input type="text" name="username" size="20" value="'. $username. '"></td>
			  </tr>
			  <tr bgcolor="#CCCCCC">
			    <td colspan="2"><input type="submit" name="Submit" value="Editar">
	              <input type="reset" name="Submit2" value="Apagar"></td>
		      </tr>
			</table>
		</form>';
}


?>

como $name  e uma variavel e nao uma string, tem que ficar dentro das aspas

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

fixe, já funcionou :thumbsup: olha mas entretanto surgiu-me outra duvida como é k eu posso fazer com k os resultados de uma tabela aparecam de baixo para cima (ou seja do ultimo registo para o primeiro)??

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tens de colocar na query sql ORDER BY nm_do_campo DESC

$consulta = "SELECT url FROM icon WHERE name = '$name' ORDER BY campo_id DESC";

tens DESC (Decrescente) e ASC (Ascendente)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

estou com um problema :S (mais um, lool)

<?php

$server = 'localhost';
$username = 'rr_root';
$password= '';
$db_name = 'rr_flexasbar';

$link = mysql_connect($server,$username,$password);

$db = mysql_select_db($db_name,$link);


if ($_GET['option'] == "nova_foto") {
// ==============
// Configuration
// ==============
$uploaddir = "media/fotos"; // Where you want the files to upload to - Important: Make sure this folders permissions is 0777!
$prefix ="../../../";
// ==============
// Upload Part
// ==============
if(is_uploaded_file($_FILES['file']['tmp_name']))
{
	move_uploaded_file($_FILES['file']['tmp_name'],$prefix.$uploaddir.'/'.$_FILES['file']['name']);
	$file_name = $uploaddir.'/'.$_FILES['file']['name'];
}

$name = $_POST["name"];
$user = $_POST["username"];
$section = $_POST["section"];
$date = date('y-m-d H:i:s');

$query = "SELECT id FROM section WHERE name = $section";

$resultado = mysql_query($query,$link);

         //aparece-me aqui o erro, nao deixa fazer a linha seguinte..
$linha = mysql_fetch_row($resultado);

$section = $linha;

$query = "INSERT INTO photos (section, name, file_name, date, user) VALUES ('$section', '$name','$file_name','$date','$user')";

$resultado = mysql_query($query,$link);

header("Location: ../../redirect.php?site=fotos/editar_fotos&username=$user");

} elseif ($_GET['option'] == "editar_fotos") {

$name = $_POST["name"];
$date = date('y-m-d H:i:s');
$user = $_POST["username"];
$id = $_GET["id"];

$query = 'UPDATE photos set name = "'.$name.'", date = "'.$date.'" where id = '.$id;

$resultado = mysql_query($query);

header("Location: ../../redirect.php?site=fotos/editar_fotos&username=$user");

} elseif ($_GET['option'] == "apagar_fotos") {


$id = $_GET["id"];
$filename = $_GET["filename"];

$query = "DELETE FROM photos where id = $id";

$resultado = mysql_query($query,$link);

$redirect = $_GET['linkbefore'];
$username = $_GET['username'];

header("Location: ../../redirect.php?site=fotos/apagar_fotos&username=$username");

unlink("../../".$filename);

}

mysql_close($link);
?>

o problema é o seguinte, quando recebo dados de um form para este ficheiro quando a opcao = nova foto quando pretendo saber o id da section a partir do $section dá-me erro no mysql_fetch_row...

alguém me pode ajudar??

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

	$resultado = mysql_query($query,$link);

         //aparece-me aqui o erro, nao deixa fazer a linha seguinte..
$linha = mysql_fetch_row($resultado);

$section = $linha;

a mim as vezes tb da esse erro, tens ke por:


         //aparece-me aqui o erro, nao deixa fazer a linha seguinte..
$linha = mysql_fetch_row(mysql_query($query,$link));

$section = $linha;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

@rgcouto acho que já encontrei o erro...

$query = "SELECT id FROM section WHERE name = $section";

Como valor de  $section deve ser uma string tens que colocar assim

$query = "SELECT id FROM section WHERE name = '$section' ";

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ya kingless é isso, reparei nisso dps de postar, só k dps esquecime de dzr k já tinha resolvido o problema...mas thx na msm ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para a próxima lê um tópico que existe sobre como fazer um bom post com qualidade.

E evita o uso das abreviaturas em excesso. ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

//nome do servidor
$server = 'localhost';

//username para entrar na database
$username = 'rr_root';

//password para entrar na database
$password= '';

//nome da base de dados
$db_name = 'rr_xpac';

//ligação á DataBase
$link = mysql_connect($localhost,$username,$password);

//Seleciona DataBase
$db = mysql_select_db($db_name,$link);

//Query SQL
$consulta = "SELECT data FROM contador_visitas WHERE data = ".DATE('Y-m-d');

//resultado da query
$resultado = mysql_query($consulta, $link);

//selecciona os dados
$visitas_hoje = mysql_num_rows($resultado);

Alguma tem k estar aqui mal, mas ainda nao percebi o k :S é assim o resultado da variável $visitas_hoje é = 0, mas na base de dados tenho duas entradas com essa data no campo data :S

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não percebo grande coisa de PHP, mas...

$link = mysql_connect($localhost,$username,$password);

Não vejo nenhuma variável $localhost no código... não será antes $server?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ups se calhar, é k eu adaptei isto de dois scripts k fiz anteriormente...se calhar tá aí o erro..

lool

mas tb nao é daí..... :S

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O erro esta aqui

$consulta = "SELECT data FROM contador_visitas WHERE data = ".DATE('Y-m-d');

Tem que ser

$consulta = "SELECT data FROM contador_visitas WHERE data = '". DATE('Y-m-d') ."'";

O valor de data é uma string por isso tens que colocar  ' '

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

lol, another question...I´m sorry...

<?

//include dos dados de configuração de acesso á DB
include ("config/configuracao.php");


if ($_GET["opcao"] == "") { //se ainda nao fez o login
login();
} elseif ($_GET["opcao"] == "validacao") {  //se ja fez o login, mas ainda nao validou os dados
validacao();
}


//funcao de verificacao da autenticação
function validacao() {

	$username = $_POST["username"];
$pwd = $_POST["password"];
$pwd = MD5($pwd);

$consulta = 'SELECT palavra_passe FROM utilizadores WHERE nome_utilizador = "'.$username.'"';

$resultado = mysql_query($consulta);

$num_linhas = mysql_num_rows($resultado);

$palavra_passe = mysql_fetch_row($resultado);

$palavra_passe = $palavra_passe[0];

if ($num_linhas != 0) {

	if ($palavra_passe == $pwd) {

		validado();

	} else {

		$erro = "Palavra-Passe inválida!!!";
		nao_validado();

	}
} else {

	$erro = "Nome de Utilizador inválido!!!";
	nao_validado();

}
}


//funcao de inserção de dados para login
function login(){
include ("includes/login.htm");
}

//funcao caso os dados sejam validados
function validado() {
include ("includes/top.php");
include ("includes/header.php");
include ("includes/menu.htm");
include ("includes/footer.php");
}

//funcao caso os dados nao sejam validados
function nao_validado() {
include ("includes/login.htm");
echo '<center><b><font face ="verdana" size="2" color="red">'.$erro.'</font></b></center>';
}

?>

desta vez a duvida é k nao consigo por isso a correr, o ficheiro login.htm tem um form para inserção dos dados username e password, só k tnt faça k meta os dados correctos como mal, parece-me k ele entra sempre na função login :S (este ficheiro é o index.php)

P.S. - o form do ficheiro login.htm tem como action=index.php?opcao=validacao

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

e melhor, nao usar isso, mas acho que o problema ta aqui:

if ($_GET["opcao"] == "") { //se ainda nao fez o login
login();
} elseif ($_GET["opcao"] == "validacao") {  //se ja fez o login, mas ainda nao validou os dados
validacao();
}

em $_GET['opcao'] , nao podes usar aspas, mas sim apostrofes. Ficaria:

if ($_GET['opcao'] == "") { //se ainda nao fez o login
login();
} elseif ($_GET['opcao'] == "validacao") {  //se ja fez o login, mas ainda nao validou os dados
validacao();
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ou podes usar isto também:

<?php

$i = $_GET['opcao'];

switch ($i) {
   case 'validacao':
       validacao();
       break;
   default:
       login();
}
?> 

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Karva a tua primeira opcao nao dá... :S

<?php

$i = $_GET['opcao'];

switch ($i) {
   case 'validacao':
       validacao();
       break;
   default:
       login();
}
?>

Podes-me explicar o k isto faz??

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Fogo a segunda opcao tb nao dá :S

agr envio tb o tal form do ficheiro login.htm

<html>
	<head>
	<title>|Xpac|cms - Login </title>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><style type="text/css">
	<!--
	body {
		background-color: #07577C;
		margin-left: 5px;
		margin-top: 5px;
		margin-right: 5px;
		margin-bottom: 5px;
	}
	.style4 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 9px; font-weight: bold; }
	.style5 {font-size: 9px; font-family: Verdana, Arial, Helvetica, sans-serif;}
	-->
	</style></head>

	<body>
	<form action="index.php?opcao=validacao" method="POST" >
	  <table border="0" align="center" width="190" cellpadding="3" cellspacing="0">
	  <tr>
		<td background="images/fundo.jpg"><div align="left"><img src="images/xpac_logo_peq.jpg"></div></td>
	  </tr>
	  <tr>
		<td bgcolor="#CCCCCC"><div align="left" class="style4"> Nome de Utilizador </div></td>
	  </tr>
	  <tr>
		<td align="center" bgcolor="#CCCCCC"><input type="text" value="" name="username" size="25" ></td>
	  </tr>
	  <tr>
		<td bgcolor="#CCCCCC"><div align="left" class="style4"> Palavra-passe</div></td>
	  </tr>
	  <tr>
		<td align="center" bgcolor="#CCCCCC"><input name="password" type="password" value="" size="25" ></td>
	  </tr>
	  <tr>
		<td align="left" bgcolor="#CCCCCC"> <input name="validar" type="submit" value="Login" ></td>
	  </tr>
	  </table>
	</form>
	<p align="center" class="style5">powered by rr-arts.com | 2006 </p>
	<p> </p>
	</body>
	</html>

e envio tb o code do ficheiro configuracao.php

<?

//nome do servidor
$localhost = 'localhost';

//username para entrar na database
$username = 'rr_root';

//password para entrar na database
$password= '';

//nome da base de dados
$db_name = 'rr_xpac';

//ligação á DataBase
$link = mysql_connect($localhost,$username,$password);

//Seleciona DataBase
$db = mysql_select_db($db_name,$link);

?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

AHHHHHHHH

tens que executar a ligacao a base de dados, no ficheiro onde vais fazer a query, ai deve tar o erro...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Fogo a segunda opcao tb nao dá :S

entao tenta assim:

<?php

$i = $_GET['opcao'];

switch ($i) {
   case validacao: // tirei aqui
       validacao();
       break;
   default:
       login();
}
?>

e a mesma coisa, mas sem o aspostrofes

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora