Har precis börjat komma igång med php och skulle testa ett nyhetsscript som jag hittade här följde anvisningarna och sparade allt i localhost men när jag skulle köra scriptet fick jag ett fel medelande: "Couldn't select table" och jag antar att denna kodsnutt
CREATE TABLE `tabell` (
`id` INT( 11 ) NOT NULL AUTO_INCREMENT ,
`writer` VARCHAR( 50 ) NOT NULL ,
`title` VARCHAR( 50 ) NOT NULL ,
`text` TEXT NOT NULL ,
`date` DATETIME NOT NULL ,
PRIMARY KEY ( `id` )
);
Verkar som att kontot du loggade in med inte har rättigheter att skapa databaser.
Har du skapat nytt konto eller använde du uppgifterna i read_me filen?
Kolla på koden som du använde när du skapade tabellen. Den börjar med:
CREATE TABLE `tabell` (
Alltså heter tabellen i ditt fall tabell om du inte döpte om den.
Mitt förslag är att du döper tabellerna till något vettigt, i det här fallet t.ex nyheter eftersom det är ett nyhetsskript.
Antingen ändrar du värdet på din variabel till tabell, alltså:
$dbtable = "tabell"; # Nyhets tabellen
eller loggar in i phpMyAdmin och döper om tabellen du har skapat.
Antal fält i databasen beror på vad du vill spara för uppgifter. Men id, rubrik och nyhetstext kanske kan vara något. ID = mediumint auto_increment primary key. RUBRIK = char(30). NYHETSTEXT = longtext.
Det vet man bara Annars lär man sig det efter hand... Auto_increment gör att id i detta fall alltid adderas med 1 när en ny rad läggs till i databasen. Mediumint behöver man inte använda. Kan lika gärna använda int. Primary key är den primära posten i tabellen, eller hur man nu ska förklara. Longtext är obegränsat med tecken. Char är ju för att man ska kunna skriva olika tecken i fältet och 30 för att man inte kan skriva in mer än 30 tecken. Vill du ha längre rubriker än 30 tecken får du ju ändra det...
<?php
/*
Admin för News v 1.1
Skapat den 24/8 2005 kl 19:56 av Andreas Falck
raider [at] theriddle [dot] net
Hjälp och idéer har tagits ifrån @nders skript @news v1.0 på
adressen http://www.phpportalen.net/viewtopic.php?t18405&highlight=
Ett tack även till folket på #php.se @ freenode som hjälpt
mig när jag har kört fast och missat olika saker Wink
Att göra: Fixa ett system för visning av flera sidor
Inloggningssystem med stöd för flera användare
*/
session_start();
# Variabler
$page_title = "Admin för News v 1.1";
$self = $_SERVER['PHP_SELF'];
$pass = "pass"; # Lösenordet för att logga in
# Inkludera filen conn.php
require("conn.php");
/* Inloggningen */
/* Logga in */
if (isset($_POST['login'])){
if ($_POST['pass']==$pass){
$_SESSION['online'] = "online";
header("Location: $self");
exit;
}
else{
echo "<script language='Javascript'>";
echo "alert('Fel lösenord!');";
echo "</script>";
}
}
/* Logga ut */
elseif (isset($_GET['logout']) && isset($_SESSION['online'])){
unset($_SESSION['online']);
session_destroy();
header("Location: $self");
exit;
}
/* Slut inloggning */
/* MySQL */
/* Radera nyheter */
elseif (isset($_GET['delete']) && isset($_SESSION['online'])){
$sql = "DELETE FROM $dbtable WHERE id={$_GET['delete']}";
mysql_query($sql);
header("Location: $self");
exit;
}
/* Skriv in nya nyheter */
elseif (isset($_POST['send']) && isset($_SESSION['online'])){
$sql = "INSERT INTO $dbtable VALUES ('','".$_POST['writer']."', '".$_POST['title']."', '".$_POST['text']."', now())";
mysql_query($sql) or die ("ERROR");
header("Location: $self");
exit;
}
/* Spara ändringen av nyheter */
elseif (isset($_POST['saveedit']) && isset($_SESSION['online'])){
$sql = "UPDATE $dbtable SET writer='".$_POST['writer']."', title='".$_POST['title']."', text='".$_POST['text']."' WHERE id={$_GET['id']}";
mysql_query($sql) or die ("ERROR");
header("Location: $self");
exit;
}
/* Slut MySQL */
# Sidans titel och CSS fil
echo "<title>$page_title</title>";
/* Länkarna */
if (isset($_SESSION['online'])){
echo "<table width=\"100%\" cellspacing=\"0\" border=\"0\">";
echo "<tr>";
echo "<td><a href=\"$self?write=\">Lägg till en nyhet</a> <a href=\"$self?logout=\">Logga ut</a>";
echo "</tr>";
echo "</table>";
}
else{
echo "<table width=\"100%\" cellspacing=\"0\" border=\"0\">";
echo "<tr>";
echo "<td><a href=\"$self?login=\">Logga in</a>";
echo "</tr>";
echo "</table>";
}
echo "<hr>";
/* Slut Länkarna */
/* Tabeller */
/* Inloggningsformulär */
if (isset($_GET['login'])){
echo "<form action='$self' method='post'>";
echo "<TABLE border='0' cellpadding='4'>";
echo "<TR>";
echo "<TD><big>Logga in</big></TD>";
echo "</TR>";
echo "<TR>";
echo "<TD><input type='password' name='pass'></TD>";
echo "</TR>";
echo "<TR>";
echo "<TD><input type='submit' name='login' value='Logga in'></TD>";
echo "</TR>";
echo "</TABLE>";
echo "</form>";
}
/* Tabell för att skriva in nyheterna */
elseif (isset($_GET['write']) && isset($_SESSION['online'])){
echo "<form action=\"$self\" method=\"post\">";
echo "<table width=\"100%\" cellspacing=\"0\" border=\"0\">";
echo "<tr>";
echo "<td>Skriv in nyheten:</td>";
echo "</tr>";
echo "<tr>";
echo "<td>Namn:</td>";
echo "</tr>";
echo "<tr>";
echo "<td><input type=\"text\" name=\"writer\"></td>";
echo "</tr>";
echo "<tr>";
echo "<td>Rubrik:</td>";
echo "</tr>";
echo "<tr>";
echo "<td><input type=\"text\" name=\"title\"></td>";
echo "</tr>";
echo "<tr>";
echo "<td>Nyhet:</td>";
echo "</tr>";
echo "<tr>";
echo "<td><textarea name=\"text\" rows=\"7\" cols=\"70\"></textarea></td>";
echo "</tr>";
echo "<tr>";
echo "<td><input type=\"submit\" name=\"send\" value=\"Skicka\"> <input type=\"reset\" value=\"Rensa\"></td>";
echo "</tr>";
echo "</table>";
echo "</form>";
}
/* Ändra nyhet */
elseif (isset($_GET['edit']) && isset($_SESSION['online'])){
$sql = "SELECT * FROM $dbtable WHERE id={$_GET['edit']}";
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);
$writer = $row['writer'];
$title = $row['title'];
$text = $row['text'];
echo "<form action=\"$self?id={$_GET['edit']}\" method=\"post\">";
echo "<table width=\"100%\" cellspacing=\"0\" border=\"0\">";
echo "<tr>";
echo "<td>Ändra vald nyhet:</td>";
echo "</tr>";
echo "<tr>";
echo "<td>Nyhetens författare:</td>";
echo "</tr>";
echo "<tr>";
echo "<td><input type=\"text\" name=\"writer\" value=\"$writer\"></td>";
echo "</tr>";
echo "<tr>";
echo "<td>Nyhetens rubrik:</td>";
echo "</tr>";
echo "<tr>";
echo "<td><input type=\"text\" name=\"title\" value=\"$title\"></td>";
echo "</tr>";
echo "<tr>";
echo "<td>Nyhetens text:</td>";
echo "</tr>";
echo "<tr>";
echo "<td><textarea name=\"text\" rows=\"7\" cols=\"70\">$text</textarea></td>";
echo "</tr>";
echo "<tr>";
echo "<td><input type=\"submit\" name=\"saveedit\" value=\"Skicka\"> <input type=\"reset\" value=\"Rensa\"></td>";
echo "</tr>";
echo "</table>";
echo "</form>";
}
/* Visa nyheterna */
else{
$sql = "SELECT * FROM $dbtable ORDER BY date DESC";
$result = mysql_query($sql) or die ("Couldn't select table");
while ($row = mysql_fetch_assoc($result)) {
echo "<table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\">";
echo "<tr>";
echo "<td style=\"border-bottom: 1px solid gray;\">".$row["title"]."</td>";
echo "</tr>";
echo "<tr>";
echo "<td>".$row["writer"]." ".$row["date"]."</td>";
echo "</tr>";
echo "<tr>";
echo "<td>".nl2br($row['text'])."</td>";
echo "</tr>";
if (isset($_SESSION['online'])){
echo "<tr>";
echo "<td><a href=\"$self?delete={$row['id']}\">Radera</a> | <a href=\"$self?edit={$row['id']}\">Ändra</a></td>";
echo "</tr>";
}
echo "</table>";
echo "<br>";
}
/* Slut Tabeller */
mysql_free_result($result);
}
/* Slut */
?>
news.php
<?php
/*
News v 1.0
Skapat den 24/3 2004 klockan 18:00 av Andreas Falck
raider [at] theriddle [dot] net
Hjälp och idéer har tagit ifrån @nders skript @news v1.0 på
adressen http://www.phpportalen.net/viewtopic.php?t=18405&highlight=
Ett tack även till folket på #php.se @ freenode som hjälpt
mig när jag har kört fast och missat olika saker
Att göra: Fixa ett system för visning av flera sidor
*/
# Variabler
$page_title = "News v 1.0";
$css = "style.css";
# Inkludera filen conn.php
require("conn.php");
# Sidans titel samt stilmall
echo "<title>$page_title</title>";
#echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"$css\">";
/* Visa nyheterna */
$sql = "SELECT * FROM $dbtable ORDER BY datum DESC limit 0, 10";
$result = mysql_query($sql) or die ("Couldn't select table");
while ($row = mysql_fetch_assoc($result)) {
/* Utskrift av nyheterna */
echo "<table width=\"100%\" cellspacing='0' cellpadding='0' border='0'>";
echo "<tr>";
echo "<td style=\"border-bottom: 1px solid gray;\">".$row["rubrik"]."</td>";
echo "</tr>";
echo "<tr>";
echo "<td>"."Inskrivet av: ".$row["namn"]." "."Datum: ".$row["datum"]."</td>";
echo "</tr>";
echo "<tr>";
echo "<td>".nl2br($row["nyhet"])."</td>";
echo "</tr>";
echo "</table>";
echo "<br>";
}
/* Slut */
mysql_free_result($result);
?>
conn.php
<?php
$server = "localhost"; # MySQL servern
$dbuser = "root"; # MySQL användaren
$dbpass = "*******"; # MySQL lösenord
$dbname = "nyheter"; # Databasens namn
$dbtable = "nyheter"; # Nyhets tabellen
/* Anslut till MySQL databasen */
mysql_connect($server, $dbuser, $dbpass);
mysql_select_db($dbname);
?>