login  Naam:   Wachtwoord: 
Registreer je!
 Forum

scrijven in de mysql

Offline AN_ALIEN - 20/10/2004 14:11
Avatar van AN_ALIENGouden medaille

Grafische beginner
wie kan me helpen dit scriptje te laten werken.
  1. <form action"newsflash.php" method="post" name="newsflash">
  2. <table border="0">
  3. <tr>
  4. <td>Title</td>
  5. <td><input type="text" name="title" maxlength="50"></td>
  6. </tr>
  7. <tr>
  8. <td>Content</td>
  9. <td><input type="text" name="content" maxlength="50"></td>
  10. </tr>
  11. <tr>
  12. <td>link name</td>
  13. <td><input type="text" name="link" maxlength="50"></td>
  14. </tr>
  15. <tr>
  16. <td>URL</td>
  17. <td><input type="text" name="url" maxlength="50"></td>
  18. </tr>
  19. </table>
  20. <input type="submit" name="submit" value="Submit">
  21. <input type="reset" name="reset" value="reset">
  22. </form>
  23. <?php
  24. mysql_connect("localhost","user","pass");
  25. mysql_select_db("dbnaam");
  26.  
  27. if($_POST['submit'])
  28. {
  29. $title = "$_POST['title']";
  30. $content = "$_POST['content']";
  31. $link = "$_POST['link']";
  32. $url = "$_POST[''url]";
  33.  
  34. $query = "INSERT INTO newsflash (title, content, link, url) VALUES ('$title', '$content', '$link', '$url')";
  35. mysql_query($query) or die (mysql_error());
  36.  
  37. echo "newsflash has been send.";
  38. }
  39.  
  40. ?>


bij voorbaat dank:ooh:

13 antwoorden

Gesponsorde links
Offline Maarten - 20/10/2004 14:14 (laatste wijziging 20/10/2004 14:16)
Avatar van Maarten Erelid
  1. <?php
  2. mysql_connect("localhost","user","pass");
  3. mysql_select_db("dbnaam");
  4.  
  5. if(isset($_POST['submit']))
  6. {
  7. $title = $_POST['title'];
  8. $content = $_POST['content'];
  9. $link = $_POST['link'];
  10. $url = $_POST['url'];
  11.  
  12. $query = "INSERT INTO newsflash (title, content, link, url) VALUES ('".$title."', '".$content."', '".$link."', '".$url."')";
  13. mysql_query($query) or die (mysql_error());
  14.  
  15. echo "newsflash has been send.";
  16. }
  17.  
  18. ?>
Fouten: Je $_POST[''url] was niet echt juist, de quotes stonden al verkeerd.

Verder: variabelen niet binnen quotes plaatsen.
Offline thomas___ - 20/10/2004 14:20 (laatste wijziging 20/10/2004 14:22)
Avatar van thomas___ PHP interesse je zend met dit script 4var's via de post-method naar je script:
- title
- content
- link
- url

Maar je zend geen var submit mee! Daar detecteer je nu juist op!
  1. <?
  2. if($_POST['submit'])
  3. {
  4. $query = "INSERT INTO newsflash (title, content, link, url) VALUES ('$_POST[title]', '$_POST[content]', '$_POST[link]', '$_POST[url]')";
  5. mysql_query($query) or die (mysql_error());
  6.  
  7. echo "newsflash has been send.";
  8. }
  9. ?>

wordt dus dit...
  1. <?
  2. if($_POST['title'] AND $_POST['content'] AND $_POST['link'] AND $_POST['url']) { // hier detecteer je of al je variablen een waarde hebben, dus al deze velden die hier staan zijn dus verplicht in te vullen. je moet maar verwijderen wat wel of niet verplicht is!
  3. $query = "INSERT INTO newsflash (title, content, link, url) VALUES ('$_POST[title]', '$_POST[content]', '$_POST[link]', '$_POST[url]')";
  4. mysql_query($query) or die (mysql_error());
  5.  
  6. echo "newsflash has been send.";
  7. }
  8. ?>
Offline Maarten - 20/10/2004 14:21 (laatste wijziging 20/10/2004 14:29)
Avatar van Maarten Erelid heh thomas wat zeg je nou? Zijn knop heet SUBMIT, dus geeft hij wel een mee..
En je moet je vars BUITEN de quotes plaatsen...
Offline thomas___ - 20/10/2004 14:29
Avatar van thomas___ PHP interesse Idd, je hebt gelijk!
Ik detecteer namelijk nooit op deze manier... maar ik gaf toch geen verkeerd alternatief?
Je kan da mss int vervolg gewoon even meedelen en ni direct op iemand zn kap zitten!

Thomas
Offline xSc - 20/10/2004 14:33 (laatste wijziging 20/10/2004 14:42)
Avatar van xSc Onbekend Murfy, je hebt gelijk. Zeg het voortaan wat netter alsjeblieft.

Maar Thomas zit wel in de goede richting:

- Controleer eerst of je $_POST[] / $_GET[]-var's wel gevuld zijn met isSet().
- Kopieer $_POST[], $_GET[] en $_SERVER[]-vars niet naar andere var's maar gebruik ze rechtstreeks.
- Gebruik zoals Murfy / Thomas de functie isSet() om te controleren of een var is 'geset'.
- Geef logisch variabele namen, die beginnen met de eerste letter van het type: integer: $iMijnInteger; string: $sMijnString; array: $aMijnArray, enz..
- Zorg voor goede foutafhandeling:

if (!$rSelectNewsInfo = mysql_query("SELECT enz.")) {
echo 'Kan het nieuws niet opvragen';
}

dus geen or die() gebruiken.
- Variabelen buiten quotes houden, ook in je query:

$query = "INSERT INTO newsflash (title, content, link, url) VALUES ('$_POST[title]', '$_POST[content]', '$_POST[link]', '$_POST[url]')";
mysql_query($query) or die (mysql_error());

wordt:

  1. <?php
  2. if (!mysql_query("INSERT INTO newsflash (titel, content, link, url) VALUES('" . $_POST['title'] . "', '" . $_POST['content'] . "', '" . $_POST['link'] . "', '" . $_POST['content'] . "', '" . $_POST['url'] . "')")) {
  3. echo 'Kan het nieuws niet toevoegen!';
  4. }
  5. else {
  6. //
  7. }
  8. ?>


Let ook waar je quotes zet: dus niet: $_POST[url], maar $_POST['url']. Alleen cijfers tussen de blokhaken moeten zonder quotes.

EDIT:

FangorN, ja is waar.

Nogmaals: zorg ook voor goede foutafhandeling:

mysql_connect("localhost","user","pass");
mysql_select_db("dbnaam");

  1. <?php
  2. if (!$rConnectMySQL = mysql_connect('localhost', 'user', 'pass')) {
  3. echo 'Kan geen verbinding maken met mysql-server';
  4. }
  5. else {
  6. if (!$rSelectDB = mysql_select_db('dbnaam')) {
  7. echo 'Kan de DB niet selecteren';
  8. }
  9. else {
  10. //
  11. }
  12. }
  13. ?>
Offline Thomas - 20/10/2004 14:35 (laatste wijziging 20/10/2004 14:35)
Avatar van Thomas Moderator en
action"newsflash.php"
moet
action="newsflash.php"
worden lijkt me.
Offline AN_ALIEN - 20/10/2004 17:46
Avatar van AN_ALIEN Gouden medaille

Grafische beginner
wat ik nu begrepen heb:
  1. <form action="newsflash.php" method="post" name="newsflash">
  2. <table border="0">
  3. <tr>
  4. <td>Title</td>
  5. <td><input type="text" name="title" maxlength="50"></td>
  6. </tr>
  7. <tr>
  8. <td>Content</td>
  9. <td><input type="text" name="content" maxlength="50"></td>
  10. </tr>
  11. <tr>
  12. <td>link name</td>
  13. <td><input type="text" name="link" maxlength="50"></td>
  14. </tr>
  15. <tr>
  16. <td>URL</td>
  17. <td><input type="text" name="url" maxlength="50"></td>
  18. </tr>
  19. </table>
  20. <input type="submit" name="submit" value="Submit">
  21. <input type="reset" name="reset" value="reset">
  22. </form>
  23. <?php
  24. mysql_connect("localhost","user","pass");
  25. mysql_select_db("dbname");
  26.  
  27. if(isset($_POST['submit']))
  28. {
  29. $title = "$_POST['title']";
  30. $content = "$_POST['content']";
  31. $link = "$_POST['link']";
  32. $url = "$_POST['url']";
  33.  
  34. $query = "INSERT INTO newsflash (title, content, link, url) VALUES ('".$title"', '".$content"', '".$link"', '".$url"')";
  35. mysql_query($query) or die (mysql_error());
  36.  
  37. echo "newsflash has been send.";
  38. }
  39.  
  40.  
  41.  
  42. ?>

zou dit moeten werken maar dat doet het niet 
Offline Maarten - 20/10/2004 17:52
Avatar van Maarten Erelid $title = "$_POST['title']";
$content = "$_POST['content']";
$link = "$_POST['link']";
$url = "$_POST['url']";


buiten quotes zetten... die " verwijderen dus.
Offline DRUNK - 20/10/2004 17:54
Avatar van DRUNK PHP gevorderde Variablen buiten ""! dus NIET $title = "$_POST['title']"; maar $title = $_POST['title'] vooral met array's ($_GET / $_POST / $_COOKIE ed.) werkt dit niet. Pas ook de tip's van Henri eens toe, hij andwoord ook niet voor niets.

  1. <?php // hierboven nog even je HTML plakken!
  2. if (!mysql_connect("localhost","user","pass")) {
  3. die('DB vrbinding mislukt!');
  4. }
  5. if (!mysql_select_db("dbname")) {
  6. die('Kan DB niet selecteren!');
  7. }
  8. if(isset($_POST['submit'])) {
  9.  
  10. $title = $_POST['title'];
  11. $content = $_POST['content'];
  12. $link = $_POST['link'];
  13. $url = $_POST['url'];
  14.  
  15. if (!mysql_query("INSERT INTO newsflash (title, content, link, url) VALUES ('".$title"', '".$content"', '".$link"', '".$url"')")) {
  16. die('INSERT query mislukt!');
  17. }
  18. echo "newsflash has been send.";
  19. }
  20.  
  21. ?>
Offline Maarten - 20/10/2004 17:55
Avatar van Maarten Erelid Idd, meestal gaat het over kleine onslordigheden. Mss dat je een oudere versie van PHP hebt ofzo en dat hij het niet wilt accepteren.
Offline cowbeast - 20/10/2004 19:53
Avatar van cowbeast Onbekend die gw
<?
include('config.php'); //hier steek je db conectie uithalen!
if(isset($_POST['submit'])) {
//hier het script voor in de db
} else {
// hier het formulier
}
?>
Vind ik de gemakelijkste manier en er moet ook geen action staan! Dus hw <form action="" name"naamvanhetfrm" method="post">

Greetz en suc6 
Offline AN_ALIEN - 22/10/2004 13:24
Avatar van AN_ALIEN Gouden medaille

Grafische beginner
leg is uit: hoe werkt dat "isset" ik weet wel als je "!isSet" hebt dat hij dat als eerte doet.

en dat else is om aan te geven waat hij de gegevens uit moet halen?


ps: sorry maar ik ben nog nieuw voor php.
Offline Maarten - 22/10/2004 13:32
Avatar van Maarten Erelid http://www.site...amp;id=230
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.297s