webForumDet fria alternativet

enkelt script för att skriva ut händelse

PHPur PHP

36 svar · 1 107 visningar · startad av richardjoha

Medlem sedan okt. 2005787 inlägg
Frågan#1

Jag har tänkt att göra ett enkelt skript som skriver ut en händelse exempelvis en match så det som jag vill ska skrivas ut är: Lag1 - Lag2 datum plats klockslag.

låter kanske väldigt simpelt för de flesta men skulle behöva lite tips på hur jag ska gå tillväga. Är nybörjare inom PHP och vet inte riktigt hur jag ska börja :)

mvh Richard

Medlem sedan juni 20006 032 inlägg
#2

Ska händelserna finnas lagrade i en databas?
Om du har flera händelser, vad avgör vilken/vilka som ska visas?

Medlem sedan okt. 2005787 inlägg
#3

Pedda skrev:

Ska händelserna finnas lagrade i en databas?

Händelserna ska lagras i en databas med unikt id på så man kan ändra/ta bort

Pedda skrev:

Om du har flera händelser, vad avgör vilken/vilka som ska visas?

Den händelsen närmast dagens datum ska visas..

Medlem sedan juni 20006 032 inlägg
#4

Vet inte hur långt du har kommit med ditt skript, men för att hämta nästa händelse

SELECT * FROM tabellen WHERE datum > now() LIMIT 1

borde fungera beroende på i vilket format du lagrar datumen i databasen.

Medlem sedan okt. 2005787 inlägg
#5

Här kommer ett förslag på hur jag tror det kan se ut.

verkar det stämma?

SELECT * FROM kommandematcher WHERE datum > now() LIMIT 1
   $result = mysql_query($sql) or die (mysql_error()); 
 
   while ($row = mysql_fetch_assoc($result)) {
      

     /* Utskrift av match */ 
       
      echo "<table width=\"523\" cellspacing='0' cellpadding='0' border='0'>"; 
      echo "<tr>"; 
     echo "<td>".$row["plats"]." | ".$row["datumotid"]."</td>"; 
      echo "</tr>"; 
      echo "<tr>"; 
      echo "<td>".$row["lag1"]." vs. ".$row["lag2"]."</td>"; 
      echo "</tr>"; 
      echo "</table>"; 
      echo "<br>";
   
   }
Medlem sedan juni 20006 032 inlägg
#6

Skapa en databas med de fält du vill ha. Datum bör du ha i formatet datetime.
datum datetime DEFAULT '0000-00-00 00:00:00'
Sen är det bara att du lägger till en post och testar.
Får du problem så är det bara att posta det här så ska nog någon kunna hjälpa dig. :)

Medlem sedan okt. 2005787 inlägg
#7

Halloj.. har stött på lite problem..
får felmedelandet couldent select table.. jag har kollat stavning mm flera gånger
men förstår inte vad det kan bero på.

här är filerna.

http://member.webforum.nu/9464/kommandematch.txt
http://member.webforum.nu/9464/admin.txt
http://member.webforum.nu/9464/conn.txt

tabellstrukturen ser ut enligt följande.

-- phpMyAdmin SQL Dump
-- version 2.6.3-pl1
-- http://www.phpmyadmin.net
-- 
-- Värd: localhost
-- Skapad: 11 december 2005 kl 19:51
-- Serverversion: 4.1.14
-- PHP-version: 5.0.4
-- 
-- Databas: `kommande`
-- 

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

-- 
-- Struktur för tabell `match`
-- 

CREATE TABLE `match` (
  `id` int(11) NOT NULL auto_increment,
  `hemma` varchar(50) NOT NULL default '',
  `borta` varchar(50) NOT NULL default '',
  `plats` varchar(50) NOT NULL default '',
  `datum` varchar(6) NOT NULL default '',
  `tid` varchar(4) NOT NULL default '',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

-- 
-- Data i tabell `match`
--
Medlem sedan aug. 20002 975 inlägg
#8

Du inkluderar aldrig conn.php i kommandematch.php.

Var någonstans får du felmeddelandet ?

Medlem sedan okt. 2005787 inlägg
#9

matcherna ska även skrivas ut innan man loggar in så felmedelandet får jag när jag kör admin.php...

när jag kör kommandematch.php syns inget alls.

Medlem sedan aug. 20002 975 inlägg
#10

Ändra

$result = mysql_query($sql) or die ("Couldn't select table");

till

$result = mysql_query($sql) or die (mysql_error());

Vad får du nu för felmeddelande ?

Sedan lagrar du ditt datum i en VARCHAR(6) och försöker i din SQL-fråga jämföra detta med NOW() som ger formatet YYYY-MM-DD HH:MM:SS.
Vore det inte lämpligare att spara datumet i formatet DATE och göra din jämförelse mot CURDATE() ?

Medlem sedan okt. 2005787 inlägg
#11

Felmedelande:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'match WHERE datum > now() LIMIT 1' at line 1

Matte skrev:

Sedan lagrar du ditt datum i en VARCHAR(6) och försöker i din SQL-fråga jämföra detta med NOW() som ger formatet YYYY-MM-DD HH:MM:SS.
Vore det inte lämpligare att spara datumet i formatet DATE och göra din jämförelse mot CURDATE() ?

Har relativt färsk inom php och har precis kommit igång.
Men av felmedelandet att dömma är det som du trodde, jag ska testa att ända från VARCHAR(6) till DATE men är osäker på hur jag gör med CURDATE().

Medlem sedan juni 20006 032 inlägg
#12

Byt now() mot CURDATE() efter att du har ändrat databasen.

Medlem sedan okt. 2005787 inlägg
#13

Felmedelande:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'match WHERE datum > CURDATE() LIMIT 1' at line 1

När det gäller DATE så skriver man väl inte in någon läng va?

Medlem sedan aug. 20002 975 inlägg
#14

richardjoha skrev:

Felmedelande:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'match WHERE datum > now() LIMIT 1' at line 1

http://dev.mysql.com/doc/refman/5.0/en/reserved-words.html

MATCH är ett reserverat ord. Byt namn på tabellen, eller omge tabellnamnet i SQL-frågan med "backticks" typ `match`.

Medlem sedan aug. 20002 975 inlägg
#15

richardjoha skrev:

När det gäller DATE så skriver man väl inte in någon läng va?

Hur menar du ?
När du skriver till tabellen lägger du in ett datum med formatet YYYY-MM-DD.
Du kan i SQL-frågan istället för 'YYYY-MM-DD' använda dig av CURDATE() när du vill ha dagens datum.

Medlem sedan okt. 2005787 inlägg
#16

Matte skrev:

Hur menar du ?
När du skriver till tabellen lägger du in ett datum med formatet YYYY-MM-DD.
Du kan i SQL-frågan istället för 'YYYY-MM-DD' använda dig av CURDATE() när du vill ha dagens datum.

Tänkte lite fel ang. längd.

Får ett felmedelande när jag kör admin.php nu..

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'match VALUES ('','', '', '', '', '', CURDATE())' at line 1

vad är det som gör att CURDATE inte fungerar som det ska

http://member.webforum.nu/9464/admin.txt?

Medlem sedan aug. 20002 975 inlägg
#17

Du har fortfarande problemet att MATCH är ett reserverat ord.

Medlem sedan okt. 2005787 inlägg
#18

det kan itne vara problemet eftersom jag bytte namn i tabellen från "match" till "kommande"..

Medlem sedan aug. 20002 975 inlägg
#19

Det är den SQL-frågan som körs.

Har du ändrat din variabel $dbtable också ?

Medlem sedan okt. 2005787 inlägg
#20

never mind, jag hade glömt ändra till kommande i conn.php

146 ms totalt · 3 externa anrop · v20260731065814-full.55e59744
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
142 ms — hämta tråd, inlägg och bilagor (db)