Avatar billede Slettet bruger
30. maj 2010 - 03:37 Der er 3 kommentarer

Opdatere database via phpform

Hej!

Jeg har lavet et lille script, men det virker ikke :-(

Jeg vil gerne have opdateret "navn" i min tabel "navnetabel". Jeg håbede lidt at det kunne gøres ved følgende to sider, men navnet ændres slet ikke. Nogen der kan finde fejlen?



<?php  //index.php

$db_host = "localhost";
$db_username = "brugernavn";
$db_pass = "kode";
$db_name = "databasenavn";

@mysql_connect("$db_host","$db_username","$db_pass") or die ("Kunne ikke forbinde til MySql.");
@mysql_select_db("$db_name") or die ("Ingen database.");

$x = $_GET['navn'];
$result=mysql_query("SELECT * FROM navnetabel where navn='$x'") or die("ERROR:".mysql_error());
$row=mysql_fetch_array($result,MYSQL_ASSOC);
print '<form method="POST" action="side2.php">';
print '<input type="hidden" name="gammeltnavn" value="'.$x.'">';
print 'Navn: <input type="text" maxlength="19" size="53" name="navn" value="'.$row['navn'].'" />';
print '<input type="submit" name="submit" value="Opdater">';
mysql_close($link);
?>

<?php //side2.php

$db_host = "localhost";
$db_username = "brugernavn";
$db_pass = "kode";
$db_name = "databasenavn";

@mysql_connect("$db_host","$db_username","$db_pass") or die ("Kunne ikke forbinde til MySql.");
@mysql_select_db("$db_name") or die ("Ingen database.");

$gammelt_navn=$_POST['gammeltnavn'];
$nyt_navn=$_POST['navn'];
mysql_query("UPDATE navnetabel SET navn='$nyt_name' where navn='$gammelt_navn'") or die("ERROR:".mysql_error());
echo "Navnet er ændret";
?>
Avatar billede majbom Novice
30. maj 2010 - 09:53 #1
hvad er det der ikke virker? kommer der ikke noget i feltet på side1 eller bliver det ikke opdateret på side2?

jeg kan heller ikke lige se hvor $x kommer fra?

forklar forklar
Avatar billede cronaldo Nybegynder
30. maj 2010 - 13:13 #2
Jeg forstår ikke den mærkelige bruger af " og '

Prøv sådan her:

<?php  //index.php

$db_host = "localhost";
$db_username = "brugernavn";
$db_pass = "kode";
$db_name = "databasenavn";

@mysql_connect($db_host, $db_username, $db_pass") or die ("Kunne ikke forbinde til MySql.");
@mysql_select_db($db_name) or die ("Ingen database.");

$x = $_GET['navn'];
$result=mysql_query("SELECT * FROM navnetabel WHERE navn='".$x."'") or die("ERROR:".mysql_error());
$row=mysql_fetch_array($result,MYSQL_ASSOC);
print '<form method="POST" action="side2.php">';
print '<input type="hidden" name="gammeltnavn" value="'.$x.'">';
print 'Navn: <input type="text" maxlength="19" size="53" name="navn" value="'.$row['navn'].'" />';
print '<input type="submit" name="submit" value="Opdater">';
mysql_close($link);
?>

<?php //side2.php

$db_host = "localhost";
$db_username = "brugernavn";
$db_pass = "kode";
$db_name = "databasenavn";

@mysql_connect($db_host,$db_username,$db_pass) or die ("Kunne ikke forbinde til MySql.");
@mysql_select_db($db_name) or die ("Ingen database.");

$gammelt_navn = $_POST['gammeltnavn'];
$nyt_navn = $_POST['navn'];
mysql_query("UPDATE navnetabel SET navn = '".$nyt_name."' WHERE navn = '".$gammelt_navn."'") or die("ERROR:".mysql_error());
echo "Navnet er ændret";
?>
Avatar billede jakobdo Ekspert
01. juni 2010 - 13:46 #3
Du kunne starte med at anvende en fil som håndtere din sql forbindelse, noget ala:

<?php //connect.php
$db_host    = "localhost";
$db_username = "brugernavn";
$db_pass    = "kode";
$db_name    = "databasenavn";

@mysql_connect($db_host,$db_username,$db_pass) or die ("Kunne ikke forbinde til MySql.");
@mysql_select_db($db_name) or die ("Ingen database.");
?>

<?php  //index.php

require_once('connect.php');

$x = $_GET['navn'];
$result=mysql_query("SELECT * FROM navnetabel where navn='$x'") or die("ERROR:".mysql_error());
$row=mysql_fetch_array($result,MYSQL_ASSOC);
print '<form method="POST" action="side2.php">';
print '<input type="hidden" name="gammeltnavn" value="'.$x.'">';
print 'Navn: <input type="text" maxlength="19" size="53" name="navn" value="'.$row['navn'].'" />';
print '<input type="submit" name="submit" value="Opdater">';
mysql_close($link);
?>

<?php //side2.php

require_once('connect.php');

$gammelt_navn=$_POST['gammeltnavn'];
$nyt_navn=$_POST['navn'];
mysql_query("UPDATE navnetabel SET navn='$nyt_name' where navn='$gammelt_navn'") or die("ERROR:".mysql_error());
echo "Navnet er ændret";
?>

Og så burde du også bruge et ID og ikke gammeltnavn.
Ligeledes kommer du til index.php fra en liste af ?
Ellers mangler du jo $_GET['navn'].
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