Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #59 da revista programar. Faz já o download aqui!

Slaxer13

Download não resulta

Mensagens Recomendadas

Slaxer13    0
Slaxer13

Boas pessoal, sou novo em dreamweaver e PHP e isto ta a meter nervos já ;)

Alguém sabe como resolver este problema? Quando tento fazer download ele diz me que nenhum id foi passado...

<?php
// Make sure an ID was passed
if(isset($_GET['id'])) {
 // Get the ID$id
 $file_name= ($_GET['id']);
 // Make sure the ID is in fact a valid ID
if($file_name == NULL) {
 die('The name is invalid!');
}
else {
 // Connect to the database
 $dbLink = new mysqli('localhost', 'root', "mysql", 'dbtuts');
 if(mysqli_connect_errno()) {
	 die("MySQL connection failed: ".mysqli_connect_error());
 }
	 // Fetch the file information
 $query = "
	 SELECT `file`, `type`, `size`
	 FROM `tbl_uploads`
	 WHERE `file` = {$file}";
 $result = $dbLink->query($query);
 if($result) {
	 // Make sure the result is valid
	 if($result->num_rows == 1) {
	 // Get the row
		 $row = mysqli_fetch_assoc($result);
		 header("Content-Type: ".$row['type']);
		 header("Content-Length: ".$row['size']);
		 header("Content-Disposition: attachment");
		 // disopsition = attachment to force download request
		 // Print data
		 echo $row['file'];
	 }
	 else {
		 echo 'Error! No file exists with that ID.';
	 }
	 // Free the mysqli resources
	 @mysqli_free_result($result);
 }
 else {
	 // if there is an error excuting the query
	 echo "Error! Query failed: <pre>{$dbLink->error}</pre>";
 }
 // close database connection
 @mysqli_close($dbLink);
}
}
else {
// if no ID passed
echo 'Error! No ID was passed.';
}
?>

Qualquer outra info necessária basta dizerem.

Cumps,

Slaxer13

Editado por apocsantos
geshi

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Knot    6
Knot

Poderás ter vários erros, mas saltou-me logo um à vista na consulta:

WHERE `file` = {$file}

Tu não tens nenhuma varável $file definida anteriormente, tens é $file_name.

E verifica se no form em que envias o ID estás a utilizar POST ou GET.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
HappyHippyHippo    1140
HappyHippyHippo

além do que te foi dito, uma string em SQL é obrigatório ser ladeada dos dois lados pelo caracter apóstrofe (')


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Slaxer13    0
Slaxer13

Retirei os @ e troquei o $file_name por $id. Espreitei na outra for e está como GET

Erro:

Error! Query failed:

Você tem um erro de sintaxe no seu SQL próximo a ''tbl_uploads'

WHERE 'id' = {$row[' na linha 2

<?php
// Make sure an ID was passed
if(isset($_GET['id'])) {
// Get the ID$id
$id = ($_GET['id']);
// Make sure the ID is in fact a valid ID
if($id == NULL) {
die('The name is invalid!');
}
else {
// Connect to the database
$dbLink = new mysqli('localhost', 'root', 'mysql', 'dbtuts');
if(mysqli_connect_errno()) {
 die("MySQL connection failed: ".mysqli_connect_error());
}
 // Fetch the file information
$query = "
 SELECT 'id', 'file', 'type', 'size'
 FROM 'tbl_uploads'
 WHERE 'id' = {$id}";
$result = $dbLink->query($query);

if($result) {
 // Make sure the result is valid
 if($result->num_rows == 1) {
 // Get the row
 $row = mysqli_fetch_assoc($result);

 header("Content-Type: ".$row['type']);
 header("Content-Length: ".$row['size']);
 header("Content-Disposition: attachment");
 // disopsition = attachment to force download request
 // Print data
 echo $row['file'];
 }
 else {
 echo 'Error! No file exists with that ID.';
 }
 // Free the mysqli resources
 mysqli_free_result($result);
}
else {
 // if there is an error excuting the query
 echo "Error! Query failed: <pre>{$dbLink->error}</pre>";
}
// close database connection
mysqli_close($dbLink);
}
}
else {
// if no ID passed
echo 'Error! No ID was passed.';
}
?>

Este código já está atualizado

Editado por apocsantos
geshi

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
HappyHippyHippo    1140
HappyHippyHippo

além do que te foi dito, uma string em SQL é obrigatório ser ladeada dos dois lados pelo caracter apóstrofe (')

eu falei em strings, e vais tu trocar os acentos graves em nomes das colunas ....


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
HappyHippyHippo    1140
HappyHippyHippo

O meu conhecimento disto e quase zero. Voltei a por como estava. Onde dizes que preciso mudar?

em vez de ser eu a responder a essa pergunta vais ser tu a fazer-lo.

para isso basta : diz qual o rsultado final da string guardara na variável $query.


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
HappyHippyHippo    1140
HappyHippyHippo

O id do ficheiro que quero fazer download?

não ... tenta novamente, mas agora antes de responder, lê a pergunta:

diz qual o resultado final da string guardada na variável $query.


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
HappyHippyHippo    1140
HappyHippyHippo

ok ... vamos ver se assim consegues dar uma resposta com pés e cabeça:

depois de seguinte código:

$query = "
    SELECT `file`, `type`, `size`
      FROM `tbl_uploads`
     WHERE `file` = {$file}";

o que se encontra guardado na variável $query ?

(nota : a pergunta continua a ser a mesma ...)


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Slaxer13    0
Slaxer13

Verifica o File Type Size de todos os ficheiros na tabela tbl_uploads e guarda na variavel $query todos os que tiverem o campo file igual ao conteúdo da variavel $file

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
HappyHippyHippo    1140
HappyHippyHippo

peço alguem no fórum que tenha uma maior capacidade de expressão para tornar a minha pergunta mais directa e claram, por favor.

porque por mais que tente, não estou a ver como posso a tornar mais directa e simples.

---------------

vor tentar só mais uma coisa:

depois do seguinte código (que não tem nada haver como o teu problema):

$variavel = 3;

o que se encontra guardado na variável $variavel ?

Editado por HappyHippyHippo

IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
HappyHippyHippo    1140
HappyHippyHippo

agora responde a esta:

depois do seguinte código (que não tem nada haver como o teu problema):

$texto = "cenouras"
$variavel = "batatas com {$text}";

o que se encontra guardado na variável $variavel ?


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
HappyHippyHippo    1140
HappyHippyHippo

agora, responde à pergunta que estou a fazer desde o início :

depois de seguinte código:

$query = "
   SELECT `file`, `type`, `size`
     FROM `tbl_uploads`
    WHERE `file` = {$file}";

o que se encontra guardado na variável $query ?


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
HappyHippyHippo    1140
HappyHippyHippo

peço alguem no fórum que tenha uma maior capacidade de expressão para tornar a minha pergunta mais directa e claram, por favor.

porque por mais que tente, não estou a ver como posso a tornar mais directa e simples.


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Knot    6
Knot

A variável $query não é o resultado, é digamos que o "texto" que tu vais usar para fazer a consulta à base de dados. Precisas de verificar se esse "texto" de consulta está correto, penso que seja isso que o HappyHippyHippo te está a tentar dizer. Até podes correr esse "texto" diretamente no phpmyadmin se tiveres acesso como consulta sql e logo vês se são retornados valores ou não.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
dpantunes    0
dpantunes

Boas tardes, tenho um problema num código php/mysql.

O objetivo é que o script mostre a ultima imagem que uploadad.

Este é o Script:

<html>
<body>
<?php
include("mysqlconnect.php");

$select_query = "SELECT images_path FROM images_tbl ORDER by images_id DESC";
//print "Query: ->".$select_query."<-";
//$results = mysqli_query($link, $query) or die(mysqli_error($link));
$sql=mysqli_query($conn,$select_query) or die(mysqli_error($conn));
//print "sql: ->".$sql."<-";
while($row = mysql_fetch_array($sql,MYSQL_BOTH)){
//$num= mysqli_num_rows($sql);
//print "Num registos: ->".$row."<-";

?>
<table style="border-collapse: collapse; font: 12px Tahoma;" border="1" cellspacing="5" cellpadding="5">
<tbody><tr>
<td>
<?php
echo "<img src='".$row['images_path']."' />";
?>
</td>
</tr>
</tbody></table>

<?php
}
?>
</body>
</html>

O erro que dá é Warning: mysql_fetch_array() expects parameter 1 to be resource, object given in C:\wamp\www\TestePap\index2.php on line 11

Aguardo ajuda, este script é para um site de adocao de animais tipo OLX.

Obrigado


Editado por apocsantos
geshi

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


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.