Gå til innhold

php/mysql script: endre brukernavn


Anbefalte innlegg

Skrevet

Hei

 

Jeg trenger ett simpelt script hvor man kan se alle personene som er i databasen, så kan det være mulig å endre brukerens navn ved å trykke på en knapp kalt ENDRE.

 

Tenker noe slik:

 

Brukerens_navn ENDRE

 

Hvis dere hvet om en tutorial på nett går det sikkert bra det også, bare send linken....

 

Mvh Mr Chief

 

EDIT: hvis du skal lage et script, eller hvet om en løsning, vennligst svar meg i forumet, da slepper jeg bruke mye tid på noe jeg ikke klarer.

Videoannonse
Annonse
Skrevet

Jeg klarer det...

 

Det som er det største problemer er at jeg ikke får til den ENDRE knappen, linken skal jo endre seg til f.eks user.php?id=5 så kommer mann inn på siden hvor du da kan endre den brukeren...

 

Takk for svar

Skrevet
Du bruker update for å endre mysql tabellen

6555284[/snapback]

 

Ja, men jeg kommer ikke inn på update siden...det er det som må fikses før jeg begynner på det der...

Gjest Slettet+6132
Skrevet

Du kan prøve dette scriptet:

 

<?php
mysql_connect("127.0.0.1", "myuser", "mypass") or die("SQL ERROR: Could not connect to database!");
mysql_select_db("mydb") or die("SQL ERROR: Could not select database!");

switch($_GET['do'])
{
case "edit":
 if(is_int($_GET['id']))
 {
 	$query = mysql_query("SELECT * FROM `mytable` WHERE `userid` = '{$_GET['id']}' LIMIT 1");
 	$row = mysql_fetch_assoc($query);
 	echo "<form name=\"edit_user\" action=\"myscript.php?do=doedit\" method=\"post\">\n";
 	echo "<input type=\"text\" name=\"username\" value=\"{$row['username']}/>\n";
 	echo "<input type=\"hidden\" name=\"userid\" value=\"{$row['userid']}\"/>\n";
 	echo "<input type=\"submit\" name=\"submit\" value=\"Edit user\"/>\n";
 	echo "</form>\n";
 }
break;

case "doedit":
 if(is_int($_POST['userid']))
 {
 	mysql_real_escape_string($_POST['username']);
 	mysql_query("UPDATE `mytable` SET `username` = '{$_POST['username']}' LIMIT 1");
 	header("Location: http://myserver.tld/myscript.php");
 	exit;
 }
break;

default:
 $query = mysql_query("SELECT * FROM mytable");
 while($row = mysql_fetch_assoc($query))
 {
 	echo htmlspecialchars($row['username']) . " (<a href=\myscript.php?do=edit&id={$row['userid']}\" title=\"Edit user\">Edit user</a>)\n";
 }
}
?>

Gjest Slettet+6132
Skrevet (endret)

Du har kalt scriptet myscript.php, ikke sant?

 

EDIT: Prøv å bytte "is_int" til "is_numeric", da skal det gå bedre.

Endret av Slettet+6132
Skrevet
Du har kalt scriptet myscript.php, ikke sant?

6555634[/snapback]

 

Jeg har endret allt av det jeg skal endre, slik at det vil passe til mitt script...

 

LINK

Gjest Slettet+6132
Skrevet (endret)

Sorry, er noen småfeil fra min side der.

 

Endre is_int til is_numeric som jeg sa over, og endre

echo htmlspecialchars($row['username']) . " (<a href=\myscript.php?do=edit&id={$row['userid']}\" title=\"Edit user\">Edit user</a>)\n";

til

echo htmlspecialchars($row['username']) . " (<a href=\"myscript.php?do=edit&id={$row['userid']}\" title=\"Edit user\">Edit user</a><br/>)\n";

Endret av Slettet+6132
Skrevet
Sorry, er noen småfeil fra min side der.

 

Endre is_int til is_numeric som jeg sa over, og endre

echo htmlspecialchars($row['username']) . " (<a href=\myscript.php?do=edit&id={$row['userid']}\" title=\"Edit user\">Edit user</a>)\n";

til

echo htmlspecialchars($row['username']) . " (<a href=\"myscript.php?do=edit&id={$row['userid']}\" title=\"Edit user\">Edit user</a><br/>)\n";

6555659[/snapback]

 

Jeg virker sikkert litt dom nå, men det står is_int to steder, hvilken "case" skal jeg endre det på?

Gjest Slettet+6132
Skrevet

Ikke for å være frekk, men begge kanskje? :roll:

Gjest Slettet+6132
Skrevet

Ja, jeg så det. Fingrene mine løper alt for fort når jeg skriver kode, så det blir en del feil innimellom.

 

Dette skal virke:

 

<?php
mysql_connect("127.0.0.1", "myuser", "mypass") or die("SQL ERROR: Could not connect to database!");
mysql_select_db("mydb") or die("SQL ERROR: Could not select database!");

switch($_GET['do'])
{
case "edit":
if(is_numeric($_GET['id']))
{
 $query = mysql_query("SELECT * FROM `mytable` WHERE `userid` = '{$_GET['id']}' LIMIT 1");
 $row = mysql_fetch_assoc($query);
 echo "<form name=\"edit_user\" action=\"myscript.php?do=doedit\" method=\"post\">\n";
 echo "<input type=\"text\" name=\"username\" value=\"{$row['username']}\"/>\n";
 echo "<input type=\"hidden\" name=\"userid\" value=\"{$row['userid']}\"/>\n";
 echo "<input type=\"submit\" name=\"submit\" value=\"Edit user\"/>\n";
 echo "</form>\n";
}
break;

case "doedit":
if(is_numeric($_POST['userid']))
{
 mysql_real_escape_string($_POST['username']);
 mysql_query("UPDATE `mytable` SET `username` = '{$_POST['username']}' LIMIT 1");
 header("Location: http://myserver.tld/myscript.php");
 exit;
}
break;

default:
$query = mysql_query("SELECT * FROM mytable");
while($row = mysql_fetch_assoc($query))
{
 echo htmlspecialchars($row['username']) . " (<a href=\"myscript.php?do=edit&id={$row['userid']}\" title=\"Edit user\">Edit user</a>)<br/>\n";
}
}
?>

Skrevet (endret)

Hei

 

Prøv å endre nå...

LINK

 

EDIT: Ser visst ut som at noen har det gøy... men hva er den header problem greia?

 

header("Location: http://maple-design.net/AdminP/endreid2.php");

Endret av Mr Chief
Gjest Slettet+6132
Skrevet

Post scriptet ditt slik det er nå. Hadde også vært flott med en beskrivelse over databasen din, hvilke felter du har der osv.

Skrevet (endret)

endreid2.php :



<?php
mysql_connect("localhost", "#####", "######") or die("SQL ERROR: Could not connect to database!");
mysql_select_db("#####") or die("SQL ERROR: Could not select database!");

switch($_GET['do'])
{
case "edit":
if(is_numeric($_GET['id']))
{
$query = mysql_query("SELECT * FROM brukere WHERE id = '{$_GET['id']}' LIMIT 1");
$row = mysql_fetch_assoc($query);
echo "<form name=\"edit_user\" action=\"endreid2.php?do=doedit\" method=\"post\">\n";
echo "<input type=\"text\" name=\"brukernavn\" value=\"{$row['brukernavn']}\"/>\n";
echo "<input type=\"hidden\" name=\"id\" value=\"{$row['id']}\"/>\n";
echo "<input type=\"submit\" name=\"submit\" value=\"Edit user\"/>\n";
echo "</form>\n";
}
break;

case "doedit":
if(is_numeric($_POST['id']))
{
mysql_real_escape_string($_POST['brukernavn']);
mysql_query("UPDATE brukere SET brukernavn = '{$_POST['brukernavn']}' LIMIT 1");
header("Location: http://maple-design.net/AdminP/endreid2.php");
exit;
}
break;

default:
$query = mysql_query("SELECT * FROM brukere");
while($row = mysql_fetch_assoc($query))
{
echo htmlspecialchars($row['brukernavn']) . " (<a href=\"endreid2.php?do=edit&id={$row['id']}\" title=\"Edit user\">Edit user</a>)<br/>\n";
}
}
?>

 

Databasen:

ID_____Brukernavn

1 ______Prebe

10 ______Einar

8 ______Preben

 

Vet ikke om dere skjønner noe av det...

Endret av Mr Chief
Gjest Slettet+6132
Skrevet (endret)

Urk, jeg som roter igjen.

 

UPDATE brukere SET brukernavn = '{$_POST['brukernavn']}' LIMIT 1

skal være

UPDATE brukere SET brukernavn = '{$_POST['brukernavn']}' WHERE id = '{$_POST['id']}' LIMIT 1

 

Header-erroren klarer jeg ikke å se, det er ikke noe whitespace før php-scriptet vel?

 

EDIT: Jo, det er whitespace før scriptet. Visk ut slik at <?php er det første som står i scriptet.

Endret av Slettet+6132

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...