← PHP

a aprender mysql-php - erros vários

Lida 12485 vezes

Offline

frsantos 
Membro
Mensagens 1458 Gostos 0
Troféus totais: 35
Trófeus: (Ver todos)
Linux User Mobile User Apple User Level 6 Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter

boas estou a ter este erro com

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /dados/inicio.php on line 14

este código

Código: [Seleccione]
<?php
$ligação 
mysql_connect ("localhost""***""***") or die("problemas na ligação ao MySQL");
mysql_select_db("futebole_dados"$ligação);
$sql "select nome, logo, organizador from competicoes";
$resultado mysql_query(sql$ligação);
$registo mysql_fetch_row($resultado);
print (
"$registo[0] --- $registo[1] <br>");
mysql_close();
?>

alguém me diz em que errei sff?  :obrigado:
Offline

cjseven 
Administrador
Mensagens 1809 Gostos 26
Feedback +3

Troféus totais: 28
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 1000 Posts

Não te falta um $ em sql?

$resultado = mysql_query(sql, $ligação);
Offline

frsantos 
Membro
Mensagens 1458 Gostos 0
Troféus totais: 35
Trófeus: (Ver todos)
Linux User Mobile User Apple User Level 6 Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter

nem mais...

obrigado, quanto mais se olha menos se vê...
Offline

frsantos 
Membro
Mensagens 1458 Gostos 0
Troféus totais: 35
Trófeus: (Ver todos)
Linux User Mobile User Apple User Level 6 Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter

outro erro

Código: [Seleccione]
<?php
$ligação 
mysql_connect ("localhost""***""***") or die("problemas na ligação ao MySQL");
mysql_select_db("***"$ligação);
$sql "select jornada, casa, res-casa, fora, res-fora, data, hora, canal, video from liga";
$resultado mysql_query($sql$ligação);
$num_reg mysql_num_rows($resultado);
$num_campos mysql_num_fields ($resultado);
if (
$num_reg == 0) {
print ("Sem dados para mostrar");
}elseif(
$num_reg 0) {
print ("<table border=0 width=300 align=center bgcolor=\"#fff000\">");
print ("<td> <p colspan=5 align=center> Jornada $jornada </td><td><p align=center> Data </td><td><p align=center> Hora </td><td><p align=center> Canal </td><td><p align=center> Vídeo </td><tr>");
for ($linha 0;$linha $num_reg;$linha++){
$field mysql_field_name ($resultado$coluna);
$campo mysql_result($resultado$linha"$field");
print (" <td>&campo</td>");
}
print ("<tr>");
}
print (
"</table>");
mysql_free_result($resultado);
mysql_close();
?>

dá-me este erro

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource on line 14

Warning: mysql_num_fields(): supplied argument is not a valid MySQL result resource on line 15
Sem dados para mostrar
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource on line 29

 :obrigado:
Offline

frsantos 
Membro
Mensagens 1458 Gostos 0
Troféus totais: 35
Trófeus: (Ver todos)
Linux User Mobile User Apple User Level 6 Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter

talvez seja mais fácil dizer o que pretendo com o código

Queria através de db fazer uma tabela com os resultados de uma jornada de futebol.

criei a tabela na db com as colunas:
$jornada
$casa
$res-casa
$fora
$res-fora
$data
$hora
$canal
$video

é por aqui que tenho de ir?

Ou não é nada disto?
 :obrigado:
Offline

fhanity 
Membro
Mensagens 191 Gostos 5
Feedback +1

Troféus totais: 18
Trófeus: (Ver todos)
Apple User Apple User Super Combination Combination Topic Starter Level 3 Level 2 Level 1 100 Posts 50 Posts

le este tutorial, certamente vai-te tirar algumas duvidas
aconselhava-te a ler todo pois ensina o basico de ler e escrever em base de dados com php, mas a parte 3 e 4 consegues ver como é feito o que precisas.

http://www.freewebmasterhelp.com/tutorials/phpmysql/3
Offline

Bruno Gaspar 
Membro
Mensagens 242 Gostos 1
Feedback +3

Troféus totais: 18
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 3 Level 2 Level 1 100 Posts 50 Posts 10 Posts

O problema deve estar no nome destas colunas

res-casa e res-fora, tenta renomear para res_casa e res_fora, não tenho a certeza que é disso, mas à primeira vista só me chamou mesmo isso a atenção.
Offline

frsantos 
Membro
Mensagens 1458 Gostos 0
Troféus totais: 35
Trófeus: (Ver todos)
Linux User Mobile User Apple User Level 6 Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter

O problema deve estar no nome destas colunas

res-casa e res-fora, tenta renomear para res_casa e res_fora, não tenho a certeza que é disso, mas à primeira vista só me chamou mesmo isso a atenção.

nem mais, era mm isso

isto assim insere apenas uma linha...
como posso fazer com que insira todas as linhas em que $jornada = 1?
Offline

Bruno Gaspar 
Membro
Mensagens 242 Gostos 1
Feedback +3

Troféus totais: 18
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 3 Level 2 Level 1 100 Posts 50 Posts 10 Posts

nem mais, era mm isso

isto assim insere apenas uma linha...
como posso fazer com que insira todas as linhas em que $jornada = 1?


Como assim insere apenas uma linha ?

Se queres seleccionar todos os registos da jornada 1 tens de adicionar na query um WHERE
Código: [Seleccione]
"select jornada, casa, res_casa, fora, res_fora, data, hora, canal, video from liga WHERE `jornada`='1'"
Offline

frsantos 
Membro
Mensagens 1458 Gostos 0
Troféus totais: 35
Trófeus: (Ver todos)
Linux User Mobile User Apple User Level 6 Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter

já li o tutorial de php/mysql, mas não consigo exibir os dados guardado na db
par os exibir não basta isto?

Código: [Seleccione]
<?php
$ligação 
mysql_connect ("localhost""***""***") or die("problemas na ligação ao MySQL");
mysql_select_db("***"$ligação);
$sql "select jornada, casa, res_casa, fora, res_fora, data, hora, canal, video from liga WHERE `jornada`='1'";
$resultado mysql_query($sql$ligação);
$num_reg mysql_num_rows($resultado);
$num_campos mysql_num_fields ($resultado);
if (
$num_reg == 0) {
print ("Sem dados para mostrar");
}elseif(
$num_reg 0) {
print ("<table border=0 width=300 align=center bgcolor=\"#fff000\">");
print ("<td> <p colspan=5 align=center> Jornada $jornada </td><td><p align=center> Data </td><td><p align=center> Hora </td><td><p align=center> Canal </td><td><p align=center> Vídeo </td><tr>");
for ($linha 0;$linha $num_reg;$linha++){
$field mysql_field_name ($resultado$coluna);
$campo mysql_result($resultado$linha"$field");
print (" <tr><td>&casa</td>");
print (" <td>&res_casa</td>");
print (" <td>-</td>");
print (" <td>&res_fora</td>");
print (" <td>&fora</td>");
print (" <td>&data</td>");
print (" <td>&hora</td>");
print (" <td>&canal</td>");
print (" <td>&video</td></tr>");


}
print ("<tr>");
}
print (
"</table>");
mysql_free_result($resultado);
mysql_close();
?>
Offline

Bruno Gaspar 
Membro
Mensagens 242 Gostos 1
Feedback +3

Troféus totais: 18
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 3 Level 2 Level 1 100 Posts 50 Posts 10 Posts

Boas,

Os teus conhecimentos de PHP e HTML parecem ser bastante limitados, deverias de ler mais tutoriais sobre PHP e depois sobre PHP & MySQL

Assim deve de funcionar
Código: [Seleccione]
<?php

// Efectuar a conecção à base de dados.
$ligação mysql_connect ('127.0.0.1''root''') or die('Problemas na ligação ao MySQL');

// Selecionar a base de dados.
mysql_select_db('a_tua_base_de_dados'$ligação);

//
$resultado mysql_query("SELECT * FROM liga"$ligação);
$num_reg mysql_num_rows($resultado);
?>

<table border="0" width="300" align=center bgcolor="#fff000">
    <tr>
        <td>Jornada</td>
        <td>Data</td>
        <td>Hora</td>
        <td>Canal</td>
        <td>Video</td>
    </tr>
<?php
if ( $num_reg >= 1):
    while( 
$row mysql_fetch_array$resultado ) ):
?>

    <tr>
        <td><?php echo $row['jornada']; ?></td>
        <td><?php echo $row['data']; ?></td>
        <td><?php echo $row['hora']; ?></td>
        <td><?php echo $row['canal']; ?></td>
        <td><?php echo $row['video']; ?></td>
    </tr>
<?php
    
endwhile;
else:
?>

    <tr>
        <td colspan="5">Sem dados para mostrar</td>
    </tr>
<?php
endif;
?>

</table>
Offline

frsantos 
Membro
Mensagens 1458 Gostos 0
Troféus totais: 35
Trófeus: (Ver todos)
Linux User Mobile User Apple User Level 6 Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter

tens razão...

talvez ande a ler as coisas erras, pk o codigo que coloquei só alterei alguns parametros...

o codigo que me enviaste é muito mais simples de ler

 :obrigado:

já agora, como faço para que os acentos sejam bem apresentados, tenho de seleccionar na db collation  :?:utf8 :?:
Offline

Bruno Gaspar 
Membro
Mensagens 242 Gostos 1
Feedback +3

Troféus totais: 18
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 3 Level 2 Level 1 100 Posts 50 Posts 10 Posts

já agora, como faço para que os acentos sejam bem apresentados, tenho de seleccionar na db collation  :?:utf8 :?:
Eu geralmente coloco utf8_general_ci e funciona sem problemas.
Offline

filipetm 
Membro
Mensagens 31 Gostos 0
Troféus totais: 20
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 4 Level 3 Level 2 Level 1 10 Posts First Post

Eu geralmente coloco utf8_general_ci e funciona sem problemas.

E adicionalmente deves pôr isto dentro do <head> no html

<meta http-equiv="Content-type" content="text/html; charset=utf-8" />

e isto no PHP, logo no início do script.

header('Content-Type: text/html; charset=utf-8');

Assim tens a certeza que o teu encoding é utf-8 ;)
Offline

frsantos 
Membro
Mensagens 1458 Gostos 0
Troféus totais: 35
Trófeus: (Ver todos)
Linux User Mobile User Apple User Level 6 Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter

obrigado