Avatar billede 7th Praktikant
12. februar 2003 - 22:53 Der er 10 kommentarer og
1 løsning

Ret data fra mysql

Jeg sidder og fumler med en simpel rette funktion af data fra en mysql database. Det er på en eller anden måde lykkedes mig at få rettet navn, men det virker dog ikke helt efter hensigten. Hvad gør jeg galt ?

<?
mysql_connect ("$mysql_host" , "$mysql_user" , "$mysql_pass");
mysql_select_db ("$mysql_database");
$contents = mysql_query ("SELECT navn FROM $mysql_table ORDER BY id DESC") or die (mysql_error ());

while ($data = mysql_fetch_row ($contents))
{
echo "<tr><td><input name=\"navn\" size=\"25\" type=\"text\" value=\"$data[0]\"></td></tr>\n";
}

if (isset ($_POST['send']))
{
$navn = $data['navn'];
$contents = mysql_query ("UPDATE $mysql_table SET navn='".$_POST['navn']."'") or die (mysql_error ());
echo "updateret";
}
?>

P.S. hvornår bruger man egentlig og korrekt sætningen "or die (mysql_error ()" ?
Avatar billede Lasse Novice
12. februar 2003 - 22:57 #1
lang tid siden jeg har kigget paa baade mysql eller php, men jeg kan fortaelle dig at brugen af "or die (mysql_error ())" bliver kaldt idet dit foregaaende kald fejler. Du die'r(skriver til en log fil, skriver stopper eksekvering af script) med beskrivelsen der staar i funktionskaldet mysql_error ()
Avatar billede jfl Nybegynder
12. februar 2003 - 23:02 #2
Prøv at ændre din echo til:
echo "<tr><td><input name=\"navn\" size=\"25\" type=\"text\" value=\"".$data[0]."\"></td></tr>\n";

Hvad bruger du iøvrigt $navn = $data['navn']; til?
Avatar billede 7th Praktikant
12. februar 2003 - 23:10 #3
Jeg fandt $navn = $data['navn']; i dette spørgsmål http://www.eksperten.dk/spm/264837. Jeg har gjort stortset ligesom el_barto.
Avatar billede jfl Nybegynder
12. februar 2003 - 23:16 #4
kan du uddybe dit problem? hvad forventer du, som ikke sker?
Avatar billede 7th Praktikant
12. februar 2003 - 23:19 #5
Ahh, det jeg egentlig ville var først at udskrive alle navne for så dernæst at kunne redigere det enkelte navn, men det jeg har lavet her retter alle navne, og ikke kun det enkelte.
Avatar billede 7th Praktikant
12. februar 2003 - 23:45 #6
Jeg manglede at putte et id nummer på hver navn, og så et WHERE id=$id i query. Beklager at jeg ikke forklarede mit problem godt nok, men er ny i mysql, og jeg troede at det var det jeg havde lavet.
Avatar billede 7th Praktikant
13. februar 2003 - 01:52 #7
Nu har jeg lavet dette, men der er lige et lille problem. Hvordan får jeg fat på indholdet af det inputfelt jeg vælger at rette ?

mysql_connect ("$mysql_host" , "$mysql_user" , "$mysql_pass");
mysql_select_db ("$mysql_database");
$contents = mysql_query ("SELECT * FROM $mysql_table ORDER BY id DESC") or die (mysql_error ());

if (isset ($_GET['edit']) && $_GET['edit'] == "name")
{
$id = $_GET['id'];
// hvordan får jeg fat på $navn fra det valgte inputfelt ?
$contents = mysql_query ("UPDATE $mysql_table SET navn=\"$navn\" WHERE id=\"$id\"") or die (mysql_error ());
}

---

while ($datanavn = mysql_fetch_array ($contents))
{
echo "<table>\n";
echo "<tr>\n";
echo "<td><input name=\"navn$datanavn[id]\" size=\"25\" type=\"tex\" value=\"$datanavn[navn]\"></td>\n";
echo "<td><a href=\"test.php?id=$datanavn[id]&edit=name\" onclick=\"document.formnavn.submit();\">Ret Navn</a></td>\n";
echo "</tr>\n";
echo "</table>\n";
}
Avatar billede 7th Praktikant
13. februar 2003 - 02:53 #8
Der er masser af fejl i mit sidste indlæg. Tror hellere jeg må gå i seng nu. Finder på noget bedre imorgen, men I skal være mere end velkommen til give en hjælpende hånd med.
Avatar billede 7th Praktikant
13. februar 2003 - 15:23 #9
Jeg misforstod en del af pointen omkring UPDATE, da jeg ikke havde læst det ordentligt. Dette gør det jo desto mere svært så at hjælpe mig, hvorfor jeg vælger at lukke spørgsmålet for at starte forfra med et nyt og meget bedre eksempel.

Beklager...

//7th
Avatar billede ladyhawke Novice
13. februar 2003 - 15:26 #10
læg evt. en reference til det nye spørgmål her...
Avatar billede 7th Praktikant
13. februar 2003 - 15:55 #11
http://www.eksperten.dk/spm/317002

jfl : jeg føler på en måde at jeg har snydt dig, men da jeg jo var forkert på den, kunne jeg af gode grunde ikke se om dit svar hjalp. Du skal være velkommen til at lægge et svar i ovenstående spørgsmål, blot du så lige forklarer hvad de to punktumer om .$data[0]. gøre godt for.
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