09. juni 2006 - 11:01
Der er
20 kommentarer
nyhedssystem med kategorier!
Hej folkens Jeg er en nybegynder i PHP, og har kastet mig ud i at programmere et nyhedssystem. Ind til videre har jeg programmeret sådan at man kan skrive en nyhed, sende nyheden ind til min database og til sidst hente nyheden fra min database og vise den på min hjemmeside. Men men men! Jeg vil gerne kunne indele mine nyheder i kategorier. Altså når jeg skriver en nyhed skal jeg have mulighed for at vælge hvilken kategori nyheden handler om. Og når jeg så viser mine nyheder kan jeg vælge kun at vise nyheder fra EN kategori. Mit problem er så at jeg ikke er sikker på hvordan det skal programmeres. Mit gæt er at jeg skal lave en ny tabel i min database, som skal indholde mine nyheds kategorier. For lige at gøre det nemmere for jer poster jeg lige koden til mit nyheds system: SKRIV NYHED ------------------------------------------------------------- <form action="news.php?act=add" method="post"> <table> <tr> <td><strong>Forfatter:</strong></td> <td><input type="text" name="forfatter" size="53"></td> </tr> <tr> <td><strong>Date:</strong></td> <td><input type="text" name="date" size="53"></td> </tr> <tr> <td><strong>Billed:</strong></td> <td><input type="text" name="image" size="53"></td> </tr> <tr> <td><b>Overskrift:</b></td> <td><input type="text" name="overskrift" size="53"></td> </tr> <tr> <td valign="top"><b>Indledning:</b></td> <td><textarea name="indledning" rows="3" cols="40"></textarea></td> </tr> <tr> <td valign="top"><b>Nyhed:</b></td> <td><textarea name="nyhed" rows="13" cols="40"></textarea></td> </tr> <tr> <td></td> <td><input type="submit" name="submit" value="Tilføj Nyhed" /> </td> </tr> </table> </form> ------------------------------------------------------------- GEM NYHED ------------------------------------------------------------- <?php $conn = mysql_connect("localhost", "...", "..."); mysql_select_db("..."); if(isset($_POST['submit']) && $_REQUEST["act"] == 'add'){ $author = addslashes($_POST['forfatter']); $date = addslashes($_POST['date']); $image = addslashes($_POST['image']); $overskrift = addslashes($_POST['overskrift']); $synopsis = addslashes($_POST['indledning']); $nyhed = addslashes($_POST['nyhed']); $insert = mysql_query("INSERT INTO nyhed (forfatter, date, image, overskrift, indledning, nyhed) VALUES ('$author', '$date', '$image', '$overskrift', '$synopsis', '$nyhed')") or die(mysql_error()); $message = '<b>Din nyhed er blevet tilføjet til databasen!</b>'; } echo $message; ?> ------------------------------------------------------------- VIS NYHED: ------------------------------------------------------------- <?php $conn = mysql_connect("localhost", "...", "..."); mysql_select_db("...") or die(mysql_error()); if(is_numeric($_GET['id']) && $_GET['id'] > 0) { $id = mysql_real_escape_string($_GET['id']); $resultat = mysql_query("Select * from nyhed where id = $id limit 1"); if(mysql_num_rows($resultat) == 1) { $raekke = mysql_fetch_array($resultat); echo '<table width="469">'; echo '<tr>'; echo '<td colspan="2"><p style="font-family:arial; font-size:20px; color:#990000">'.$raekke['overskrift'].'</td>'; echo '</tr>'; echo '<tr>'; echo '<td colspan="2"><p style="font-family:arial; font-size:11px; color:#999999">'.$raekke['forfatter'].' - '.$raekke['date'].'</td>'; echo '</tr>'; echo '<tr>'; echo '<td width="302" rowspan="3" valign="top"><p style="font-family:arial; font-size:12px;"><strong>'.$raekke['indledning'].'</strong><br><br>'.$raekke['nyhed'].'</p></td>'; echo '<td width="155" valign="top"><div align="center"><img src=\''.$raekke['image'].'\' border="1"></div></td>'; echo '</tr>'; echo '</table>'; } } else { $resultat = mysql_query("Select * from nyhed order by id DESC limit 1"); if(mysql_num_rows($resultat) > 0) { echo '<table width="224">'; while ($raekke = mysql_fetch_array($resultat)) { echo '<tr>'; echo '<td width="224"><center><img src=\''.$raekke['image'].'\' border="1"></center><tr>'; echo '<td width="224"><a href="nyheder.php?id='.$raekke['id'].'"><strong><p style="font-family:arial; font-size:15px; color:#990000">'.$raekke['overskrift'].'</p></strong></a><tr>'; echo '<td width="224"><p style="font-family:arial; font-size:12px;">'.$raekke['indledning'].'</p></td>'; echo '<table><td width="131"><div align="left"><p style="font-family:arial; font-size:11px; color:#999999">'.$raekke['date'].'</p></div><td>'; echo '<td width="80"><a href="nyheder.php?id='.$raekke['id'].'"><div align="right"><img src="/image/mere.png" border="0"></div</a></td>'; echo '</tr>'; } echo '</table></table>'; } } ?> ------------------------------------------------------------- Ja mit spørgsmål er altså hvordan jeg kan gøre så jeg kan indele mine nyheder i kategorier.
Annonceindlæg fra Admin By Request
Vil du have faste grupper? Og smid lige et dump fra SQL med strukturen.
Er ikke lige sikker på hvad du mener med faste grupper. Men det skal være sådan at jeg kan tilføje kategorier (via min phpmyadmin). CREATE TABLE nyhed ( id int(11) NOT NULL auto_increment, overskrift varchar(100) NOT NULL default '', indledning text NOT NULL, nyhed text NOT NULL, date datetime NOT NULL default '0000-00-00 00:00:00', forfatter varchar(60) NOT NULL default '', image varchar(100) NOT NULL default '', PRIMARY KEY (id) ) TYPE=MyISAM;
Så du får en dropdown boks med faste valg...
Ja det var i den retning jeg tænkte på
Eftersom du siger du er nybegynder vil jeg lige give dig et tip :) Du skriver teksten ud til browseren via echo. I stedet for at lukke strengen efter hver linie kan du godt køre den videre således at det kommer til at se sådan her ud: echo' Hej med dig, nu bryder jeg lige linien så jeg slipper for at skulle slutte echo hver gang jeg skriver en linie '; Det gør det noget nemmere at opdatere tekster og du slipper for en del skriven i din kode :)
FC København Brøndby AaB (Vil så have samtlige SAS ligahold)
Tak for tippet elskermad.dk :)
Jeg kan ikke skrive FuCK desvære... En endnu bedre løsning på alle de der echo... lad være med at blande PHP og HTML sammen... Nogen grund til der kun skal vises en nyhed hvis ingen id er sat???
09. juni 2006 - 11:39
#10
Ah det er fordi at det eksempel jeg har postet her, er fra et sted på siden hvor der kun skal vises en nyhed, altså en slags "top nyhed, med billed".
09. juni 2006 - 11:51
#11
<form action="news.php?act=add" method="post"> <table> <tr> <td><strong>Emne</strong></td> <td><select name="emne"> <option value="Brøndby" SELECTED>BIF RULEZ</option> <option value="Andre">Andre</option> </td></select> </tr> <tr> <td><strong>Forfatter:</strong></td> <td><input type="text" name="forfatter" size="53"></td> </tr> <tr> <td><strong>Date:</strong></td> <td><input type="text" name="date" size="53"></td> </tr> <tr> <td><strong>Billed:</strong></td> <td><input type="text" name="image" size="53"></td> </tr> <tr> <td><b>Overskrift:</b></td> <td><input type="text" name="overskrift" size="53"></td> </tr> <tr> <td valign="top"><b>Indledning:</b></td> <td><textarea name="indledning" rows="3" cols="40"></textarea></td> </tr> <tr> <td valign="top"><b>Nyhed:</b></td> <td><textarea name="nyhed" rows="13" cols="40"></textarea></td> </tr> <tr> <td></td> <td><input type="submit" name="submit" value="Tilføj Nyhed" /></td> </tr> </table> </form> ----------------- <?php $conn = mysql_connect("localhost", "...", "..."); mysql_select_db("..."); if(isset($_POST['submit']) && $_REQUEST["act"] == 'add'){ $author = addslashes($_POST['forfatter']); $date = addslashes($_POST['date']); $image = addslashes($_POST['image']); $overskrift = addslashes($_POST['overskrift']); $synopsis = addslashes($_POST['indledning']); $nyhed = addslashes($_POST['nyhed']); $emne = addslashes($_POST['emne']); $insert = mysql_query("INSERT INTO nyhed (forfatter, date, image, overskrift, indledning, nyhed, emne) VALUES ('$author', '$date', '$image', '$overskrift', '$synopsis', '$nyhed', '$emne')") or die(mysql_error());?> <b>Din nyhed er blevet tilføjet til databasen!</b><? } ?> ------------------------- <?php $conn = mysql_connect("localhost", "...", "..."); mysql_select_db("...") or die(mysql_error()); if (is_numeric($_GET['id']) && $_GET['id'] > 0) { $id = mysql_real_escape_string($_GET['id']); $resultat = mysql_query("SELECT * FROM nyhed WHERE id = $id"); if (mysql_num_rows($resultat) == 1) { $raekke = mysql_fetch_array($resultat);?> <table width="469"> <tr> <td colspan="2"><p style="font-family:arial; font-size:20px; color:#990000"><?=$raekke['overskrift']?></td> </tr> <tr> <td colspan="2"><p style="font-family:arial; font-size:11px; color:#999999"><?=$raekke['forfatter']?> - <?=$raekke['date']?></td> </tr> <tr> <td width="302" rowspan="3" valign="top"><p style="font-family:arial; font-size:12px;"><strong><?=$raekke['indledning']?></strong><br><br><?$raekke['nyhed']?></p></td> <td width="155" valign="top"><div align="center"><img src=\''.$raekke['image'].'\' border="1"></div></td> </tr> </table> <? } } elseif ($_POST['emne']) { $resultat = mysql_query("SELECT * FROM nyhed WHERE emne = '".$_POST['emne']."' ORDER BY id DESC"); if (mysql_num_rows($resultat) > 0) {?> <table width="224"> <? while ($raekke = mysql_fetch_array($resultat)) {?> <tr> <td width="224"><center><img src="<?=$raekke['image']?>" border="1"></center><tr> <td width="224"><a href="nyheder.php?id=<?=$raekke['id']?>"><strong><p style="font-family:arial; font-size:15px; color:#990000"><?=$raekke['overskrift']?></p></strong></a><tr> <td width="224"><p style="font-family:arial; font-size:12px;"><?=$raekke['indledning']?></p></td> </tr> </table> <table> <td width="131"><div align="left"><p style="font-family:arial; font-size:11px; color:#999999"><?=$raekke['date']?></p></div><td> <td width="80"><a href="nyheder.php?id=<?=$raekke['id']?>"><div align="right"><img src="/image/mere.png" border="0"></div</a></td> </tr> <? }?> </table> <? } } else { $resultat = mysql_query("SELECT * FROM nyhed ORDER BY id DESC"); $resemner = mysql_query("SELECT DISTINCT(emne) FROM nyhed"); if (mysql_num_rows($resultat) > 0) {?> <table width="224"> <tr> <td colspan="3"><form action="<?=$PHP_SELF?>" method="post"><select name="emne"><?while ($emne = mysql_fetch_array($resemner)) {?><option value="<?$emne['emne']?>"><?$emne['emne']?></option><?}?></select></form></td> </tr> <? while ($raekke = mysql_fetch_array($resultat)) {?> <tr> <td width="224"><center><img src="<?=$raekke['image']?>" border="1"></center><tr> <td width="224"><a href="nyheder.php?id=<?=$raekke['id']?>"><strong><p style="font-family:arial; font-size:15px; color:#990000"><?=$raekke['overskrift']?></p></strong></a><tr> <td width="224"><p style="font-family:arial; font-size:12px;"><?=$raekke['indledning']?></p></td> </tr> </table> <table> <td width="131"><div align="left"><p style="font-family:arial; font-size:11px; color:#999999"><?=$raekke['date']?></p></div><td> <td width="80"><a href="nyheder.php?id=<?=$raekke['id']?>"><div align="right"><img src="/image/mere.png" border="0"></div</a></td> </tr> <? }?> </table> <? } } ?> ------------------------------- CREATE TABLE `nyhed` ( `id` int(11) NOT NULL, `overskrift` varchar(100) NOT NULL default '', `indledning` text NOT NULL, `nyhed` text NOT NULL, `date` datetime NOT NULL default '0000-00-00 00:00:00', `forfatter` varchar(60) NOT NULL default '', `image` varchar(100) NOT NULL default '', `emne` varchar(30) NOT NULL, PRIMARY KEY (`id`) ) TYPE=MyISAM AUTO_INCREMENT=1 ;
09. juni 2006 - 12:06
#12
Hvis vi nu siger jeg KUN vil vise nyheder med emnet "Brøndby" Hvad skal jeg så skrive i: $resultat = mysql_query("SELECT * FROM nyhed WHERE emne = '".$_POST['emne']."' ORDER BY id DESC");
09. juni 2006 - 12:09
#13
Erstatte ".$_POST['emne']." med det du sætter i databasen for BIF <option value="Brøndby" SELECTED>BIF RULEZ</option> <- det er det der står i value.
09. juni 2006 - 12:18
#14
Stiller lige et dumt spørgsmål :) Nu skrev jeg så: $resultat = mysql_query("SELECT * FROM nyhed WHERE emne = '".Brøndby."' ORDER BY id DESC"); Men det virkede ikke
09. juni 2006 - 12:23
#15
Nej, det gør det ikke, gør som jeg skrev...
09. juni 2006 - 12:34
#16
Nu har jeg prøvet at skrive alt muligt men skriver ikke det rigtige. anyways smid et svar :)
09. juni 2006 - 12:38
#17
$resultat = mysql_query("SELECT * FROM nyhed WHERE emne = 'Brøndby' ORDER BY id DESC"); skulle du prøve med... Virker det ikke, så skal du nok kigge på noget med tegnsæt i din SQL (kræver dog nyere database.) Og behold du bare dine point selv.
09. juni 2006 - 12:41
#18
Mange tak for hjælpen :) forsat go' dag!
09. juni 2006 - 12:42
#19
ilm
12. juni 2006 - 13:17
#20
Lukker
Vi tilbyder markedets bedste kurser inden for webudvikling