---
title: "Hjälp med nyhetsscript!"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/137370-hjälp-med-nyhetsscript"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "richardjoha"
published: "2005-11-10T14:08:47.000Z"
updated: "2005-11-11T13:32:56.000Z"
replies: 32
views: 785
page: 1
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/137370-hjälp-med-nyhetsscript"
---

# Hjälp med nyhetsscript!

_Sida 1 av 2._

## #1 — richardjoha, 2005-11-10T14:08Z

Har precis börjat komma igång med php och skulle testa ett nyhetsscript som jag hittade [här](http://www.phpportalen.net/viewtopic.php?t=24931) 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` ) 
);
```

har något med det att göra.

hjälp tack! :)

Permalänk: https://www.webforum.nu/p/137370

## #2 — Pedda, 2005-11-10T16:25Z

Har du skapat en databas som du har lagt in tabellen i?

Permalänk: https://www.webforum.nu/p/1705034

## #3 — richardjoha, 2005-11-10T17:02Z

nej det har jag inte gjort.. hur gör jag det?

Permalänk: https://www.webforum.nu/p/1705051

## #4 — Pedda, 2005-11-10T17:32Z

Logga in på phpMyAdmin
<http://localhost/phpmyadmin/>

Fyll i valfritt namn på databasen du vill skapa och klicka på Skapa

Nu har du skapat en databas.

Klicka på fliken SQL och klistra in koden i det översta fältet och klicka på Kör.
Tabellen skapas nu i databasen.

Klart.

Permalänk: https://www.webforum.nu/p/1705064

## #5 — richardjoha, 2005-11-10T18:35Z

inga privilegier står det med röd text och skapa ny databas är inte klickbar.

hur ändrar man rättigheterna?

så här [här](http://www.oldoakdesign.se/wf/dump.jpg) ser det ut:

Permalänk: https://www.webforum.nu/p/1705081

## #6 — Pedda, 2005-11-10T18:43Z

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?

Permalänk: https://www.webforum.nu/p/1705084

## #7 — richardjoha, 2005-11-10T19:05Z

men va fan, installerade om det precis men nu kommer jag inte ens in på programmet.. vad kan det vara för default lösenord?! och användarnamn?

Permalänk: https://www.webforum.nu/p/1705097

## #8 — richardjoha, 2005-11-10T21:31Z

problem igen :)
så här ser filen conn.php ut.

```
<?php
 
   $server = "localhost";      # MySQL servern
   $dbuser = "root";      # MySQL användaren
   $dbpass = "ex1234";      # MySQL lösenord
   $dbname = "nyheter";       # Databasens namn
   $dbtable = "janne";      # Nyhets tabellen
 
/* Anslut till MySQL databasen */
mysql_connect($server, $dbuser, $dbpass);
mysql_select_db($dbname);
 
?>
```

 

Förstår att det är här inställningarna görs för anropen till mySQL serven.
jag har ändrat på $dbuser, $dbpass och $dbname men så kommer jag till:

```
$dbtable = "janne";      # Nyhets tabellen
```

det finns inget ställe i de andra filerna (admin.php, news.php) som kallar på janne vad ska jag ändra nånstanns eller döpa om för att få det fungera?

får fortfarande felmedelandet: Couldn't select table

Permalänk: https://www.webforum.nu/p/1705418

## #9 — Pedda, 2005-11-10T22:13Z

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.

Permalänk: https://www.webforum.nu/p/1705439

## #10 — richardjoha, 2005-11-10T22:51Z

ok, men hur många fält ska det vara? och sen när man kommer till nästa sida finns det en uppsjö inställningar man kangöra med värden och sånt.. 

pedda har du testat detta skriptet hos dig?

skulle va schysst att få nått att fungera så här i början..  ;)

Permalänk: https://www.webforum.nu/p/1705460

## #11 — filipbh, 2005-11-10T22:59Z

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.

Permalänk: https://www.webforum.nu/p/1705465

## #12 — richardjoha, 2005-11-10T23:02Z

ok men hur vet man det och var lär man sig detta? verkade vara en ganska självklar grej för det står inget om detta här <http://www.phpportalen.net/viewtopic.php?t=24931>

Permalänk: https://www.webforum.nu/p/1705468

## #13 — filipbh, 2005-11-10T23:13Z

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...

Permalänk: https://www.webforum.nu/p/1705475

## #14 — richardjoha, 2005-11-10T23:33Z

tack tack, då har man lärt sig något nytt :D

Permalänk: https://www.webforum.nu/p/1705481

## #15 — filipbh, 2005-11-10T23:40Z

Så lite så ;) Använd de formaten på kolumnerna i tabellen som passar bäst.

Permalänk: https://www.webforum.nu/p/1705482

## #16 — richardjoha, 2005-11-11T01:31Z

Fanken också, har stött på patrull igen :/

en skärmdump:
<http://www.oldoakdesign.se/wf/dump2.jpg>

filen conn.php ser ut enligt följande:

```
<?php
 
   $server = "localhost";      # MySQL servern
   $dbuser = "root";      # MySQL användaren
   $dbpass = "hemligt";      # MySQL lösenord
   $dbname = "nyheter";       # Databasens namn
   $dbtable = "nyheter";      # Nyhets tabellen
 
/* Anslut till MySQL databasen */
mysql_connect($server, $dbuser, $dbpass);
mysql_select_db($dbname);
 
?>
```

Kan det strula om exempelvis $dbname och $dbtable har samma namn?!

Permalänk: https://www.webforum.nu/p/1705499

## #17 — Melea, 2005-11-11T06:57Z

Nix, det där ser rätt ut. :)

Permalänk: https://www.webforum.nu/p/1705519

## #18 — Pedda, 2005-11-11T09:20Z

Du måste ju ha samma namn på fälten som i koden på phpportalen.
Där var ju databasstrukturen med.

```
CREATE TABLE `nyheter` ( 
`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` ) 
);
```

 (Döpte om tabellen till nyheter som du ser)

Tycker att du raderar tabellen som du har gjort och lägger in koden ovan istället så ska det nog fungera.

Permalänk: https://www.webforum.nu/p/1705572

## #19 — richardjoha, 2005-11-11T12:18Z

Nu är det fixat tabellen heter nyheter. men det står fortfarande *Couldn't select table*.. Så här ser det ut nu. <https://www.oldoakdesign.se/wf/dump3.jpg>

resterande kod:

**admin.php:**

```
<?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);
 
?>
```

Permalänk: https://www.webforum.nu/p/1705668

## #20 — Pedda, 2005-11-11T12:23Z

I news.php ändra raden 

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

 till 

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

 och posta felmeddelandet du får nu.

Permalänk: https://www.webforum.nu/p/1705671

---

Tråden på webben: https://www.webforum.nu/amne/php/137370-hjälp-med-nyhetsscript  
Nästa sida: https://www.webforum.nu/amne/php/137370-hjälp-med-nyhetsscript/page2.md
