Ir para o conteúdo
looord

PHP e SQL

Mensagens Recomendadas

looord

Boa noite,

Eu e um colega estamos com dificuldades num trabalho. Estamos a usar o Xamp para fazer um trabalho sobre uma associaçao de caça, ele começou por fazer uma base de dados usando Sql e foi fazendo algumas das funcionalidades em php.

o problema surgiu, quando ele exportou os ficheiros e a base de dados, eu não consigo , por exemplo listar os dados de uma tabela da base de dados no php , a tabela aparece vazia, como se não acedesse à base de dados. (penso que nao seja esse o problema visto que o login funciona).

Este é o codigo do ficheiro que não consigo utilizar

(o meu colega utiliza um mac, eu uso windows)

<?
ob_start();
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!--
Design by TEMPLATED
http://templated.co
Released for free under the Creative Commons Attribution License
Name	 : Skeleton
Description: A two-column, fixed-width design with dark color scheme.
Version : 1.0
Released : 20130902
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<link href="http://fonts.googleapis.com/css?family=Source+Sans+Pro:200,300,400,600,700,900" rel="stylesheet" />
<link href="default.css" rel="stylesheet" type="text/css" media="all" />
<link href="fonts.css" rel="stylesheet" type="text/css" media="all" />
<link href="default_ie6.css" rel="stylesheet" type="text/css" />
</head>
<body>


<div id="page" class="container">
<div id="header">
<div id="logo">
<img src="images/logo_ass.png" alt="" />
<h1><a href="#">AC</a></h1>
<span>Associação de Caça</span>
</div>
<!--MENU-->
<div id="menu">
<ul>
			 <li><a href="inscrever_evento_cacador.html" accesskey="1" title="">Inscrever em evento</a></li>
 <li><a href="cacador.php" accesskey="2" title="">Voltar</a></li>
			 <li><a href="logout.php" accesskey="3" title="">Logout</a></li>
</ul>
</div>
</div>

<!--imagem principal-->
<div id="main">
<div id="banner">
<img src="images/banner.jpg" alt="" class="image-full" />
</div>

<?php

include("basedados.h");

$query = "select * From evento order by id_evento";
$resultado = mysqli_query($ligacao,$query);
$informacao = mysqli_fetch_array($resultado);
?>
<table border="2">
<tr>
<td>
id_evento
</td>
<td>
tipo_evento
</td>
<td>
preco
</td>
<td>
data
</td>
<td>
portas
</td>
<td>
localizacao
</td>
</tr>
<?
while( $informacao = mysqli_fetch_array($resultado) ){
$id_evento = $informacao["id_evento"];
$tipo_evento = $informacao["tipo_evento"];
$preco = $informacao["preco"];
$data = $informacao["data"];
$portas = $informacao["portas"];
$localizacao = $informacao["localizacao"];
?>
<tr>
<td>
<?echo("$id_evento");?>
</td>
<td>
<?echo("$tipo_evento");?>
</td>
<td>
<?echo("$preco");?>
</td>
<td>
<?echo("$data");?>
</td>
<td>
<?echo("$portas");?>
</td>
<td>
<?echo("$localizacao");?>
</td>
</tr>
<?
}
?>
</table>
<br>
</table><br/>

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
tiago.f

Olá,

quantos registos tem a tabela? Se só tiver 1 então não vais ver nada porque tens

$informacao = mysqli_fetch_array($resultado);
[...]
while( $informacao = mysqli_fetch_array($resultado) ){
$id_evento = $informacao["id_evento"];
[...]

O que faz com que o 1º registo seja ignorado (não fazes nada com ele).

ps: já agora o ficheiro basedados.h é um ficheiro php certo? (e não um ficheiro header de C como a extensão sugere....)

Editado por tiago.f

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
looord

a tabela tens 2 registos (2 eventos sobre caça)

o ficheiro basedados.h é a conecao à base de dados:

<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$ligacao = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $ligacao ){
 die('Could not connect: ' . mysqli_error());
}
//Seleciona a base de dados
mysqli_select_db($ligacao, 'ac');
?>

O problema é que no mac do meu colega, o código funciona e no meu computador não.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
tiago.f

Deves também usar mysql_fetch_assoc em vez de mysql_fetch_array, se queres usar:

$id_evento = $informacao["id_evento"];

em vez de

$id_evento = $informacao[0];

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
looord

Já consegui resolver o problema, agora precisava criar uma combo box com dados do sql, mas por algum motivo, a combo box aparece vazia:

$query = "select U.nome, from utilizador U where U.tipo_utilizador != 1";
$resultado=mysqli_query($ligacao,$query);
echo '<select name=”nome”>';

//para todas as linhas da tabela
while($row = mysqli_fetch_array($resultado))
{
echo '<option value="' .$row['nome'].  '</option>';
}
echo '</select>';

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
tiago.f

E qual era o problema?

Quanto à combobox :

- FETCH_ASSOC

- estas a gerar HTML inválido com esse echo dos <option>

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
looord

ja tenho a combo box a funcionar, mas agora precisava de selecionar o valor da combox e apagar na base de dados :

<?php 
ob_start();
session_start();
require("basedados.h");

$query = "select * From utilizador";
echo "<table border='1'>
 <tr>
 <th>n_socio</th>
 <th>username</th>
 <th>nome</th>
 <th>password</th>
 <th>tipo_utilizador</th>
 <th>morada</th>
 <th>telemovel</th>
 <th>email</th>
 <th>n_cidadao</th>
 <th>n_cacador</th>
 </tr>";
$resultado = mysqli_query($ligacao,$query);
while($row = mysqli_fetch_array($resultado)){// vai buscar ha base de dados os dados nela guardada e poem os na tabela
 //echo "<tr><td>".$row['img_capa']."</td>";
			    //IMAGENS SINCRONIZAÇÂO!!!!!!!!!!!!!!!
 echo "<td>".$row['n_socio']."</td>";
 echo "<td>".$row['username']."</td>";
 echo "<td>".$row['nome']."</td>";
 echo "<td>".$row['password']."</td>";
 echo "<td>".$row['tipo_utilizador']."</td>";
 echo "<td>".$row['morada']."</td>";
 echo "<td>".$row['telemovel']."</td>";
 echo "<td>".$row['email']."</td>";
 echo "<td>".$row['n_cidadao']."</td>";
 echo "<td>".$row['n_cacador']."</td>";
 echo "</tr>";
}
echo "</table>";
?>  


<html>  
 <form action="presidente_apaga_utilizadores.php" method="post">
   Selecione o ID a apagar:
 <select name="id">
  <option value=""></option>
 </form>
   <?php
    require("basedados.h");
    $sql="SELECT nome FROM utilizador where tipo_utilizador !=1";
    $result = mysqli_query($ligacao, $sql);
    while($row = mysqli_fetch_array($result)){
	 $nome = $row["nome"];;
	 echo '<option value="' . $nome .'">' . $nome . '</option>';
    }
   ?>

 </select>
   <input type="submit" value="Submit"><br>

  <?php

  if ($submit) {
   require("basedados.h");
   $sql = "DELETE FROM username WHERE username = $submit";
   $resultado = mysql_query($sql);
   echo " Registo Apagado!<p>";
  }
   ?>
</html>

Vou explicar melhor: o que eu queria era que quando o utilizador seleciona-se um dos nomes que são apresentados na combobox e clica-se no botão submit, na base de dados fosse eliminado o utilizador.

Partilhar esta mensagem


Ligação 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.