Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Pętla w mail
Forum PHP.pl > Forum > Przedszkole
Wykrywacz
Mam do was pytanie co jest nie tak w tej pętli
znaczy się jeżeli w formularzu wcześniej pole email jest wypełnione to wszystko idzie
jeżeli nie to wywala błąd
Pętla wygląda tak
  1. <?php
  2.  if ($email = ''){
  3. $mail->AddAddress('xx@xx.pl');
  4. $mail->AddAddress('jyy@yy.pl');
  5. $mail->AddAddress('zzl@zze.pl');
  6.  }
  7.  else {
  8.  $mail->AddAddress('xx@xx.pl');
  9. $mail->AddAddress('jyy@yy.pl');
  10. $mail->AddAddress('zzl@zze.pl');
  11. $mail->AddAddress("$email"); }
  12. ?>
nospor
a czy nie powinno byc:
if ($email == ''){
?
a najlepiej juz:
if ($_POST['email'] == ''){
smile.gif
Wykrywacz
Dalej mi nie chodzi

  1. <?php
  2. if ($_POST['email'] == ''){
  3. $mail->AddAddress('wxx@z.pl');
  4.  // $mail->AddAddress('jyy@z.pl');
  5.  // $mail->AddAddress('zz@z.pl');
  6.  }
  7.  else
  8.  $mail->AddAddress('xx@xz.pl');
  9.  // $mail->AddAddress('jz@xz.pl');
  10.  // $mail->AddAddress('xz@xz.pl');
  11. $mail->AddAddress("$email");
  12. ?>


spójż proszę.
nospor
  1. <?php
  2.  
  3. if ($_POST['email'] == ''){
  4. $mail->AddAddress('wxx@z.pl');
  5.  // $mail->AddAddress('jyy@z.pl');
  6.  // $mail->AddAddress('zz@z.pl');
  7.  }
  8.  else {
  9.  $mail->AddAddress('xx@xz.pl');
  10.  // $mail->AddAddress('jz@xz.pl');
  11.  // $mail->AddAddress('xz@xz.pl');
  12. $mail->AddAddress("$email");}
  13.  
  14. ?>

zjadles {} po else
Wykrywacz
Zjadłem już wszystko działa.

A mam jeszcze jedno.
Kolejno
1.Wypełnia się raport
2.Dane lecą do DB.
3.Zostaje wysłany mail.

jak zrobić żeby wyciągało aktolanie wsadzony Id pola (między 2. a 3.) i zwróciło gołanczając do maila. Tak aby potem można było zidentyfikować maila, z tym co sobie wyciągne w panelu administracyjnym.

Db ma autonumerowanie na polu ID.

// chodzi jak zrobić żeby wyciągał ID aktualnie dodanego rekord do db.
Wykrywacz
Możecie zobaczyć co jest źle w tym zapytaniu?

  1. <?php
  2. $i = mysql_query("select max(id) from raporty");
  3.  
  4. while ($row = mysql_fetch_array($i, MYSQL_ASSOC)) {
  5.  $id = ($row["id"]);
  6.  }
  7. ?>


Efekt jest że mi nic nie wyświetla (nazwa tablicy jest dobra smile.gif )
nospor
  1. <?php
  2. while ($row = mysql_fetch_array($i, MYSQL_ASSOC)) {
  3.  print_r($row);
  4.  }
  5. ?>
a bedziesz wiedzial czemu nic ci nie wyswietla smile.gif
Wykrywacz
No wywalił mi
Kod
Array ( [max(id)] => 51 )


Czyli jednak kuma. Jak na moj gust.
Ake jak podłacze to pod zmienną $id to wyświetla w najlepszym wypadku samo
Kod
Array
kszychu
  1. SELECT max(id) AS id
  2. FROM raporty
Wykrywacz
Mam jeszcze tylko małe pytanie:
Mam:
  1. <?php
  2. $result = mysql_query("SELECT * FROM raporty")
  3.  echo '<form action="miel.php" method="post"> ' ;
  4.  
  5. echo '<table border="1">';
  6. while ($row = mysql_fetch_array($result)){
  7. echo '<tr>';
  8. echo '<td>'.$row["id"].'</td>', '<td>'.$row["nazwisko"].'</td>','<td>'.$row["dzial"].'</td>','<td>'.$row["data_od"].'</td>', '<td>'.$row["data_do"].'</td>'
  9.  ,'<td>'.$row["ws"].'<td>', '<td>'.$row["wc"].'<td>', '<td>'.$row["ips"].'<td>','<td>'.$row["bindan"].'<td>', '<td>'.$row["wss"].'<td>', '<td>'.$row["wsi"].'<td>'
  10.  ,'<td>'.$row["park"].'<td>', '<td>'.$row["wt_t"].'<td>','<td>'.$row["szy"].'<td>','<td>'.$row["klient"].'<td>', '<td>'.$row["tymcz"].'<td>', '<td>'.$row["wsi"].'<td>','<td>'.$row["kodex"].'<td>','<td>'.$row["time"].'<td>',
  11.  '<td>'.$row["wykonywany"].'<td>','<td>'.$row["zrobiony"].'</td>';
  12.  
  13.  
  14. echo '<td><SELECT NAME="wyk">
  15.  <OPTION>
  16.  <OPTION>Asia
  17.  <OPTION>Marek
  18. <OPTION>Wojtek
  19.  
  20. </SELECT></td>';
  21. echo '<td><SELECT NAME="zrob">
  22.  <OPTION>
  23.  <OPTION>Asia
  24.  <OPTION>Marek
  25. <OPTION>Wojtek
  26. </SELECT></td>';
  27. echo '</tr>';
  28. }
  29. echo '</table>';
  30. echo '<INPUT TYPE="submit" VALUE="Modyfikuj">' ;
  31.  echo '</FORM>';
  32. ?>


Teraz w czym problem, przez te dwa folmularzowe pola, chce wprowadzać do DB wartości. Niestety tworzy to nowe wpisy a nie dodaje do już istniejących , skrypt mielacy wygląda tak:
  1. <?php
  2. $wyk=$HTTP_POST_VARS['wyk'];
  3. $zrob=$HTTP_POST_VARS['zrob'];
  4.  
  5. $username = "xxx";
  6. $password = "xxx";
  7. $hostname = "xxx";
  8. $dbh = mysql_connect($hostname, $username, $password)
  9.  
  10. mysql_select_db('tetatech')
  11.  
  12. $zapytanie = mysql_query("insert into raporty (wykonywany,zrobiony)
  13. values ('$wyk','$zrob')")
  14. ?>
nospor
ciekawe dlaczego... moze dlatego, ze do modyfikacji sluzy update a nie insert?
Wykrywacz
Zmieniłem to na
  1. <?php
  2.  
  3. $wyk=$HTTP_POST_VARS['wyk'];
  4. $zrob=$HTTP_POST_VARS['zrob'];
  5.  
  6. $username = "xx";
  7. $password = "txx";
  8. $hostname = "xhost";
  9. $dbh = mysql_connect($hostname, $username, $password)
  10.  
  11.  
  12. $zapytanie = mysql_query("update into raporty (wykonywany)
  13. values ("$wyk")")
  14.  
  15. $zapytanie2 = mysql_query("update into raporty (zrobiony)
  16. values ($zrob)")
  17. ?>

nie pokazuje błędów, ale jak próbuje zobaczyć czy dobrze wpisało to okazuje się
że
  1. <?php
  2. <td>'.$row["wykonywany"].'<td>','<td>'.$row["zrobiony"].'</td>';
  3. ?>

Nic tam niema (niemam fizycznego dostępu do mysql'a tylko przez php'a)
DawidF
Proponuję poczytać o poleceniu UPDATE w manualu

Nie ma tam nic takiego, jak UPDATE INTO...
Wykrywacz
Dobra to mam dobrze, mam teraz pytanie budowa updata to:
  1. <?php
  2.  
  3. $zapytanie = mysql_query("update raporty set wykonywany=('$wyk') where id=('$id')")
  4. ?>


Jak zrobić żeby odnosił się do odpowiedniejgo ID. używając powiedzmy tego
  1. <?php
  2. $id
  3. ?>
mike
~Wykrywacz stąpasz po cienkiej linii lenistwa i niechęci do manuala. Jeszcze jedno takie pytanie to Ci wlepię ostrzeżenie za to.
Dostałeś linka. Widziałeś w składni jakieś nawiasy? Ja nie.

A to Ci pomoże wstawić $id: Łańcuchy znaków (string)
Wykrywacz
Przepraszam.

Ostatnie pytanie:
Do wprowadzania mam 2 formularze, przez które robie update'a. Niestety wogóle mi nic nie przesyłają:
  1. <?php
  2.  echo '<form action="miel.php" method="post">' ;
  3. ?>

  1. <?php
  2. echo '<td> <INPUT TYPE="text" NAME="wyk" size="5"><INPUT TYPE="submit" VALUE="Modyfikuj" size="7"></INPUT></td>' ;
  3. echo '<td> <INPUT TYPE="text" NAME="zrob" size="5"><INPUT TYPE="submit" VALUE="Modyfikuj"></td>'; echo '</FORM>';
  4. ?>

miel.php
  1. <?php
  2.  
  3. $wyk=$HTTP_POST_VARS['wyk'];
  4. $zrob=$HTTP_POST_VARS['zrob'];
  5. $id=$HTTP_POST_VARS['id'];
  6.  
  7. $username = "xx";
  8. $password = "xx";
  9. $hostname = "lx";
  10. $dbh = mysql_connect($hostname, $username, $password)
  11.  
  12. mysql_select_db('tetatech')
  13.  
  14. $zapytanie = mysql_query("update raporty set wykonywany='$wyk' where id=3")
  15.  
  16. /*$zapytanie2 = mysql_query("update raporty set zrobiony='$zrob'where id=$id")
  17. or die(mysql_error());*/ drugi narazie pomijam
  18. ?>


Stringi wedle tego co pisze w manualu i mojej książce są dobrze. Teoretycznie przez formularz powinny iść dane. idą puste. Jeżeli
  1. <?php
  2. '$wyk'
  3. ?>
zamienie powiedzmy na
  1. <?php
  2. 'Wojtek'
  3. ?>
to wsadza bez problemów.
nospor
moze zamiast $HTTP_POST_VARS uzyj $_POST

edit: ta sprawa rozwiązana. Wykrywacz w petli ciągle generowal </form> smile.gif
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.