11. december 2005 - 14:01
Der er
42 kommentarer og 1 løsning
hjælp til ekstra felt i PHP og Databasen.
Hej eksperter, Jeg fik tilsendt en "nyhedssystem" af en venlig bruger herinde. Nyhedssystemet er rimelig "simpelt" men da jeg er meget usikker på området søger jeg en der kan hjælpe mig med følgende: Jeg vil gerne have et ekstra felt med en Dato i følgende PHP script: $res = mysql_query("SELECT * FROM nyhedssystem") or die(mysql_error()); while ($row = mysql_fetch_array($res)) { echo "<table border=\"1\" width=\"500\">"; echo "<tr>"; echo "<td>"; echo "<b>Overskrift:</b> "; echo $row['overskrift']. "<br>"; echo "</td>"; echo "</tr>"; echo "<tr>"; echo "<td>"; echo "<b>beskrivelse:</b> "; echo $row['beskrivelse']. "<br>"; echo "</td>"; echo "</tr>"; echo "<tr>"; echo "<td>"; echo "<b>Nyhed:</b> "; echo $row['nyhed']. "<br>"; echo "</td>"; echo "</tr>"; echo "</table>"; echo "<br><br>"; } ?> og jeg vil gerne sætte en ekstra tabel ind i databasen som er kørt med følgende SQL sætning: CREATE TABLE `nyhedssystem` ( `overskrift` varchar(200) NOT NULL default '', `beskrivelse` varchar(200) NOT NULL default '', `nyhed` varchar(200) NOT NULL default '' ) TYPE=MyISAM; Er der en der kan hjælpe mig med de 2 ting? mvh Mads
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
11. december 2005 - 14:02
#1
Den ekstra tabel i Tabellen skal udskrive dato format (helst den europæiske måde at udsrkive det på). mvh mads
11. december 2005 - 14:04
#2
$res = mysql_query("SELECT *, DATE_FORMAT(dato, '%d.%m.%Y %H:%i:%s') as datotid FROM nyhedssystem") or die(mysql_error()); while ($row = mysql_fetch_array($res)) { echo "<table border=\"1\" width=\"500\">"; echo "<tr>"; echo "<td>"; echo "<b>Overskrift:</b> "; echo $row['overskrift']. "<br>"; echo "</td>"; echo "</tr>"; echo "<tr>"; echo "<td>"; echo "<b>beskrivelse:</b> "; echo $row['beskrivelse']. "<br>"; echo "</td>"; echo "</tr>"; echo "<tr>"; echo "<td>"; echo "<b>dato:</b> "; echo $row['datotid']. "<br>"; echo "</td>"; echo "</tr>"; echo "<tr>"; echo "<td>"; echo "<b>Nyhed:</b> "; echo $row['nyhed']. "<br>"; echo "</td>"; echo "</tr>"; echo "</table>"; echo "<br><br>"; } ?> Og så hop i phpMyAdmin og opret et nyt felt der er DATETIME som felttype og hedder "dato".
11. december 2005 - 14:05
#3
Du tilføjer et felt som hedder datotid eller hvad du kan finde på! I det script hvor nyheden så gemmes i databasen, laver du: INSERT INTO nyhedssystem(overskrift,beskrivelse,nyhed,datotid) VALUES($overskrift,$beskriv,$nyhed,NOW()) NOW() vil indsætte tidspunktet lige nu!
11. december 2005 - 14:06
#4
Og så har du så fået både indsætning i og udtræk af databasen :)
11. december 2005 - 14:07
#5
Så skulle den ged vel være barberet! :o)
11. december 2005 - 14:09
#6
jo det prøver lige at kigge på.
11. december 2005 - 14:12
#7
Jeg får en MySQL fejl for jeg har jo allerede lavet tabellen "nyhedssystem" via SQL sætningen: CREATE TABLE `nyhedssystem` ( `overskrift` varchar(200) NOT NULL default '', `beskrivelse` varchar(200) NOT NULL default '', `nyhed` varchar(200) NOT NULL default '' ) TYPE=MyISAM; Så jeg skal kune tilføje et ekstra felt
11. december 2005 - 14:13
#8
Har du ikke phpMyAdmin installeret på serveren? Det er klart den nemmeste måde.
11. december 2005 - 14:13
#9
Du skal åbne phpmyadmin og vælg structur mener jeg den hedder! Der skal du kunne tilføje et ekstra felt.
11. december 2005 - 14:13
#10
Så der er vel sådan her: INSERT INTO nyhedssystem(datotid) VALUES($,NOW()) Den skal laves den sætning er det korrekt ? mvh mads
11. december 2005 - 14:13
#11
2 hjerner, samme tanke!
11. december 2005 - 14:14
#12
jo jeg har PHPMyadmin kørende lokalt hvor jeg tester. Skal jeg gøre det uden SQL-sætning er det nemmere?
11. december 2005 - 14:17
#13
ok jeg gør det nu via "Structur" men hvordan skal feltet se ud (hvilke data skal anvendes??). mvh mads
11. december 2005 - 14:18
#14
Hvis du læser sidste linie i mit første indlæg, så tror jeg den skulle være der?
11. december 2005 - 14:20
#15
jeg kigger lige men er helt ny i det her derfor spørger jeg så meget. mvh Mads
11. december 2005 - 14:23
#16
altså jeg gør det på følgende måde: feltnavn: datotid data type: TIME Længde/Værdi* ?? Kollation (Collation) ?? Attributter Nulværdi ?? Standardværdi** ?? Ekstra ?? Jeg er usikker på hvad datatypen er og hvvad der skal ind de sidste felter!?!? kan i hjælpe? mvh Mads
11. december 2005 - 14:29
#17
hejsa igen foxmulder, jeg kan da godt lige hjælpe dig med det :) Du tilføjer dette i phpmyadmin: dato,varchar,255 og derefter indsætter du denne i opret_nyhed.php eller hvad jeg nu kaldte den da jeg lavede den :P $dato = date('d/m/Y H:i:s'); samt at du ændre query linien til dette: mysql_query("INSERT INTO nyhedssystem (overskrift, beskrivelse, nyhed, dato) VALUES ('$_POST[overskrift]', '$_POST[beskrivelse]', '$_POST[nyhed]', '$dato')") or die(mysql_error()); når du så skal trække datoen ud igen, skal du bare skrive dette: $res = mysql_query("SELECT * FROM nyhedssystem") or die(mysql_error()); while ($row = mysql_fetch_array($res)) { echo "<table border=\"1\" width=\"500\">"; echo "<tr>"; echo "<td>"; echo "<b>Overskrift:</b> "; echo $row['overskrift']. "<br>"; echo "</td>"; echo "</tr>"; echo "<tr>"; echo "<td>"; echo "<b>beskrivelse:</b> "; echo $row['beskrivelse']. "<br>"; echo "</td>"; echo "</tr>"; echo "<tr>"; echo "<td>"; echo "<b>Nyhed:</b> "; echo $row['nyhed']. "<br>"; echo "</td>"; echo "</tr>"; echo "<tr>"; echo "<td>"; echo "<b>dato:</b> "; echo $row['dato']. "<br>"; echo "</td>"; echo "</tr>"; echo "</table>"; echo "<br><br>"; } ?>
11. december 2005 - 14:30
#18
No offence, men det er for omstændigt. Du skal oprette feltet "dato" og så med type DATETIME. Resten skal du bare lade phpMyAdmin bekymre sig om, den skal nok udfylde standardværdi etc.
11. december 2005 - 14:31
#19
jamen jeg har jo oprettet denn tabel med overskift,nyhed allerede men jeg sletter bare tabellen i PHPMyadmin og kører din sætning der igen så? mvh mads
11. december 2005 - 14:34
#20
nu har jeg indsat i PHPmyadmin følgende felt: navn: dato type: varchar længde 255 mvh Mads
11. december 2005 - 14:34
#21
Det behøver du ikke, men du kan bare tilføje et nyt felt manuelt ? ellers kan jeg da bare gøre det for dig: CREATE TABLE `nyhedssystem` ( `overskrift` varchar(200) NOT NULL default '', `beskrivelse` varchar(200) NOT NULL default '', `nyhed` varchar(200) NOT NULL default '', `dato` varchar(255) NOT NULL default '' ) TYPE=MyISAM; Nu kan du bare slette den gamle og tilføje denne :)
11. december 2005 - 14:35
#22
Okay, så er min ovenståene post ligegyldig.. prøv at køre min kode og se om det virker :) for det virker her.
11. december 2005 - 14:35
#23
Altså, du frakaster min og Jakob's løsning, til fordel for en ufleksibel overkill-løsning, der jo godt nok virker, men er tung og tosset??? For så gider jeg ikke følge med mere :)
11. december 2005 - 14:36
#24
ja det gør jeg istedet ACO det er nemmere så er jeg sikker. mvh Mads PS! du skal lige hjælpe mig med opret.php filen for jeg kan ikke se hvor din variabel hører hjemme der?
11. december 2005 - 14:36
#25
jaw >> undskyld lad os nu ikke blive uvenner herinde. mvh Mads
11. december 2005 - 14:37
#26
Nej, nej, det bliver vi skam heller ikke. Men at vælge en løsning, du i fremtiden ikke har mulighed for at ændre opsætning af, den er tungere for serveren at håndtere, og den er sværere at lave. Men har du besluttet dig, så er det bare, at jeg ikke gider kommentere mere, men kan bruge min tid andetsteds :) //OUT!
11. december 2005 - 14:38
#27
Opret.php laver du sådan her: <? echo "<form action=\"\" method=\"POST\">"; if ($_POST[submit]) { if ($_POST[overskrift] == ""){ echo "Du mangler at skrive en overskrift<br>"; } if ($_POST[beskrivelse] == ""){ echo "Du mangler at skrive en beskrivelse<br>"; } if ($_POST[nyhed] == ""){ echo "Du mangler at skrive nyheden<br>"; } else { $dato = date('d/m/Y H:i:s'); mysql_query("INSERT INTO nyhedssystem (overskrift, beskrivelse, nyhed, dato) VALUES ('$_POST[overskrift]', '$_POST[beskrivelse]', '$_POST[nyhed]', '$dato')") or die(mysql_error()); } } echo "Overskrift: <input type=\"text\" name=\"overskrift\">"; echo "Beskrivelse: <input type=\"text\" name=\"beskrivelse\"><br>"; echo "<textarea rows=\"10\" cols=\"60\" name=\"nyhed\"></textarea><br>"; echo "<input type=\"submit\" value=\"Opret\" name=\"submit\">"; echo "</form>"; ?>
11. december 2005 - 14:39
#28
ok sorry! jeg er ikke stærk i det her så jeg tager bare imod råd fra alle sider . Det jeg har fet fra ACO har altid virket fint, så jeg vælge ACO`sløning. Smid også et svar Jaw jeg vil ikke snyde dig for en andel i point!
11. december 2005 - 14:40
#29
Jeg håber skam heller ikke at nogle får sure miner, jeg har bare altid brugt denne metode jaw :-)
11. december 2005 - 14:41
#30
ACO >> den tager i tidspunkt og dato med i det nyheder man laver? mvh Mads
11. december 2005 - 14:42
#31
hov jeg menr den tager IKKE tidpsunkt og dato med i mine nyheder jeg laver? alt andet virker fint! mvh Mads
11. december 2005 - 14:42
#32
Ok. En sidste kommentar så :) Jeg bliver ikke sur. Jeg prøver bare at sige, at Aco's løsning virker, for det vil den uden tvivl gøre, men den er tung og tosset. Hans indsætter datoen dd/mm/YYYY HH:ii:ss - hvilket som sådan er fint. Men hvis du en dag vil have det til at være f.eks. dd.mm.YYYY så ville min løsning være klart nemmere. Og nej tak, ingen point til mig, når du vælger en andens løsning - det er jo 100% dit valg :) Og selvom man "altid har brugt en løsning", betyder det så at man ikke vil lære nye og smartere måde, så man også som programmør kan udvikle sig lidt? :)
11. december 2005 - 14:44
#33
jo det har du nok ret i Jaw men jeg er så meget newbie at jeg vælger de løsninger som jeg umiddelbart får til at virke. Og den løsning her fra ACO er meget tilfredstillende! mvh Mads PS! tak for din tid idet mindste.
11. december 2005 - 14:45
#34
dette er vel korrekt i PHPMyAdmin: overskrift varchar(200) latin1_swedish_ci Nej beskrivelse varchar(200) latin1_swedish_ci Nej nyhed varchar(200) latin1_swedish_ci Nej dato varchar(255) latin1_swedish_ci Nej tager den datoen med hos dig ACO? mvh mads
11. december 2005 - 14:47
#35
Ja det virker hos mig :) Har du indsat denne ? : <? $res = mysql_query("SELECT * FROM nyhedssystem") or die(mysql_error()); while ($row = mysql_fetch_array($res)) { echo "<table border=\"1\" width=\"500\">"; echo "<tr>"; echo "<td>"; echo "<b>Overskrift:</b> "; echo $row['overskrift']. "<br>"; echo "</td>"; echo "</tr>"; echo "<tr>"; echo "<td>"; echo "<b>beskrivelse:</b> "; echo $row['beskrivelse']. "<br>"; echo "</td>"; echo "</tr>"; echo "<tr>"; echo "<td>"; echo "<b>Nyhed:</b> "; echo $row['nyhed']. "<br>"; echo "</td>"; echo "</tr>"; echo "<tr>"; echo "<td>"; echo "<b>dato:</b> "; echo $row['dato']. "<br>"; echo "</td>"; echo "</tr>"; echo "</table>"; echo "<br><br>"; } ?> jaw -> Jo, du har fuldstændig ret i at man skal udvikle sig, jeg mente heller ikke at jeg KUN vil bruge min metode fordi jeg altid har brugt den, jeg vil da sagtens bruge nogle metoder som er bedre hvis jeg kendte dem, derfor vil jeg da også gerne lære "din" metode. Har selv en liste på min computer der indeholder en masse ting som jeg skal ændre på min hjemmeside inden jeg sætter den på nettet. En af punkterne er at gøre database opslagene hurtigere osv. Derfor vil jeg da kigge på din metode :)
11. december 2005 - 14:52
#36
nej det havde jeg glemt LOL jeg er en klaphat til programmering !!! Men der manglede vel også "include "mysql.php";" i dit sidste indlæg ikke? Det virker nu!!! tusind tak ACO ;] mvh Mads
11. december 2005 - 14:53
#37
Jo det gjorde der :) Godt at det virker, selv tak ;)
11. december 2005 - 14:54
#38
tusind tak ACO !!!! --> u saved my day once again....
11. december 2005 - 14:56
#39
:)
11. december 2005 - 14:56
#40
Selv tak...
11. december 2005 - 14:57
#41
ja også tak til dig Jaw, jeg vil gerne smide point til dig i "fri debat".
11. december 2005 - 14:57
#42
Nej, nej, ellers tak. Pointene var skam ikke pointen, dem mangler jeg jo ikke just :)
11. december 2005 - 14:59
#43
tja jeg har allerede givet dig god karma ! så jeg ved ikke rigtig hvordan du kan belønnes. tak er jo som bekendt kun et fattigt ord... :] Men tusind tak for hjælpen og din tid.
Vi tilbyder markedets bedste kurser inden for webudvikling