Avatar billede challenge Praktikant
03. august 2005 - 15:10 Der er 12 kommentarer og
1 løsning

Mysql ID og text

Jeg lavede et spørgsmål, hér sidste dag om brugen af sider med url som f.eks. ?side=about. Jeg er så gået lidt videre og læst om MySQL til formålet.
Min idé er således: I min database har jeg oprettet en tabel:
CREATE TABLE sider (
  id int(6) NOT NULL auto_increment,
  tekst varchar(50) NOT NULL,
  PRIMARY KEY (id)
);

I den tabel skal jeg kunne skrive noget i feltet tekst, og derefter skal id'en så automatisk blive udfyldt. Til dette tror jeg at jeg har gjort det rigtigt.

I mit PHP script står der:

mysql_connect("localhost", "root", "") OR DIE("Kunne ikke etabler en forbindelse til databasen!");
mysql_select_db("mindb") OR DIE("Kunne ikke etabler en forbindelse til MySQL'en!");
$query = mysql_query("SELECT sider FROM mindb WHERE id = '$id'");
while($r = mysql_fetch_array($query)) {
$id = $r["id"];
$tekst = $r["tekst"];
}

if($_GET[id] == '$id') {
echo "$text";
; }

Idéen hér er så at jeg skal kunne skrive i adressefeltet f.eks. ?id=1 og så kommer teksten (Jeg skrev i databasen) så frem.

Det virker så desværre ikke.
Men da jeg så vidt muligt gerne vil lave det selv (lære det ordentligt), er der så nogen der evt. kan komme med nogle hints, eller rette mig hvis jeg er helt forkert på den?

mvh.

Stefan Helgason
Avatar billede challenge Praktikant
03. august 2005 - 15:12 #1
Bare sig til hvis i behøver anden forklaring eller jeg snakker russisk :)

Fejlem på siden er forresten:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ....... on line 14
Avatar billede jaw Nybegynder
03. august 2005 - 15:13 #2
Prøv:

mysql_connect("localhost", "root", "") OR DIE("Kunne ikke etabler en forbindelse til databasen!");
mysql_select_db("mindb") OR DIE("Kunne ikke etabler en forbindelse til MySQL'en!");
$query = mysql_query("SELECT sider FROM mindb WHERE id = '".$_GET['id']."'");

while($r = mysql_fetch_array($query)) {
  echo $r['tekst'];
}
Avatar billede jaw Nybegynder
03. august 2005 - 15:14 #3
"mindb" i din $query skal være tabelnavnet, ikke databasenavnet...
Avatar billede challenge Praktikant
03. august 2005 - 15:30 #4
Tusinde tak for det, det virkede :D

skriv et svar og få point :)
Avatar billede jaw Nybegynder
03. august 2005 - 15:39 #5
Det var så sandelig så lidt... :)
Avatar billede barklund Nybegynder
03. august 2005 - 15:53 #6
Hm, din sql syntaks er helt forkert - det hedder

SELECT tekst FROM sider WHERE id = 1

Altså:

$query = mysql_query(sprintf("SELECT tekst FROM sider WHERE id = %d", $_GET['id']));
if($r = mysql_fetch_array($query)) {
  echo $r["tekst"];
}

Vil jeg mene burde virke :)

--
Morten Barklund
Avatar billede jaw Nybegynder
03. august 2005 - 16:02 #7
Hvorfor er syntaksen forkert?
Avatar billede barklund Nybegynder
03. august 2005 - 16:48 #8
Fordi han valgte SELECT table FROM database - det giver ikke mening :)

(og jeg kommenterede altså på det oprindelige indlæg - og ikke dine kommentarer)
Avatar billede jaw Nybegynder
03. august 2005 - 16:51 #9
Nåå, så forstår jeg bedre :) Men tror nu han mente SELECT felt FROM database...
Avatar billede challenge Praktikant
03. august 2005 - 19:35 #10
barklund -
Jamen det virker allerede... så det burde ikke være noget problem.

Men her kommer lille mig med endnu et spørgsmål:
Hvis der ikke er indtastet et id vil jeg gerne have en tekst frem, eller have includeret en fil. Hvoedan gør jeg det?
(undskyld :| )
Avatar billede jaw Nybegynder
03. august 2005 - 19:59 #11
if(!isset($_GET['id'])) {
  include("fil.php");
} else {
  -- resten af dit script --
}
Avatar billede challenge Praktikant
03. august 2005 - 20:57 #12
Jeg takker mange gange :)
(Undskyld besværeligheden)
Avatar billede jaw Nybegynder
03. august 2005 - 21:06 #13
Ingen årsag :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester