Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]problem z php i mysql
Forum PHP.pl > Forum > Przedszkole
tomek_i_ola
Witam.
Mam wileki problem z listą mailingową która musze zrobić, a mianowicie mam bazę danych w której jest tabela ml_list i zawiera dwie kolumny ml_id i listname. I po wpisaniu nazwy listy mailingowej nie dodaje nazwy listy, a kolejny rekord dodaje i nie wiec co dalej zrobic :/


  1. CREATE TABLE IF NOT EXISTS ml_lists (
  2. ml_id int(11) NOT NULL AUTO_INCREMENT,
  3. listname varchar(255) NOT NULL DEFAULT '',
  4. PRIMARY KEY (ml_id)
  5. )


  1. <?php
  2. require('config.php');
  3. require('class.SimpleMail.php');
  4.  
  5. $conn = mysql_connect(SQL_HOST, SQL_USER, SQL_PASS)
  6. or die('Nie mogę połączyć się z bazą danych: ' . mysql_error());
  7.  
  8. mysql_select_db(SQL_DB, $conn);
  9.  
  10. if (isset($_POST['action'])) {
  11. switch ($_POST['action']) {
  12. case 'Dodaj nową listę mailingową':
  13. $sql = "INSERT INTO ml_lists (listname) " .
  14. "VALUES ('" . $_P0ST['listname'] . "')";
  15. or die('Nie mogę dodać listy mailingowej. ' . mysql_error());
  16. break;
  17.  
  18. case 'Usuń listę mailingową':
  19. $sql = "DELETE FROM ml_lists WHERE ml_id=" . $_POST['ml_id'];
  20.  or die('Nie mogę usunąć listy mailingowej. ' . mysql_error());
  21. $sql = "DELETE FROM ml_subscriptions " .
  22. "WHERE ml_id=" . $_POST['ml_id'];
  23. or die('Nie mogę usunąć subskrypcji listy mailingowej. ' .
  24. break;
  25.  
  26. case 'Wyślij wiadomość':
  27. if (isset($_POST['msg'], $_POST['ml_id'])) {
  28.  if (is_numeric($_POST['ml_id'])) {
  29. $sql = "SELECT listname FROM ml_lists " .
  30. "WHERE ml_id='" . $_POST['ml_id'] . "'";
  31. $result = mysql_query($sql, $conn)
  32. $row = mysql_fetch_array($result);
  33. $listname = $row['listname'];
  34. } else {
  35. $listname = "Główna";
  36. }
  37.  
  38. $sql = "SELECT DISTINCT usr.email, usr.firstname, usr.user_id " .
  39. "FROM ml_users usr " .
  40. "INNER JOIN ml_subscriptions mls " .
  41. "ON usr.user_id = mls.user_id " .
  42. "WHERE mls.pending=0";
  43. if ($_POST['ml_id'] != 'all') {
  44. $sql  .= " AND mls.ml_id=" . $_P0ST['ml_id'];
  45. }
  46.  
  47. $result = mysql_query($sql)
  48. or die('Nie potrafię uzyskać listy adresów email . ' .
  49.  
  50. $headers = "From: " . ADMIN_EMAIL . "r\n";
  51.  
  52. while ($row = mysql_fetch_array($result)) {
  53. if (is_numeric($_P0ST['ml_id'])) {
  54.  $ft = "Otrzymujesz tę wiadomość jako członek listy mailingowej ";
  55.  $ft .= $listname . ".\n Jeżeli uważasz, że ten list został ";
  56.  $ft .= "wysłany pod zły adres lub\n chcesz usunąć ";
  57.  $ft .= "swój adres z listy wysłkowej. odwiedź poniższy ";
  58.  $ft .= "adres URL:\n";
  59.  $ft .= "http://" . $_SERVER['HTTP_HOST'] .
  60.    dirname($_SERVER['PHP_SELF']) . "/remove.php?u=" .
  61.    $row['user_id'] . "&ml=" . $_POST['ml_id'];
  62. } else {
  63. $ft = "Otrzymujesz tę wiadomość, ponieważ zapisałeś się do jednej ";
  64. $ft .= "lub wielu list mailingowych.\n Odwiedź poniższy ";
  65. $ft .= "adres URL. aby zmienić ustawienia subskrypcji :\n";
  66. $ft .= "http://" . $_SERVER['HTTP_HOST'] .
  67. dirname($_SERVER['PHP_SELF']) . "/user.php?u=" .
  68. $row['user_id'];
  69. }
  70.  
  71. $msg = stripslashes($_POST['msg']) . "\n\n";
  72. $msg .= "----------\n";
  73. $msg .= $ft;
  74.  
  75. $email = new SimpleMail();
  76.  
  77. $email->send($row[`email`],
  78.    stripslashes($_POST['subject']),
  79.    $msg,
  80.    $headers)
  81. or die('Wysłanie listu nie powiodło się.');
  82. }
  83. }
  84. break;
  85. }
  86. }
  87.  
  88. header('Location: admin.php');
  89.  
  90. ?>
Kalinowcyk
Pokaż kod formularza z którego przekazujesz dane, bo jak przypuszczam, idą one właśnie z formularza?
tomek_i_ola
strona formularza z ktorego wysyłam

  1. <?php
  2. require('config.php');
  3. ?>
  4. <html>
  5. <head>
  6. <title>Administracja listami mailingowymi</title>
  7. </head>
  8. <body>
  9. <form method="post" action="admin_transact.php">
  10.  
  11. <p>
  12. Dodaj listę mailingową:<br  />
  13. <input type="text" name="listname" maxlength="255" />
  14. <input type="submit" name="action" value="Dodaj nową listę mailingową" />
  15. </p>
  16.  
  17. <p>
  18. Usuń listę mailingową:<br />
  19. <select name="ml_id">
  20. <?php
  21.  
  22. $conn = mysql_connect(SQL_HOST, SQL_USER, SQL_PASS)
  23. or die('Nie mogę połączyć się z bazą danych: ' . mysql_error());
  24.  
  25. mysql_select_db(SQL_DB, $conn);
  26.  
  27. $sql = "SELECT * FROM ml_lists ORDER BY listname";
  28. $result = mysql_query($sql)
  29. or die('Niepoprawne zapytanie: ' . mysql_error());
  30.  
  31. while ($row = mysql_fetch_array($result)) {
  32. echo "     <option value=\"" . $row['ml_id'] . "\">" . $row['listname'] .
  33. "</option>\n";
  34. }
  35.  
  36. ?>
  37. </select>
  38. <input type="submit" name="action" value="Usuń listę mailiigową" />
  39. </p>
  40.  
  41. </form>
  42.  
  43. <p>
  44. <a href="quickmsg.php">Wyślij szybką wiadomość do użytkowników</a>
  45. </p>
  46.  
  47. </body>
  48. </html>
Kalinowcyk
Wyprintuj sobie zapytanie w taki sposób:

  1. <?php
  2. if (isset($_POST['action'])) {
  3. switch ($_POST['action']) {
  4. case 'Dodaj nową listę mailingową':
  5. $sql = "INSERT INTO ml_lists (listname) " .
  6. "VALUES ('" . $_P0ST['listname'] . "')";
  7. //mysql_query($sql)
  8. //or die('Nie mogę dodać listy mailingowej. ' . mysql_error());
  9. print $sql;
  10. break;
  11. ?>


Myślę, że może to wiele wyjaśnić.
tomek_i_ola
zrobilem tak jak napisales i teraz w ogole nic nie dodaje

wyskakuje tylko cos takiego

INSERT INTO ml_lists (listname) VALUES ('')

tylko ze tyle to ja wiem ale jak zrobic zeby dodalo nazwe
piotrooo89
czy ja dobrze widze? masz tu 0 zamiast O ?

  1. <?php
  2. $sql  .= " AND mls.ml_id=" . $_P0ST['ml_id'];
  3. ?>
tomek_i_ola
Dzieki za pomoc, pomoglo
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.