25. marts 2010 - 17:18Der er
14 kommentarer og 1 løsning
update - har problemer med basis forståelse :=)
Hej Jeg prøver at lave en simpel update til mis database udfra en form... jeg har efterhånden prøvet mange løsninger, men ikke haft held til at lave det rigtigt. Dette script jeg har lavet, virker næsten - altså lige bortset fra at den ikke opdaterer databasen, ofg der kommer heller ikke nogle fejlmeldinger....
her er min kode.:
<?php mysql_connect("xxx", "xxx", "xxx") or die(mysql_error()); mysql_select_db("xxx") or die(mysql_error());
$idnr = $_POST["data"];
$result_id = mysql_query("SELECT * FROM lejr_ulv WHERE id=$idnr"); $result_Vis_t = mysql_query("SELECT * FROM lejr_ulv WHERE id=$idnr"); $result_Mail_t = mysql_query("SELECT * FROM lejr_ulv WHERE id=$idnr"); $result_Pris = mysql_query("SELECT * FROM lejr_ulv WHERE id=$idnr"); $result_Andet = mysql_query("SELECT * FROM lejr_ulv WHERE id=$idnr");
er der en der kan hjælpe mig vidre, og på samme tid vil jeg gerne forstå hvad jeg laver, måske en forklarring på en eventuelt løsning vil være højt værsat...
Ny rapport varsler risiko for, at vi i Norden sakker bagud på teknologier med de mest markante potentialer. CIO’erne bliver afgørende for succes.
9. maj 2025
Slettet bruger
25. marts 2010 - 17:23#1
Quote
if($opdater)
"UPDATE lejr_ulv SET Vis_t="& request.form(Vis) & " WHERE id='$idnr'";
For at udfører din SQL-kode skal du bruge mysql_query()-funktionen. Du kan ikke bare skrive en SQL-kode direkte ind i filen og håbe på PHP selv kan finde ud af at udfører din forspørgelse ;-)
Synes godt om
Slettet bruger
25. marts 2010 - 17:29#2
Hovsa, glemte lige at kommenterer på det hele.
Hvor får du $opdater fra? Gætter på det er den måde du tjekker på om man har brugt formen, men så skal du bruge $_POST["opdater"] eller bruge funktionen extract()
Derudover så vil jeg gætte på at & request.form(Vis) & er fra ASP eller lignende (kender intet til ASP), men den går desværre ikke i PHP. Så prøv og ændre den SQL kode til noget ala følgende: mysql_query("UPDATE lejr_ulv SET Vis_t=" . $_POST["vis"] . " WHERE id='" .$idnr . ")
Synes godt om
Slettet bruger
25. marts 2010 - 17:32#3
Damn, må være træt.. men da jeg lige læste det igennem igen, så faldt jeg da over en fejl mere.
Du henter $idnr ud fra POST-data, men i din form smider du den i URL-adressen og du skal derfor hente den med GET istedet. Så prøv følgende: $idnr = $_GET["id"];
Måske bør du starte med at læse lidt mere om emnet php/mysql.
Hvorfor er det lige at du bruger 5 SQL forespørgelser til at hente så få data ud af en og samme tabel ?
$result_id = mysql_query("SELECT * FROM lejr_ulv WHERE id=$idnr"); $result_Vis_t = mysql_query("SELECT * FROM lejr_ulv WHERE id=$idnr"); ....
Disse to og de efterfølgende kald vil hente samme data ud. Dvs at alle dine $row_xx variabler vil indeholde det samme, et array med data fra en række i dine tabel i databasen. Der vil ikke være nogen forskel. $row_id = mysql_fetch_array($result_id); $row_Vis_t = mysql_fetch_array($result_Vis_t); ....
Dernæst er der lige et par ting: Hvor kommer $line fra ? Hvor kommer $php_self fra ? Måske du mener $_SERVER['PHP_SELF'] ? Hvor kommer $idnr oprindelig fra ? Kommer den fra en helt anden side?
Jeg ved godt at jeg har meget at lære endnu, normalt programerer jeg i ASP, men vil gerne lære lidt php ! ! !
Her kommer Idnr fra :
<?php
$idnr = 1;
mysql_connect("xxx", "xxx", "xxxx") or die(mysql_error()); mysql_select_db("xxx") or die(mysql_error());
$result_id = mysql_query("SELECT * FROM lejr_ulv WHERE id=$idnr"); $result_Vis_t = mysql_query("SELECT * FROM lejr_ulv WHERE id=$idnr"); $result_Mail_t = mysql_query("SELECT * FROM lejr_ulv WHERE id=$idnr"); $result_Pris = mysql_query("SELECT * FROM lejr_ulv WHERE id=$idnr"); $result_Andet = mysql_query("SELECT * FROM lejr_ulv WHERE id=$idnr");
Dernæst siden : L_Update_1.php - med rettelser fra : roxki - men nu får jeg en html fejl - Webstedet kan ikke vise siden ! !
her er koden :
<?php mysql_connect("kfum-borkop.dk.mysql", "kfum_borkop_dk", "FHKrKPvp") or die(mysql_error()); mysql_select_db("kfum_borkop_dk") or die(mysql_error());
$idnr = $_POST["data"];
$result_id = mysql_query("SELECT * FROM lejr_ulv WHERE id=$idnr"); $result_Vis_t = mysql_query("SELECT * FROM lejr_ulv WHERE id=$idnr"); $result_Mail_t = mysql_query("SELECT * FROM lejr_ulv WHERE id=$idnr"); $result_Pris = mysql_query("SELECT * FROM lejr_ulv WHERE id=$idnr"); $result_Andet = mysql_query("SELECT * FROM lejr_ulv WHERE id=$idnr");
ok, jeg stiller spørgsmålet på en anden måde... Hvis jeg har en Form hvorfra jeg henter en stræng fra min mysql database, en som jeg på en forige side har dikteret ($idnr). jeg kan se formen, med de rigtige data, men nu kommer problemet hvordan opdaterer jeg de ændrede indtastninger fra formen. når jeg trukker på opdater knappen ?? hvordan ser syntaxen ud, (har forkortet koden væsentligt...) Her er koden lidt mere overskuelig...
<?php $idnr = $_POST["data"]; $result = mysql_query("SELECT * FROM lejr_ulv WHERE id=$idnr"); $row = mysql_fetch_array($result); ?>
For det første, så er der ingen action som hedder opdater, du bliver nød til at angive en fil. Din form mangler også en method, det er enten POST eller GET.
Dernæst skal din form ikke have et id med samme værdi som det id du prøver at ændre. Lav et hidden felt i din form som skal have værdien af $idnr.
For at kunne opdatere en række i din database bliver din kode nød til at tjekke om du har sendt noget data fra formen når du kalder siden igen. Dette tjek kan gøre med en if-sætning. If-sætning kan så afgøre om du skal vise formen eller du skal opdatere din tabel i databasen.
Ja det bør virke, husk dog at forbinde til databasen. Og så er det en god ide at bruge "or die(mysql_error())" under udvikling efter hver kald til mysql.
mysql_query("UPDATE lejr_ulv SET Vis_t='$_POST[navn]' WHERE id=1") or die(mysql_error());
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.