Avatar billede nyst Nybegynder
29. oktober 2003 - 13:01 Der er 115 kommentarer og
1 løsning

hente og slette fra database

Hej, jeg har lavet en admin-side hvor der skal kunne rettes i tabel via browser.

Koden driller dog lidt, idet den kun viser en blank side - kan nogen se hvor fejlen ligger og den også vil virke på den måde den er skrevet - alt skal foregå på samme side:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>

<title>Administrationmodul - opdatering af side</title>

</head>

<body>
<h1>Administrationmodul - opdatering af side</h1>

<h2>Hent side</h2>
<h3>Indtast indeks</h3>

<?php
    mysql_connect("bla bal
    mysql_select_db("bla bla
    $hent = mysql_query("SELECT overskrift, indhold, dag FROM 'sider' WHERE indeks = $indeks");
    while ($data = mysql_fetch_array($hent)) {
  echo "$data[overskrift]<br><br>";
  echo "$data[indhold]<br><br>";
  echo "$data[dag]<br><hr>";
    }
?>

<form method="post" action="<?php $PHP_SELF; ?>">
<input type="text" name="indeks" value="<?php echo $data["hent"]; ?>">
<input type="submit" name="hent" value="Hent">
</form>

<h2>Opdater side</h2>
<h3>Indtast i felter</h3>

<?php
    mysql_connect("bla bla
    mysql_select_db("bla bla
    if ($update) {
    $SQL = "UPDATE 'sider' SET Overskrift = '$overskrift', Indhold = '$indhold', Dato = '$dag' WHERE indeks = $indeks");
    mysql_query($SQL) or die("Forkert Query: $SQL - ".mysql_error());
  echo "Siden er opdateret.";
} else {
?>

<form method=post action="<?php $PHP_SELF; ?>">
Indeks der skal opdateres: <input type="text" name="indeks"><br>
Overskrift: <input type="text" name="overskrift"><br>
Indhold: <textarea cols="25" rows="5" name="indhold"></textarea><br>
Dato for rettelse: <input type="text" name="dag"><br>
<input type="submit" name="update" value="Opdater">
</form>

<?php
}   
mysql_close();
?>

</body>
</html>
Avatar billede detox Nybegynder
29. oktober 2003 - 13:10 #1
Prøv at rette:
$hent = mysql_query("SELECT overskrift, indhold, dag FROM 'sider' WHERE indeks = $indeks");
til:
$hent = mysql_query("SELECT overskrift, indhold, dag FROM sider WHERE indeks = $indeks");

Hvor har du i øvrigt $indeks fra, det fremgår ikke rigtigt?
Avatar billede nyst Nybegynder
29. oktober 2003 - 13:18 #2
Hej,
det hjælper ikke med at ændre til sider, i øvrigt briger jeg altid 'sider' på alle mine andre kald og det giver ikke problemer.

$indeks er en indekssering i stedet for at bruge id i tabel, så jeg har en kolonne der hedder indeks og jeg skal så kunne indtaste indeks-numret og får de 3 celler frem inden jeg så retter dem længere nede på siden.

Det er underlig for hvis jeg fjerne den øverste/første php så vises det hele.
Avatar billede detox Nybegynder
29. oktober 2003 - 13:18 #3
Prøv måske sådan her:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Administrationmodul - opdatering af side</title>
</head>
<body>
<h1>Administrationmodul - opdatering af side</h1>
<h2>Hent side</h2>
<h3>Indtast indeks</h3>
<?php
if (isset($_POST['hent'])) {
    mysql_connect("bla bal");
    mysql_select_db("bla bla");
    $hent = mysql_query("SELECT overskrift, indhold, dag FROM 'sider' WHERE indeks = $indeks");
    while ($data = mysql_fetch_array($hent)) {
  echo "$data[overskrift]<br><br>";
  echo "$data[indhold]<br><br>";
  echo "$data[dag]<br><hr>";
    }
} else {
?>

<form method="post" action="">
<input type="text" name="indeks" value="<?=$data["hent"]?>">
<input type="submit" name="hent" value="Hent">
</form>

<h2>Opdater side</h2>
<h3>Indtast i felter</h3>

<?php
}
if (isset($_POST['update'])) {
    mysql_connect("bla bla");
    mysql_select_db("bla bla");
    $SQL = ("UPDATE 'sider' SET Overskrift = '$overskrift', Indhold = '$indhold', Dato = '$dag' WHERE indeks = $indeks");
    mysql_query($SQL) or die("Forkert Query: $SQL - ".mysql_error());
    echo "Siden er opdateret.";
} else {
?>
<form method=post action="">
Indeks der skal opdateres: <input type="text" name="indeks"><br>
Overskrift: <input type="text" name="overskrift"><br>
Indhold: <textarea cols="25" rows="5" name="indhold"></textarea><br>
Dato for rettelse: <input type="text" name="dag"><br>
<input type="submit" name="update" value="Opdater">
</form>
<?php
}
?>
</body>
</html>
Avatar billede nyst Nybegynder
29. oktober 2003 - 13:27 #4
Nu kommer der da noget på siden, men indtaster jeg så indeksnummer i feltet:

<form method="post" action="">
<input type="text" name="indeks" value="<?=$data["hent"]?>">
<input type="submit" name="hent" value="Hent">
</form>

sker der ikke andet end den fjerner:

Opdater side
Indtast i felter

altså den henter ikke noget fra databasen???

:-)
Avatar billede detox Nybegynder
29. oktober 2003 - 13:31 #5
Altså vi nærmer os ;o)
Avatar billede nyst Nybegynder
29. oktober 2003 - 13:31 #6
Ser lige du har ændret:

<form method=post action="">

hvorfor ikke noget i action?
Avatar billede detox Nybegynder
29. oktober 2003 - 13:33 #7
Du behøver ikke 'action' når du henviser til den samme side.
Hvad hedder felterne i din tabel? Det ene sted bruger du stort forbogstav og det andet sted lille?
Avatar billede detox Nybegynder
29. oktober 2003 - 13:34 #8
Altså fx: Overskrift/overskrift
Avatar billede nyst Nybegynder
29. oktober 2003 - 13:36 #9
de felter der skal rettes i - der er andre som ikke skal kunne rettes - hedder følgende:

overskrift
indhold
dag

og så selvfølgelig indeks

:-)
Avatar billede detox Nybegynder
29. oktober 2003 - 13:38 #10
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Administrationmodul - opdatering af side</title>
</head>
<body>
<h1>Administrationmodul - opdatering af side</h1>
<h2>Hent side</h2>
<h3>Indtast indeks</h3>
<?php
if (isset($_POST['hent'])) {
    extract($_POST);
    mysql_connect("bla bal");
    mysql_select_db("bla bla");
    $hent = mysql_query("SELECT overskrift, indhold, dag FROM 'sider' WHERE indeks = $indeks");
    while ($data = mysql_fetch_array($hent)) {
  echo $data['overskrift']."<br><br>";
  echo $data['indhold']."<br><br>";
  echo $data['dag']."<br><hr>";
    }
} else {
?>

<form method="post" action="">
<input type="text" name="indeks" value="<?=$data["hent"]?>">
<input type="submit" name="hent" value="Hent">
</form>

<h2>Opdater side</h2>
<h3>Indtast i felter</h3>

<?php
}
if (isset($_POST['update'])) {
    extract($_POST);
    mysql_connect("bla bla");
    mysql_select_db("bla bla");
    $SQL = ("UPDATE 'sider' SET overskrift = '$overskrift', indhold = '$indhold', dato = '$dag' WHERE indeks = $indeks");
    mysql_query($SQL) or die("Forkert Query: $SQL - ".mysql_error());
    echo "Siden er opdateret.";
} else {
?>
<form method=post action="">
Indeks der skal opdateres: <input type="text" name="indeks"><br>
Overskrift: <input type="text" name="overskrift"><br>
Indhold: <textarea cols="25" rows="5" name="indhold"></textarea><br>
Dato for rettelse: <input type="text" name="dag"><br>
<input type="submit" name="update" value="Opdater">
</form>
<?php
}
?>
</body>
</html>
Avatar billede nyst Nybegynder
29. oktober 2003 - 13:42 #11
nej den 'klasker' bare sammen igen som før - den henter ikke indholdet og viser det heller ikke!!!!
Avatar billede nyst Nybegynder
29. oktober 2003 - 13:42 #12
sorry vent lidt
Avatar billede detox Nybegynder
29. oktober 2003 - 13:43 #13
Så prøv at udskifte:
    $hent = mysql_query("SELECT overskrift, indhold, dag FROM 'sider' WHERE indeks = $indeks");
med:
    $hent = mysql_query("SELECT overskrift, indhold, dag FROM 'sider' WHERE indeks = $indeks") or die(mysql_error());
Avatar billede nyst Nybegynder
29. oktober 2003 - 13:43 #14
nix klasker osv
Avatar billede nyst Nybegynder
29. oktober 2003 - 13:47 #15
giver denne:

You have an error in your SQL syntax near ''sider' WHERE indeks = 250000' at line 1

:-)
Avatar billede detox Nybegynder
29. oktober 2003 - 13:48 #16
Jeg er nu ret sikker på du skal prøve at skifte 'sider' ud med sider.
Avatar billede nyst Nybegynder
29. oktober 2003 - 13:53 #17
SÅ henter den - fint

MEN

opdateringen giver:

Forkert Query: UPDATE sider SET overskrift = 'Test af modul', indhold = 'Denne side skal kun bruges til at rette i via modul. Er nu testet mht. at hente.', dato = '29.10.2003' WHERE indeks = 250000 - Unknown column 'dato' in 'field list'

:-)
Avatar billede nyst Nybegynder
29. oktober 2003 - 13:56 #18
rettet dato til dag og det ser ud til at virke
Avatar billede nyst Nybegynder
29. oktober 2003 - 13:57 #19
hvad skal jeg tilføje for at det rettede så vises - igen på samme side
Avatar billede detox Nybegynder
29. oktober 2003 - 13:57 #20
Ok, så får du et svar c",)
Avatar billede detox Nybegynder
29. oktober 2003 - 14:00 #21
Næ, det var ikke et svar. Jeg troede vi var i land. Mener du, vise det man lige har indtastet som rettelse?
Avatar billede nyst Nybegynder
29. oktober 2003 - 14:02 #22
ja i stedet for den bare siger nu er det opdateret
så vise det
Avatar billede detox Nybegynder
29. oktober 2003 - 14:06 #23
echo "Siden er opdateret.<br /><br />";
    echo $overskrift."<br /><br />";
    echo $indhold."<br /><br />";
    echo $dag."<br /><hr />";
Avatar billede nyst Nybegynder
29. oktober 2003 - 14:09 #24
så virker det

points

men jeg vil gerne give flere til en udvidelse

kan vi det her efter du har fået point eller hvordan

vil helst fortsætte med dig hvis du gider...

:-)
Avatar billede detox Nybegynder
29. oktober 2003 - 14:10 #25
Ok, hvad mangler du?
Avatar billede nyst Nybegynder
29. oktober 2003 - 14:15 #26
Prøver at forklare så godt som muligt:

Jeg kunne tænke mig, at der var en slags liste med alle indeksnumre med tilhørende navn på siden, ikke .php-navnet nok mere link-navnet.
Sådan at man kunne scrolle nej og vælge den respektive side, hvor man nu skal huske indeksnummer og indtaste det.

Er det voldsomt???

:-)

PS selvfølgelig flere points
Avatar billede detox Nybegynder
29. oktober 2003 - 14:24 #27
Havde du tænkt dig en seperat side med den liste. For så kunne man lige så godt lave det som links, så man automatisk fik de aktuelle data vist i formen.
Hvad hedder det feltnavn du kunne tænke dig at vise i sådan en liste?
Avatar billede nyst Nybegynder
29. oktober 2003 - 14:35 #28
Jeg tror det bedste ville være jeg tilføjede en kolonne i tabellen hvor jeg så kan skrive det som jeg gerne vil have der skal stå i 'listen', så hvis vi nu siger den skal vise 'indeks' som før og så ved siden af det som jeg skriver i 'list'.
Det er måske en god idé med en seperat side, da jeg nok med tiden får mange sider måske omkring 100 hvem ved...

:-)
Avatar billede detox Nybegynder
29. oktober 2003 - 14:40 #29
Ja, men jeg forestille mig bare at du ikke behøvede 'indeks' i selve linket. Det kunne man bare overføre via $_GET i url'en.
Avatar billede nyst Nybegynder
29. oktober 2003 - 14:44 #30
ja det er måske det mest tydelige så jeg ikke går galt i byen - flere indtastninger giver jo større fejlmulighed.

Jeg må smutte nogle timer men vender tilbage igen og skal nok vente på du er der igen om ikke nadet så tester jeg og vi kan snakke når du giver tilbagemelding - men tak tak tak for nu
Avatar billede detox Nybegynder
29. oktober 2003 - 14:47 #31
Bare i orden. Jeg kunne forestille mig noget i den her stil:

list.php
--------

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Liste til rettelser</title>
</head>
<body>
<?
    mysql_connect("bla bal");
    mysql_select_db("bla bla");
    $hent = mysql_query("SELECT indeks, list FROM sider ORDER BY list");
    while ($data = mysql_fetch_array($hent)) {
    echo "<a href='ret.php?indeks=".$data['indeks']."'>".$data['list']."</a><br />";
    }
?>
</body>
</html>
Avatar billede detox Nybegynder
29. oktober 2003 - 14:59 #32
ret.php
-------

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Administrationmodul - opdatering af side</title>
</head>
<body>
<h1>Administrationmodul - opdatering af side</h1>
<h2>Hent side</h2>
<h3>Indtast indeks</h3>
<?php
    mysql_connect("bla bal");
    mysql_select_db("bla bla");
   
if (isset($_POST['hent'])) {
    extract($_POST);
    $hent = mysql_query("SELECT overskrift, indhold, dag FROM sider WHERE indeks = $indeks");
    while ($data = mysql_fetch_array($hent)) {
  echo $data['overskrift']."<br><br>";
  echo $data['indhold']."<br><br>";
  echo $data['dag']."<br><hr>";
    }
} else {
?>

<form method="post" action="">
<input type="text" name="indeks" value="<?=$data["hent"]?>" />
<input type="submit" name="hent" value="Hent" />
</form>

<h2>Opdater side</h2>
<h3>Indtast i felter</h3>

<?php
}
if (isset($_POST['update'])) {
    extract($_POST);
    $SQL = ("UPDATE sider SET overskrift = '$overskrift', indhold = '$indhold', dag = '$dag' WHERE indeks = $indeks");
    mysql_query($SQL) or die("Forkert Query: $SQL - ".mysql_error());
    echo "Siden er opdateret.<br /><br />";
    echo $overskrift."<br><br>";
    echo $indhold."<br><br>";
    echo $dag."<br><hr>";
} elseif (isset($_GET['indeks'])) {
    $hent = mysql_query("SELECT overskrift, indhold, dag, indeks FROM sider WHERE indeks = ".$_GET['indeks']);
    if (mysql_num_rows($hent) != 1) die("Der kunne ikke findes data med dette indeks!");
    $row = mysql_fetch_assoc($hent);
    extract($row);
?>
<form method=post action="">
<input type="hidden" name="indeks" value="<?=$indeks?>" />
Overskrift: <input type="text" name="overskrift" value="<?=$overskrift?>" /><br />
Indhold: <textarea cols="25" rows="5" name="indhold"><?=$indhold?></textarea><br />
Dato for rettelse: <input type="text" name="dag" value="<?=$dag?>" /><br />
<input type="submit" name="update" value="Opdater" />
</form>
<?php
}
}
?>
</body>
</html>
Avatar billede detox Nybegynder
29. oktober 2003 - 15:00 #33
Den første form i ret.php er dog ikke optimal og den kunne måske undværes?
Avatar billede nyst Nybegynder
29. oktober 2003 - 17:59 #34
lad os tage list først, denne viser blank side, men tager man kildekoden viser den alle link dog ikke under hinanden, som lidt af den her:

<a href='ret.php?indeks=250000'>Administration - test</a><br /><a href='ret.php?indeks=200010'>Fotoarkiv - bygninger</a><br /><a href='ret.php?indeks=200000'>Fotoarkiv - forside</a><br /><a href='ret.php?indeks=200020'>Fotoarkiv Øvrige</a><br />
</body>
</html>
Avatar billede nyst Nybegynder
29. oktober 2003 - 18:03 #35
jo undskyld de kom til sidst

så jeg skal lige have ændret databasen

så hører du fra mig igen
Avatar billede detox Nybegynder
29. oktober 2003 - 18:03 #36
Jeps
Avatar billede nyst Nybegynder
29. oktober 2003 - 18:09 #37
jeg har slettet den første form, men kun formen ikke php
og så har jeg ændret slutningen fra

<?php
}
}
?>
</body>
</html>

til

<?php
}
?>
</body>
</html>

så jeg tester og vender tilbage*S*
Avatar billede nyst Nybegynder
30. oktober 2003 - 17:15 #38
Hej igen,
jeg har nu testet og det virker fint.
Så hvad skylder jeg i points indtil nu.
Vil gerne fortsætte med et par enkelte ting*S*

:-)
Avatar billede detox Nybegynder
30. oktober 2003 - 17:29 #39
Det er ok, hvad mangler du?
Avatar billede nyst Nybegynder
30. oktober 2003 - 17:48 #40
Et par ting:

først ville jeg gerne have at man kunne vælge hvilken tabel man ville rette i, jeg har tabellen sider nu, men lad os sige jeg får flere feks. xxx og yyy - kan man så have en dropdown hvor man vælger mellem de 3 tabeller.
Avatar billede detox Nybegynder
30. oktober 2003 - 18:16 #41
Måske sådan her:

tabel.php
---------

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Vælg tabel</title>
</head>
<body>
<h1>Administrationmodul - opdatering af side</h1>
<h2>Tabeller</h2>
<h3>Vælg tabel</h3>
<form method="post" action="list.php">
<select name="tabel">
<?php
    mysql_connect("bla bal");
    mysql_select_db("bla bla");
$dbname = 'database_navn'; // Navn på din database
    $result = mysql_list_tables($dbname);
    while ($row = mysql_fetch_row($result)) {
        echo "<option value='".$row[0]."'>".$row[0]."</option>";
    }
?>
</select><br />
<input type="submit" name="submit" value="Send" />
</form>
</body>
</html>
Avatar billede nyst Nybegynder
30. oktober 2003 - 18:17 #42
Har opdaget en ting jeg gerne ville fjerne i list.php

linien:

$hent = mysql_query("SELECT indeks, list FROM sider ORDER BY list");

er ok, men hvordan undgår jeg at den henter tomme felter i list?

:-)
Avatar billede detox Nybegynder
30. oktober 2003 - 18:19 #43
list.php skal rettes lidt til. Øjeblik.
Avatar billede detox Nybegynder
30. oktober 2003 - 18:21 #44
list.php
--------

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Liste til rettelser</title>
</head>
<body>
<?
if (isset($_POST['submit'])) {
    mysql_connect("bla bal");
    mysql_select_db("bla bla");
    $hent = mysql_query("SELECT indeks, list FROM ".$_POST['tabel']." ORDER BY list");
    while ($data = mysql_fetch_array($hent)) {
    echo "<a href='ret.php?indeks=".$data['indeks']."'>".$data['list']."</a><br />";
    }
} else {
    echo "Ingen tabel valgt!";
}
?>
</body>
</html>
Avatar billede nyst Nybegynder
30. oktober 2003 - 18:31 #45
nu er jeg skisme ikke med
den sidste du sendte altså list.php
er det svar på min:

Har opdaget en ting jeg gerne ville fjerne i list.php
Avatar billede detox Nybegynder
30. oktober 2003 - 18:40 #46
Nej, den kan du ikke undvære. Det er en rettelse ift. 'tabel.php' som linker til list.php.
Avatar billede nyst Nybegynder
30. oktober 2003 - 18:40 #47
har fået tabel.php til at virke

:-)
Avatar billede detox Nybegynder
30. oktober 2003 - 18:47 #48
Men det er selvfølgelig kun en del af vejen, for vi bliver nødt til at rette i 'ret.php', hvis den skal finde den rigtige tabel at rette i. Hvordan ser 'ret.php' ud nu?
Avatar billede detox Nybegynder
30. oktober 2003 - 18:50 #49
og en lille rettelse til 'list.php'
echo "<a href='ret.php?indeks=".$data['indeks']."'>".$data['list']."</a><br />";
rettes til:
echo "<a href='ret.php?indeks=".$data['indeks']."&tabel=".$_POST['tabel']."'>".$data['list']."</a><br />";
Avatar billede nyst Nybegynder
30. oktober 2003 - 18:54 #50
ja, den virker med din nye kode,

så nu er tabel.php ok

så er det bare hvordan jeg ikke får de tomme felter i kolonnen list

  $hent = mysql_query("SELECT indeks, list FROM ".$_POST['tabel']." ORDER BY list");
Avatar billede detox Nybegynder
30. oktober 2003 - 18:57 #51
Ja, det er jo ikke meningen, at der skal være tomme felter. Er det både 'indeks' og 'list' der er tomme?
Avatar billede detox Nybegynder
30. oktober 2003 - 19:00 #52
Kan du lave en dump af tabellen?
Avatar billede nyst Nybegynder
30. oktober 2003 - 19:00 #53
ret.php

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

<?php
    mysql_connect("");
    mysql_select_db("");
   
if (isset($_POST['hent'])) {
    extract($_POST);
    $hent = mysql_query("SELECT overskrift, indhold, dag FROM sider WHERE indeks = $indeks");
    while ($data = mysql_fetch_array($hent)) {
  echo $data['overskrift']."<br><br>";
  echo $data['indhold']."<br><br>";
  echo $data['dag']."<br><hr>";
    }
} else {
?>

<?php
}
if (isset($_POST['update'])) {
    extract($_POST);
    $SQL = ("UPDATE sider SET overskrift = '$overskrift', indhold = '$indhold', dag = '$dag' WHERE indeks = $indeks");
    mysql_query($SQL) or die("Forkert Query: $SQL - ".mysql_error());
    echo "Siden er opdateret.<br /><br />";
    echo $overskrift."<br><br>";
    echo $indhold."<br><br>";
    echo $dag."<br><hr>";
} elseif (isset($_GET['indeks'])) {
    $hent = mysql_query("SELECT overskrift, indhold, dag, indeks FROM sider WHERE indeks = ".$_GET['indeks']);
    if (mysql_num_rows($hent) != 1) die("Der kunne ikke findes data med dette indeks!");
    $row = mysql_fetch_assoc($hent);
    extract($row);
?>
<form method=post action="">
<input type="hidden" name="indeks" value="<?=$indeks?>" />
Overskrift:<br /><input type="text" size="50" name="overskrift" value="<?=$overskrift?>" /><br /><br />
Indhold:<br /><textarea cols="75" rows="25" name="indhold"><?=$indhold?></textarea><br /><br />
Dato for rettelse:<br /><input type="text" size="10" name="dag" value="<?=$dag?>" /><br /><br />
<input type="submit" name="update" value="Opdater" />
</form>
<?php
}
?>

--------------------
Avatar billede nyst Nybegynder
30. oktober 2003 - 19:03 #54
nej det er ikke indeks, men jeg har nogle tomme felter i list, idet ikke alle sider skal kunne rettes og så viser den en masse

href='ret.php?indeks=030050&tabel=sider'></a><br /><a href='ret.php?indeks=040010&tabel=sider'></a><br /><a href='ret.php?indeks=050020&tabel=sider'></a><br /><a href='ret.php?indeks=050030&tabel=sider'></a><br /><a href='ret.php?indeks=050040&tabel=sider'></a><br /><a href='ret.php?indeks=060010&tabel=sider'></a><br /><a href='ret.php?indeks=060020&tabel=sider'></a><br /><a href='ret.php?indeks=060030&tabel=sider'></a><br /><a

osv

og det vil jeg gerne kunne undgå

så kun der hvor list er udfyldt skal der hentes 'link'
Avatar billede nyst Nybegynder
30. oktober 2003 - 19:04 #55
med andre ord
så skal man lige nu scrolle langt ned på en 'blank' side før der kommer de links der refererer til de udfyldte felter i kolonnen list i databasen
Avatar billede detox Nybegynder
30. oktober 2003 - 19:06 #56
Ok, men er 'list' i din tabel NULL eller NOT NULL?
Avatar billede nyst Nybegynder
30. oktober 2003 - 19:08 #57
not null
Avatar billede nyst Nybegynder
30. oktober 2003 - 19:09 #58
og tinytext
Avatar billede detox Nybegynder
30. oktober 2003 - 19:10 #59
Prøv fx:

$hent = mysql_query("SELECT indeks, list FROM ".$_POST['tabel']." WHERE list != "" ORDER BY list");
Avatar billede nyst Nybegynder
30. oktober 2003 - 19:12 #60
den er gal, der kom intet frem nu
Avatar billede detox Nybegynder
30. oktober 2003 - 19:16 #61
$hent = mysql_query("SELECT indeks, list FROM ".$_POST['tabel']." WHERE list <> "" ORDER BY list") or die(mysql_error());
Avatar billede nyst Nybegynder
30. oktober 2003 - 19:19 #62
heller ikke - det er hvad der kommer til at stå i kildekoden

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=windows-1252"></HEAD>
<BODY></BODY></HTML>
Avatar billede detox Nybegynder
30. oktober 2003 - 19:22 #63
Ja, det var ikke meget. Kalder du den via 'tabel.php'?
Avatar billede nyst Nybegynder
30. oktober 2003 - 19:25 #64
ja
Avatar billede nyst Nybegynder
30. oktober 2003 - 19:26 #65
skriver jeg den direkte adresse til list.php viser den heller ikke noget
Avatar billede detox Nybegynder
30. oktober 2003 - 19:30 #66
Ja, det virker jo helt forkert.
Avatar billede detox Nybegynder
30. oktober 2003 - 19:33 #67
Jeg har engang prøvet noget lign., men jeg kan da ikke helt huske, hvad jeg gjorde ved det. Har du prøvet at ændre linien til det oprindelige?
Avatar billede detox Nybegynder
30. oktober 2003 - 19:35 #68
Jeg sidder lige og tænker på brugbarheden af det med at vælge den tabel der skal rettes i. Det vil jo kræve at alle tabeller har de samme felter. Ellers skal vi ud i noget helt andet.
Avatar billede nyst Nybegynder
30. oktober 2003 - 19:43 #69
jeg har rettet tilbage til:

$hent = mysql_query("SELECT indeks, list FROM ".$_POST['tabel']." ORDER BY list") or die(mysql_error());

den virker trods alt og så vil jeg prøve at lægge noget i ny tabel for at checke, men så bliver det nok senere eller i morgen

men foreløbig tak - vi ses
Avatar billede nyst Nybegynder
30. oktober 2003 - 21:15 #70
jeg fik løst det:

WHERE list<>'' (ikke mellemrum og ikke "" men ''

så viser den kun fyldte felter

nu må jeg lige checke det med flere tabeller - ellers hvis det kræver for meget så må jeg jo bare lave en alm side der ref. til list1 list2 osv, men lad os se på det.

:-)
Avatar billede nyst Nybegynder
30. oktober 2003 - 21:27 #71
det er korrekt, det virker ikke hvis ikke alle felter er ens i samtlige tabeller, så mon løsningen er at lave alm links til list1 list 2 osv og så også have flere af de andre filer til hver sin tabel og/eller database

:-)
Avatar billede detox Nybegynder
30. oktober 2003 - 22:09 #72
Jeg har siddet og leget med et andet koncept, hvor man kan rette i alle tabeller uanset indhold.
Avatar billede detox Nybegynder
30. oktober 2003 - 22:15 #73
Det fylder 3 filer og er meget mere flexibelt end det andet vi har lavet.
Den første sider lister tabellerne, så man kan vælge en. På den anden side kan man rette data i en række fra den valgte tabel. Og den tredie opdaterer databasen.
Avatar billede detox Nybegynder
30. oktober 2003 - 23:14 #74
Anyway, du kan se om der er noget du kan bruge:
http://www.buksevand.dk/test/edit-data/tabel.phps
http://www.buksevand.dk/test/edit-data/list.phps
http://www.buksevand.dk/test/edit-data/ret.phps

PS: Jeg får nok ikke så meget tid her weekenden over c",)
Avatar billede nyst Nybegynder
31. oktober 2003 - 11:10 #75
hej,

jeg har testet dem, men jeg synes bedre om de 'gamle',
så lad os arbejde videre på dem.

De lister alle felter og det forvirrer bare, det er bedre med 'links' til det der skal rettes - evt. må vi så lave et system for hver tabel.

God weekend :-)
Avatar billede nyst Nybegynder
03. november 2003 - 10:21 #76
Hej detox - haft en god weekend?

Hvis du gider vil jeg gerne fortsætte - har tænkt over en slags struktur jeg gerne ville opnå.

:-)
Avatar billede detox Nybegynder
03. november 2003 - 12:36 #77
Jo, tak. Det ville nu ellers være smart med sådan en allround model, men med lidt mere kodning, kan du da sagtens lave nogle scripts til hver tabel. Hvad har du fundet frem til?
Avatar billede nyst Nybegynder
03. november 2003 - 12:56 #78
Det er lidt nemmere for mig at styre på denne måde:

tabel.php (denne er der kun 1 af)

<form method="post"  action="list3.php">
<input type="text" name="sider" value="Danske sider">
<input type="submit" value=" &raquo; "> 
</form>

osv osv - altså samme form bare tilpasset med action og name

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

så en list.php for hver list1,2, 3 osv

<?php
    if (isset($_POST['sider'])) {
  mysql_connect("
  mysql_select_db("
    $hent = mysql_query("SELECT indeks, list FROM sider WHERE list<>'' ORDER BY list") or die(mysql_error());
    print "Klik på linket til den side du ønsker at rette i:<br /><br />";
  while ($data = mysql_fetch_array($hent)) {
    echo "&raquo; <a href='ret3.php?indeks=".$data['indeks']."&tabel=".$_POST['sider']."' class=hamlet>".$data['list']."</a><br />";
  }
} else {
  echo "Ingen tabel valgt!<br />";
}
?>

tilpasset med $POST og mysql_query og a href= for hver tabel

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

så ret.php for hver

<?php
    mysql_connect("
  mysql_select_db("
if (isset($_POST['hent'])) {
  extract($_POST);
  $hent = mysql_query("SELECT overskrift, indhold, dag FROM sider WHERE indeks = $indeks");
  while ($data = mysql_fetch_array($hent)) {
  echo $data['overskrift']."<br><br>";
  echo $data['indhold']."<br><br>";
  echo $data['dag']."<br><hr>";   
    }
} else {
?>

<?php
}
if (isset($_POST['update'])) {
    extract($_POST);
  $SQL = ("UPDATE sider SET overskrift = '$overskrift', indhold = '$indhold', dag = '$dag' WHERE indeks = $indeks");
  mysql_query($SQL) or die("Forkert Query: $SQL - ".mysql_error());
  echo "<b />Siden er opdateret som følger:</b /><br /><br />";
  echo $overskrift."<br><br>";
  echo $indhold."<br><br>";
  echo $dag."<br><hr>";
} elseif (isset($_GET['indeks'])) {
    $hent = mysql_query("SELECT overskrift, indhold, dag, indeks FROM sider WHERE indeks = ".$_GET['indeks']);
if (mysql_num_rows($hent) != 1) die("Der kunne ikke findes data med dette indeks!");
  $row = mysql_fetch_assoc($hent);
  extract($row);
?>
<form method=post action="">
<h3>Felter til opdatering i database [danske sider]</h3>
Ret i felterne og klik opdater:<br><br>
<input type="hidden" name="indeks" value="<?=$indeks?>" />
Overskrift:<br /><input type="text" size="50" name="overskrift" value="<?=$overskrift?>" /><br /><br />
Indhold:<br /><textarea cols="75" rows="25" name="indhold"><?=$indhold?></textarea><br /><br />
Dato for rettelse:<br /><input type="text" size="10" name="dag" value="<?=$dag?>" /><br /><br />
<input type="submit" name="update" value="Opdater" />
</form>
<?php
}
    mysql_close();
?>

Denne er jeg dog ikke helt sikker på er kodet optimalt eller korrekt - gider du kigge efter - dog ser det udtil at virke!!!

:-)
Avatar billede detox Nybegynder
03. november 2003 - 13:18 #79
Jo, det ser fint nok ud. Men dette stykke kan jeg ikke se gør nogen gavn:

if (isset($_POST['hent'])) {
  extract($_POST);
  $hent = mysql_query("SELECT overskrift, indhold, dag FROM sider WHERE indeks = $indeks");
  while ($data = mysql_fetch_array($hent)) {
  echo $data['overskrift']."<br><br>";
  echo $data['indhold']."<br><br>";
  echo $data['dag']."<br><hr>";   
    }
} else {
?>

<?php
}

Det kan undværes, medmindre du kalder filen fra en anden form med feltet $_POST['hent'], hvilket jeg ikke kan se nogen brug for.
Avatar billede nyst Nybegynder
03. november 2003 - 13:26 #80
Hvis jeg ændre ret.php til dette:

<?php
}
if (isset($_POST['update'])) {
  mysql_connect("");
  mysql_select_db("");
    extract($_POST);
  $SQL = ("UPDATE sider SET overskrift = '$overskrift', indhold = '$indhold', dag = '$dag' WHERE indeks = $indeks");
  mysql_query($SQL) or die("Forkert Query: $SQL - ".mysql_error());
  echo "<b />Siden er opdateret som følger:</b /><br /><br />";
  echo $overskrift."<br><br>";
  echo $indhold."<br><br>";
  echo $dag."<br><hr>";
} elseif (isset($_GET['indeks'])) {
    $hent = mysql_query("SELECT overskrift, indhold, dag, indeks FROM sider WHERE indeks = ".$_GET['indeks']);
if (mysql_num_rows($hent) != 1) die("Der kunne ikke findes data med dette indeks!");
  $row = mysql_fetch_assoc($hent);
  extract($row);
?>
<form method=post action="">
<h3>Felter til opdatering i database [danske sider]</h3>
Ret i felterne og klik opdater:<br><br>
<input type="hidden" name="indeks" value="<?=$indeks?>" />
Overskrift:<br /><input type="text" size="50" name="overskrift" value="<?=$overskrift?>" /><br /><br />
Indhold:<br /><textarea cols="75" rows="25" name="indhold"><?=$indhold?></textarea><br /><br />
Dato for rettelse:<br /><input type="text" size="10" name="dag" value="<?=$dag?>" /><br /><br />
<input type="submit" name="update" value="Opdater" />
</form>
<?php
}
    mysql_close();
?>

så kommer der ingen felter frem man kan rette i???
Avatar billede detox Nybegynder
03. november 2003 - 13:30 #81
Du skal ikke have den }:

<?php
}

på linie nr 2.
Avatar billede nyst Nybegynder
03. november 2003 - 13:58 #82
så virker det*S*

2 ? mere hvis og såfremt

:-)
Avatar billede detox Nybegynder
03. november 2003 - 14:16 #83
Ja, hvis jeg kan svare på dem ;o)
Avatar billede nyst Nybegynder
03. november 2003 - 14:25 #84
1 ekstra.

hvis jeg på ret.php udover at den viser som nu hvad den nye tekst mm er også vil indsætte et link til respektive side som lige er rettet?
Avatar billede detox Nybegynder
03. november 2003 - 14:41 #85
Med et link mener du vel til et script der viser dine data. Altså en 'hent.php' eller 'vis.php' eller så'n?
Avatar billede nyst Nybegynder
03. november 2003 - 15:31 #86
nej mener bare et link så den rettede side vises i sin helhed
Avatar billede detox Nybegynder
03. november 2003 - 15:34 #87
Hmm, du må vel have et script der viser dine sider. Ellers er jeg ikke med.
Avatar billede nyst Nybegynder
03. november 2003 - 15:35 #88
den sidste ekstra må du hellere få:

for at komme ind til rettesystemt ville jeg gerne have login ned på en side og ikke som den sædvanlige boks der fremkommer.

Jeg anvender .htaccess, som jeg selv kan lave og har tidliger brugt javascript til at få 'boksen' ned på siden men ville høre om det ikke kunne lade sig gøre med php.

Den skal ikke genrererer password osv bare en enkelt en hvor selve interfacet er på siden og man så skrive navn og kode og så omstiller den til tabel.php

:-)
Avatar billede nyst Nybegynder
03. november 2003 - 15:38 #89
jeg har en søgning hvor jeg bruger

$filnavn = $row["filnavn"];
echo ("<a href=/$filnavn class=css>$overskrift</a><BR>");
Avatar billede detox Nybegynder
03. november 2003 - 15:42 #90
Skulle det ikke være?:

$filnavn = $row["filnavn"];
echo "<a href='".$filnavn."' class='css'>".$overskrift."</a><br />";
Avatar billede detox Nybegynder
03. november 2003 - 15:44 #91
Mht. til det andet, kan det naturligvis laves i php, så du kan undvære .htaccess. Jeg forstår bare ikke hvorfor du vil det. .htaccess er da nemt og sikkert.
Avatar billede nyst Nybegynder
03. november 2003 - 15:52 #92
nej, jeg vil ikke undvære .htaccess
det eneste jeg gerne ville er at få login'et ned på siden i stedet for den sædvanlige popup-boks i exploren og det har jeg før gjort med javascript hvor den anveder .htaccess'en
Avatar billede detox Nybegynder
03. november 2003 - 15:54 #93
Nå, ok. Ja, det ved jeg så ikke om det kan lade sig gøre i php. Ellers kan du jo bruge den der javascript metode.
Avatar billede nyst Nybegynder
03. november 2003 - 15:55 #94
det med ( ) har du da sikkert ret i ikke behøves, men det var nu mere for at beskrive hvordan jeg laver links, jeg skal så bare have den sider jeg har rettet sat links ind under der hvor den viser det rettede resultat - altså links ud til selve siden - det rettede er jo kun en del af felterne mm.
Avatar billede nyst Nybegynder
03. november 2003 - 15:57 #95
ok vi dropper login'en*S*
Avatar billede nyst Nybegynder
03. november 2003 - 15:59 #96
må man sprøge om årsagen til feks. <br /> og ikke <br>
Avatar billede detox Nybegynder
03. november 2003 - 16:02 #97
<br /> er for at gøre den kompatibel med det sidste nye html. Sådan en slags fremtidssikring.
Avatar billede detox Nybegynder
03. november 2003 - 16:06 #98
Så må du tilføje filnavn til din forespørgsel:

$hent = mysql_query("SELECT overskrift, indhold, dag, indeks, filnavn FROM sider WHERE indeks = ".$_GET['indeks']);

og så indsætte et hidden felt mere i din form:

<input type="hidden" name="filnavn" value="<?=$filnavn?>" />

Så skulle dit link kunne realiseres med:

  echo $overskrift."<br><br>";
  echo $indhold."<br><br>";
  echo $dag."<br><hr>";
  echo "<a href='".$filnavn."' class='css'>".$overskrift."</a><br />"; // Ny linie
Avatar billede nyst Nybegynder
03. november 2003 - 16:08 #99
Takker*S*

i ret.php har jeg denne:

$hent = mysql_query("SELECT overskrift, indhold, dag, indeks FROM sider WHERE indeks = ".$_GET['indeks']);

skal jeg så tilføje 'filnavn' her

og så

efter denne:

<input type="submit" name="update" value="Opdater" />

tilføje:

echo "<a href='".$filnavn."' class='css'>".$overskrift."</a><br />";

for at linke ud til siden der lige er rettet?
Avatar billede detox Nybegynder
03. november 2003 - 16:13 #100
<input type="hidden" name="filnavn" value="<?=$filnavn?>" />

tilføjes efter:

<input type="hidden" name="indeks" value="<?=$indeks?>" />

echo "<a href='".$filnavn."' class='css'>".$overskrift."</a><br />";

tilføjes efter:

echo $dag."<br><hr>";
Avatar billede detox Nybegynder
03. november 2003 - 16:13 #101
Og ja, tilføj filnavn til din forespørgsel.
Avatar billede nyst Nybegynder
03. november 2003 - 16:21 #102
vi nærmer os

jeg har ændret dir admin til cms så skal lige finde hvor den fejl ligger, den tager nemlig /admin/ med i linket
Avatar billede nyst Nybegynder
03. november 2003 - 16:31 #103
det var i databasen jeg havde glemt at ændre,

men nu skriver den dir 2 gange

cms/cms2/cms/sms2/filnavn

skulle være

cms/sms2/filnavn
Avatar billede detox Nybegynder
03. november 2003 - 16:45 #104
Hvad hvis du ændrer det til:

echo "<a href=../'".$filnavn."' class='css'>".$overskrift."</a><br />";
Avatar billede nyst Nybegynder
03. november 2003 - 16:48 #105
skal denne ikke:

WHERE indeks = $indeks");

have tilføjet filnavn = $filnavn
Avatar billede nyst Nybegynder
03. november 2003 - 16:52 #106
så skriver den

'cms/sms2/filnavn.php'

altså ' dem som ikke skal være der
Avatar billede detox Nybegynder
03. november 2003 - 16:55 #107
Skulle have været:

echo "<a href='../".$filnavn."' class='css'>".$overskrift."</a><br />";
Avatar billede nyst Nybegynder
03. november 2003 - 16:55 #108
jeg fjernede ' så kun " var tilbage

og det virker skisme*S*
Avatar billede detox Nybegynder
03. november 2003 - 16:56 #109
skal denne ikke:

WHERE indeks = $indeks");

have tilføjet filnavn = $filnavn

Nej.
Avatar billede nyst Nybegynder
03. november 2003 - 16:59 #110
ok så er det jo bare at side du har været mere en tålmodig og du bestemmer selv points
Avatar billede nyst Nybegynder
03. november 2003 - 17:00 #111
og jeg håber da du 'finder' mig igen hvis jeg stiller nyt ? eller hvis jeg kan hjælpe dig med noget*S*
Avatar billede detox Nybegynder
03. november 2003 - 17:14 #112
Nu er der jo mange indlæg i den her kategori, men jeg prøver da så vidt muligt at følge med, når jeg har tid.
Her er et svar, så kan du tildele de point du synes. Det er ok med mig. ;o)
Avatar billede nyst Nybegynder
03. november 2003 - 17:18 #113
jeg kan ikke vælge points - kan du det??
Avatar billede nyst Nybegynder
03. november 2003 - 17:20 #114
fandt ud af det og har givet dig maxpoints 200
håber du fik dem
tak for denne gang og din store hjælp
:-)
Avatar billede detox Nybegynder
03. november 2003 - 17:21 #115
Selv tak og velbekommen c",)
Avatar billede nyst Nybegynder
03. november 2003 - 17:47 #116
Denne er lukket
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