Ga naar inhoud

Bericht wordt niet toegevoegd???


anoniem

Aanbevolen berichten

Ik heb de volgende twee bestanden. Vanuit news_new.php wil ik een bericht aanmaken en verzenden naar news_list.php waar hij gelijk wordt weergegeven en naar de database wordt verzonden. Alleen de laatste twee opdrachten voert hij niet uit. Kan iemand mij verder helpen, ik kan de fout niet vinden. ============= news_new.php ============= [code:1:da0dae5150] <FORM ACTION="news_list.php" METHOD="POST"> <table width="550" border="1" align="center" cellpadding="0" cellspacing="2" bordercolor="#FFFFFF" bgcolor="#999999"> <tr> <th scope="row"><div align="center"><span class="style1">Berichttitel</span></div></th> <td width="350"> <input type="text" name="news_header" size=30 maxlength=120></td> </tr> <tr> <th scope="row"><div align="center"><span class="style1">Datum/tijd</span></div></th> <td> <input type="text" name="news_datetime" value="<?php echo date("Y-m-d H:i:s")?>" size="19" maxlength="19"></td> </tr> <tr> <th width="200" scope="row"><div align="center"><span class="style1">Berichttekst</span></div></th> <td> <textarea name="news_main" cols="60" rows="10"></textarea></td> </tr> <tr> <th colspan="2" scope="row"> <input type="hidden" name="action" value="insert"> <input type="submit" name="insert" value="Voeg bericht toe"></th> </tr> </table> </FORM> [/code:1:da0dae5150] ============== news_list.php ============== [code:1:da0dae5150] <?php include("../nieuws/config.php"); $news_SQL = "SELECT * , DATE_FORMAT(news_datetime, '%d-%m-%Y %H:%i') AS nieuws_datumtijd FROM news ORDER BY news_datetime DESC"; $news_result = mysql_query($news_SQL); ?> <?php // Dit deel zorgt voor de weergave van de berichten. while($news = mysql_fetch_array($news_result)) { if($_GET['action']=="delete") { // Er is op de hyperlink Verwijderen geklikt: record verwijderen $news_SQL_del = "DELETE FROM news WHERE news_ID=$news_ID"; $bool = mysql_query($news_SQL_del); if($bool == 1) echo "<script LANGUAGE=Javascript>window.alert('Het bericht is verwijderd.')</script>"; if($bool <> 1) echo "<script LANGUAGE=Javascript>window.alert('Er is een fout opgetreden bij het verwijderen.')</script>"; } if($_POST['action']=="insert") { // Regeleinden in de hoofdtekst omzetten in HTML-regeleinden $news_main = nl2br($news_main); $news_main = eregi_replace("\n", "", $news_main); $news_SQL_insert = 'INSERT INTO news (news_header, news_datetime, news_main) VALUES ("'. $_POST['news_header'] . '" , "'. $_POST['news_datetime'] . '", "'. $_POST['news_main']. '")'; $bool = mysql_query($news_SQL_insert); if($bool == 1) echo "<script language=javascript>window.alert('Het bericht is toegevoegd.')</script>"; if($bool <> 1) echo "<script language=javascript>window.alert('Er is een fout opgetreden bij het toevoegen van het bericht.')</script>"; } ?> [/code:1:da0dae5150] Alvast heel erg bedankt
Link naar reactie
Staat er toevallig nog niets in je tabel? Je hebt de opdrachten namelijk in de lus zitten waarmee je door de berichten loopt. Het lijkt me overigens sowieso geen goed idee om deze bewerkingen binnen de lus te zetten, ze worden zo voor elk gevonden record uitgevoerd en dat betekent dus bij een gevulde table steeds meer inserts na elke insert actie (telkens een verdubbeling van het aantal records).
Link naar reactie
[quote:d235d20570="wpbremer"]nee er staan nog geen berichten in de database. Is dit het probleem?[/quote:d235d20570] Ja, doordat er geen berichten in je database staan zal je ook niet in de lus terechtkomen waardoor dus ook de bewerkingen binnen die lus niet worden uitgevoerd. [quote:d235d20570="wpbremer"]en hoe zou jij het dan anders opzetten?[/quote:d235d20570] Eerst alle bewerkingen uitvoeren en daarna pas de presentatie van de items doen. Dus als ik je code er even bij pak dan wordt dat iets als: [code:1:d235d20570] <?php include("../nieuws/config.php"); // voer de gekozen bewerking uit if($_GET['action']=="delete") { // Er is op de hyperlink Verwijderen geklikt: record verwijderen $news_SQL_del = "DELETE FROM news WHERE news_ID=$news_ID"; $bool = mysql_query($news_SQL_del); if($bool == 1) echo "<script LANGUAGE=Javascript>window.alert('Het bericht is verwijderd.')</script>"; if($bool <> 1) echo "<script LANGUAGE=Javascript>window.alert('Er is een fout opgetreden bij het verwijderen.')</script>"; } if($_POST['action']=="insert") { // Regeleinden in de hoofdtekst omzetten in HTML-regeleinden $news_main = nl2br($news_main); $news_main = eregi_replace("\n", "", $news_main); $news_SQL_insert = 'INSERT INTO news (news_header, news_datetime, news_main) VALUES ("'. $_POST['news_header'] . '" , "'. $_POST['news_datetime'] . '", "'. $_POST['news_main']. '")'; $bool = mysql_query($news_SQL_insert); if($bool == 1) echo "<script language=javascript>window.alert('Het bericht is toegevoegd.')</script>"; if($bool <> 1) echo "<script language=javascript>window.alert('Er is een fout opgetreden bij het toevoegen van het bericht.')</script>"; } // toon de berichten uit de database $news_SQL = "SELECT * , DATE_FORMAT(news_datetime, '%d-%m-%Y %H:%i') AS nieuws_datumtijd FROM news ORDER BY news_datetime DESC"; $news_result = mysql_query($news_SQL); // Dit deel zorgt voor de weergave van de berichten. while($news = mysql_fetch_array($news_result)) { echo '<h2>', $news['news_header'], '</h2>'; echo '<p>', $news['news_main'], '</p>'; } ?> [/code:1:d235d20570] Overigens zie ik in je code nog wat andere punten die voor verbetering vatbaar zijn, bijv: [list:d235d20570] [*:d235d20570]controleer [b:d235d20570]alle[/b:d235d20570] input voordat je deze gebruikt in een database query (bijv. de $news_id in het DELETE statement) [*:d235d20570]In een aantal gevallen gebruik je meerdere if-statements. Je kan ook gebruik maken van [color=darkred:d235d20570]if (a) { // is a } else { // is niet a }[/color:d235d20570] [*:d235d20570]de correcte wijze om een javascript-blok toe te voegen is: [color=darkred:d235d20570]<script type='text/javascript'>[/color:d235d20570]......enz [/list:u:d235d20570]
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...