17. februar 2003 - 10:18Der er
26 kommentarer og 2 løsninger
Opdaterer felt i database
Hej eksperter.
Jeg har et lille problem som jeg håber i kan hjælpe mig af med. Jeg har en side hvorfra man skal kunne indtaste sine initialer, hvis man tager sig af en sag, således at man kan holde styr på hvilke personer der tage hvilke sager.
Sagerne bliver oprettet i en anden fil, og når man så tager dem, skal man indtaste sine initialer, og samtidig skal den skrive en 'lavdato', altså tiden lige nu.
Koden er her: <p align="center">
<?php
function printDato($timestamp) { //månedsnavn oversættes til dansk $mndarray = array(1 => 'januar', 'februar', 'marts', 'april', 'maj', 'juni', 'juli', 'august', 'september', 'oktober', 'november', 'december'); $maaned=$mndarray[date('n', $timestamp)];
//skriver datoen på dansk på skærmen echo date('j. ', $timestamp) . $maaned . date(' Y, k\l. H:i:s', $timestamp); }
if (isset($_POST["initialer"])) { $fejl = false;
if (trim($_POST["initialer"])=="") { print "<font face='Verdana' color='#FFFFFF' size='1'><b>Der skal indtastes et »Initial«.</b><br></font>"; $fejl = true; }
Brug af AI afslører de svagheder, virksomheder allerede har opbygget gennem års cloud-transformation, nye SaaS-løsninger og fragmenterede sikkerhedssystemer.
er at du opretter en ny post med to felter; "lavdato" & "initialer" -- men skal de ikke opdateres i en eksisterende database, så de bliver tilknyttet en post?
Skal lige høre om det er korrekt at der skal oprettes en ny post sådan: INSERT INTO --**-- (lavdato, initialer) VALUES (".$timestamp.", '".$_POST["initialer"]."
eller om det er en allerede eksisterende post der skal opdateres: UPDATE --**-- SET (lavdato = ".$timestamp.", initialer = ".$_POST["initialer"]." where id = $id)
Jge har nogen ting som lige springer mig i øjet når jeg ser din kode. (1) Du bruger en $_GET["modtagetdato"], jeg kan ikke lige se hvor 'modtagetdato' dato kommer fra! (2) I blokken : if ($oprettet == 1) Variablen $timestamp eksisterer ikke der så vidt jeg kan se. Du får ikke "postet" den med i fomularen! (3) Og så en lille skønheds fejl. I blokken : if($fejl==false) Variablen $fejl er af typen bool, hvilket betyder du ikke behøver at lave et implicit typecast til string for at tjekke om den er false. I stedet kan du tjekke direkte på $fejl f.eks. : if (!$fejl) /* Hvilket betyder, "hvis der IKKE er fejl" */
Men prøv lige at se om du overhovedet får sendt $timestamp variablen med ved submit, og så kunne jeg også godt lige tænke mig at vide hvor 'modtagetdato' kommer fra!
Så er databasen kommet op og køre igen, men je gahr stadig ikke fået det til at virke. Jeg er ikke så fandes god til php og sql, så jeg håber at I har tålmodighed...
Jeg mener at værdien lavdato og initialer skal tilføjes en eksisterende post/linie i databasen, således at jeg i databasen kan se hvornår sagen er modtaget, påbegyndt m.v.
Problemmet er følgende: Warning: Supplied argument is not a valid MySQL result resource in indtast_initialer.php on line 60
Initialer er IKKE tilskrevet
Linie 60 er denne: $oprettet = mysql_num_rows($result);
Min kode ser nu således ud: <?php
function printDato($timestamp) { //månedsnavn oversættes til dansk $mndarray = array(1 => 'januar', 'februar', 'marts', 'april', 'maj', 'juni', 'juli', 'august', 'september', 'oktober', 'november', 'december'); $maaned=$mndarray[date('n', $timestamp)];
//skriver datoen på dansk på skærmen echo date('j. ', $timestamp) . $maaned . date(' Y, k\l. H:i:s', $timestamp); }
if (isset($_POST["initialer"])) { $fejl = false;
if (trim($_POST["initialer"])=="") { print "<font face='Verdana' color='#FFFFFF' size='1'><b>Der skal indtastes et »Initial«.</b><br></font>"; $fejl = true; }
$result = mysql_query("SELECT * FROM **--** WHERE id='".$_GET["modtagetdato"]."'");
$oprettet = mysql_num_rows($result);
if ($oprettet == 1) { $timestamp = time(); mysql_query("UPDATE **--** SET (lavdato='".$timestamp."', initialer='".$_POST["initialer"]."' WHERE id='".$_GET["modtagetdato"]."'");
$result = mysql_query("SELECT * FROM --**-- WHERE id=$modtagetdato");
$oprettet = mysql_num_rows($result);
if ($oprettet == 1) { $timestamp = time(); mysql_query("UPDATE --**-- SET (lavdato='".$timestamp."', initialer='".$_POST["initialer"]."' WHERE id=$modtagetdato");
Er det dette du mener: modtagetdato - bigint (Er et timestamp, fra da sagen blev oprettet) sagsnr - varchar (Er sagsnumret, og primary key) kundenummer - varchar kategori - int udformning - varchar lavdato - bigint (Er et timestamp fra når man åbner indtast_initialer.php) initialer - char (Skal være de initialer, man indtaster i indtast_initialer.php)
måden du tjekker på om der er noget i din sql_query er flg.:
/* Din forspørgelse */ $result = mysql_query("SELECT * FROM --**-- WHERE id=$modtagetdato"); /* Start : Læsevenlig kode */ print("<pre>"); /* Dump variablen */ var_dump($result); // Man kan også bruge : print_f($result) /* Slut : læsevanlig kode */ print("</pre>);
Så kan du se tyen og indholdet af din variabel $result
Jeg har selv fået det til at virke. 50 point til exp for den store hjælp...
Synes godt om
Ny brugerNybegynder
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.