Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql][php] Problem z if
Forum PHP.pl > Forum > Przedszkole
mihipoznan
Jak porównać dwa wyrazy(wyniki) z bazy danych ? Próbowałem if ale coś nie wychodzi..

  1. <?php
  2. while($wiersz = mysql_fetch_array($result, MYSQL_ASSOC)) {
  3. if {$wiersz['pierwszy']} == {$wiersz['drugi']} {
  4. echo "{$wiersz['pierwszy']}";
  5. }else{
  6. echo""; 
  7. }
  8. ?>


Po prostu przed { dać echo ?
piotrooo89
ja bym to zrobił tak:

  1. <?php
  2. while($wiersz = mysql_fetch_array($result, MYSQL_ASSOC)) 
  3. {
  4. if ($wiersz['pierwszy'] == $wiersz['drugi'])
  5. {
  6. echo $wiersz['pierwszy'];
  7. }
  8. else
  9. {
  10. echo""; 
  11. }
  12. ?>
mihipoznan
Hmm.. a wie ktoś gdzie tu jest błąd ?

  1. <?
  2. $drugi = $_POST['drugi'];
  3. $pierwszy = $_POST['pierwszy'];
  4. if($_POST['typ'] == 1){
  5. $tabela = "kupno";
  6. }else{
  7. $tabela = "sprzedaz";
  8. }
  9. if ($_POST['pierwszy'] == $_POST['drugi']) {
  10. mysql_query("INSERT INTO $tabela (pierwszy) VALUES ('$pierwszy')")
  11. }else{
  12. mysql_query("INSERT INTO $tabela (drugi) VALUES ('$drugi')")
  13. }
  14. ?>
piotrooo89
warunek jest taki że musisz poprawnie przesyła dane-poprawnie to znaczy muszą być w tablicy. a co to tego to może taka mała poprawka:

  1. <?php
  2. $drugi = $_POST['drugi'];
  3. $pierwszy = $_POST['pierwszy'];
  4. if($_POST['typ'] == 1)
  5. {
  6. $tabela = "kupno";
  7.  
  8.  if ($pierwszy == $_drugi) 
  9.  {
  10.  mysql_query("INSERT INTO $tabela (pierwszy) VALUES ('".$pierwszy."')");
  11.  }
  12.  else
  13.  {
  14.  mysql_query("INSERT INTO $tabela (drugi) VALUES ('".$drugi."')");
  15.  }
  16. }
  17. else
  18. {
  19. $tabela = "sprzedaz";
  20.  
  21. if ($pierwszy == $_drugi) 
  22. {
  23. mysql_query("INSERT INTO $tabela (pierwszy) VALUES ('".$pierwszy."')");
  24. }
  25. else
  26. {
  27. mysql_query("INSERT INTO $tabela (drugi) VALUES ('".$drugi."')");
  28. }
  29. }
  30. ?>

zmienna tabela nie była widoczna po if'ie
mihipoznan
Okej, dzięki, ale później jest kolejne zalożenie i to wygląda tak:

  1. <?php
  2. $drugi = $_POST['drugi'];
  3. $pierwszy = $_POST['pierwszy'];
  4. if($_POST['typ'] == 1){
  5. $tabela = "kupno";
  6. }else{
  7. $tabela = "sprzedaz";
  8. }
  9. if( mysql_query("INSERT INTO $tabela (firma, pierwszy, drugi, opis, ilosc , cena, gg, skype, tel, imie, email, wo
    j, link_obrazek, ip) VALUES ('"
    .$HTTP_SESSION_VARS['login']."', '$pierwszy', '$drugi', '$opis', '$ilosc', '$cena', '$gg', '$skype', '$tel', '".$HTTP_SESSION_VARS['imie']."', '".$HTTP_SESSION_VARS['email']."', '".$HTTP_SESSION_VARS['woj']."', '".$HTTP_SESSION_VARS['name']."', '$ip')")){
  10. echo ("<b>Twoja oferta zostaĹ‚a dodana :)</b><br>Kliknij 'oferty' aby przejsć do wykazu ofert");
  11. } else {
  12. echo (mysql_error()."Błąd nie udaĹ‚o siÄ™ dodać nowej oferty. Prosimy o kontakt na adres: mihipoznan@gmail.com");
  13. }
  14. ?>


I chcę zrobić tak, że jeżeli $_POST['pierwszy'] jest równy $_POST['drugi'] to dodaje tylko $_POST ['pierwszy'] ... smile.gif
marcio
Czy tobie sie nie chce czy co skorzystaj ze schemtu ktory podal ci wyzej piotrooo89
mihipoznan
Ale wyskakują błędy jeśli mam tą swoją dalszą część.. nie dodaje wszytskich rekordów do bazy

?
piotrooo89
o ile wszytsko jest dobrze przekazywane to powinno chodzić... nie wiem czy masz poprawne kolumny w tabeli, spróbuj mysql_error().

  1. <?php
  2. $drugi = $_POST['drugi'];
  3. $pierwszy = $_POST['pierwszy'];
  4. if($_POST['typ'] == 1)
  5. {
  6. $tabela = "kupno";
  7. }
  8. else
  9. {
  10. $tabela = "sprzedaz";
  11. }
  12. $dodaj = mysql_query("INSERT INTO $tabela SET 
  13.  firma='$HTTP_SESSION_VARS['login']', 
  14. pierwszy='$pierwszy', 
  15. drugi='$drugi', 
  16. opis='$opis', 
  17. ilosc='$ilosc', 
  18. cena='$cena', 
  19. gg='$gg, 
  20. skype='$skype', 
  21. tel='$tel', 
  22. imie'$HTTP_SESSION_VARS['imie']', 
  23. email='$HTTP_SESSION_VARS['email']', 
  24. woj='$HTTP_SESSION_VARS['woj']', 
  25.  link_obrazek='$HTTP_SESSION_VARS['name']', 
  26. ip='$ip'");
  27. if( $dodaj )
  28. {
  29. echo ("<b>Twoja oferta zostaĹ‚a dodana :)</b><br>Kliknij 'oferty' aby przejsć do wykazu ofert");
  30. } 
  31. else 
  32. {
  33. echo (mysql_error()."Błąd nie udaĹ‚o siÄ™ dodać nowej oferty. Prosimy o kontakt na adres: mihipoznan@gmail.com");
  34. }
  35. ?>

troche czytelniej i spawdz mysql_error jak już pisałem i czemu nie używasz $_SESSION?
mihipoznan
Okej, dzięki smile.gif Nie no wiem, teraz używam, ale ten skrypt jest stary (pisałem go jak dopiero zaczynałem z php) i już wiem, że lepiej SESSION biggrin.gif

Kurcze.. Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /dodawanie_udane.inc on line 68

czyli w linijce firma='$HTTP_SESSION_VARS['login']',
nithajasz
Zwróc uwagę na cudzysłowy bo w tym tkwi błąd..

  1. <?php
  2. (...) firma = $HTTP_SESSION_VARS['login'], (...)
  3. ?>
mihipoznan
No tak..ale nie przecież nie mogę napisać tak
  1. <?php
  2. firma= $HTTP_SESSION_VARS['login'],
  3. ?>

to że jest stara tablica to nie zwracajcie uwagi smile.gif
nithajasz
To napisz tak to zapytanie :

  1. <?php
  2. $dodaj = mysql_query("INSERT INTO $tabela SET 
  3. firma='".$HTTP_SESSION_VARS['login']."', 
  4. pierwszy='".$pierwszy."', 
  5. drugi='".$drugi."', 
  6. opis='".$opis."', 
  7. ilosc='".$ilosc."', 
  8. cena='".$cena."', 
  9. gg='".$gg."', 
  10. skype='".$skype."', 
  11. tel='".$tel."', 
  12. imie='".$HTTP_SESSION_VARS['imie']."', 
  13. email='".$HTTP_SESSION_VARS['email']."', 
  14. woj='".$HTTP_SESSION_VARS['woj']."', 
  15.  link_obrazek='".$HTTP_SESSION_VARS['name']."', 
  16. ip='".$ip."'");
  17. ?>
mihipoznan
Że o tym nie pomyślałem haha.gif Nie no.. dzięki smile.gif

Ale jak do tego dopisać linijkę, że jeżeli $_POST['pierwszy'] i $_POST['drugi'] są takie same to dodaje do bazy tylko $_POST['pierwszy'] ?
nithajasz
Tak na odczepnego to ja bym to tak zrobił..

  1. <?php
  2. if($_POST['pierwszy'] == $_POST['drugi']) $sql = 'pierwszy='.$_POST['pierwszy']; else $sql = 'pierwszy='.$_POST['pierwszy'].', drugi='.$_POST['drugi'];
  3.  
  4. // i modyfikacja zapytania
  5. // zamiast 
  6.  
  7. pierwszy='".$pierwszy."', 
  8. drugi='".$drugi."', 
  9.  
  10. // wstawic 
  11.  
  12. firma='".$HTTP_SESSION_VARS['login']."', 
  13. ''.$sql.'',
  14. opis='".$opis."',
  15. ?>
pyro
nithajasz, chyba robiłeś to na bardzo odczepnego
mihipoznan
A tak trochę ładnej ? smile.gif

...

Zrobiłem tak
  1. <?
  2. require("connection.php");
  3. connection();
  4. $login = $_POST['login'];
  5. $imie = $_POST['imie'];
  6. $email = $_POST['email'];
  7. $woj = $_POST['woj'];
  8. $rodzaj = $_POST['rodzaj'];
  9. $ilosc = $_POST['ilosc'];
  10. $tel = $_POST['tel'];
  11. $cena = $_POST['cena'];
  12. $opis = $_POST['opis'];
  13. $gg = $_POST['gg'];
  14. $skype = $_POST['skype'];
  15. $typ = $_POST['typ'];
  16. $name = $_POST ['name'];
  17. $drugi = $_POST['drugi'];
  18. $pierwszy = $_POST['pierwszy'];
  19. $drugi = $_POST['drugi'];
  20. $pierwszy = $_POST['pierwszy'];
  21. if($_POST['pierwszy'] == $_POST['drugi']) {
  22.  $sql = 'pierwszy='.$_POST['pierwszy']; 
  23. }else{ 
  24. $sql = 'pierwszy='.$_POST['pierwszy'].', drugi='.$_POST['drugi'];
  25. }
  26. if($_POST['typ'] == 1)
  27. {
  28. $tabela = "kupno";
  29. }
  30. else
  31. {
  32. $tabela = "sprzedaz";
  33. }
  34. $dodaj = mysql_query("INSERT INTO $tabela SET 
  35. firma='".$HTTP_SESSION_VARS['login']."',
  36. ''.$sql.'',
  37. opis='".$opis."', 
  38. ilosc='".$ilosc."', 
  39. cena='".$cena."', 
  40. gg='".$gg."', 
  41. skype='".$skype."', 
  42. tel='".$tel."', 
  43. imie='".$HTTP_SESSION_VARS['imie']."', 
  44. email='".$HTTP_SESSION_VARS['email']."', 
  45. woj='".$HTTP_SESSION_VARS['woj']."', 
  46.  link_obrazek='".$HTTP_SESSION_VARS['name']."', 
  47. ip='".$ip."'");
  48. if( $dodaj )
  49. {
  50. echo ("<b>Twoja oferta zostaĹ‚a dodana :)</b><br>Kliknij 'oferty' aby przejsć do wykazu ofert");
  51. } 
  52. else 
  53. {
  54. echo (mysql_error()."Błąd nie udaĹ‚o siÄ™ dodać nowej oferty. Prosimy o kontakt na adres: mihipoznan@gmail.com");
  55. }
  56. ?>


I mam błąd
Kod
 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '''.pierwszy=estry metylowe.'', opis='idoibn', ilosc='dsofihp', ' at line 3


ktoś wie co jest źle ?
nithajasz
Walnąłeś się z apostrofami. przy tej zmiennej $sql w zapytaniu.

  1. <?php
  2. $dodaj = mysql_query("INSERT INTO $tabela SET 
  3. firma='".$HTTP_SESSION_VARS['login']."',
  4. ".$sql.",
  5. opis='".$opis."', 
  6. ilosc='".$ilosc."', 
  7. cena='".$cena."', 
  8. gg='".$gg."', 
  9. skype='".$skype."', 
  10. tel='".$tel."', 
  11. imie='".$HTTP_SESSION_VARS['imie']."', 
  12. email='".$HTTP_SESSION_VARS['email']."', 
  13. woj='".$HTTP_SESSION_VARS['woj']."', 
  14.  link_obrazek='".$HTTP_SESSION_VARS['name']."', 
  15. ip='".$ip."'");
  16. ?>
mihipoznan
Dzięki..ale nadal musi być coś źle
  1. <?php
  2. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'tłuszcze zwierzęce, drugi=łój wołowy, opis='dfg', ilosc='dfgfdg', ' at line 3
  3. ?>


edit. jeszcze kod..

  1. <?
  2. require("connection.php");
  3. connection();
  4. $login = $_POST['login'];
  5. $imie = $_POST['imie'];
  6. $email = $_POST['email'];
  7. $woj = $_POST['woj'];
  8. $rodzaj = $_POST['rodzaj'];
  9. $ilosc = $_POST['ilosc'];
  10. $tel = $_POST['tel'];
  11. $cena = $_POST['cena'];
  12. $opis = $_POST['opis'];
  13. $gg = $_POST['gg'];
  14. $skype = $_POST['skype'];
  15. $typ = $_POST['typ'];
  16. $name = $_POST ['name'];
  17. $drugi = $_POST['drugi'];
  18. $pierwszy = $_POST['pierwszy'];
  19. $drugi = $_POST['drugi'];
  20. $pierwszy = $_POST['pierwszy'];
  21. if($_POST['pierwszy'] == $_POST['drugi']) {
  22.  $sql = 'pierwszy='.$_POST['pierwszy']; 
  23. }else{ 
  24. $sql = 'pierwszy='.$_POST['pierwszy'].', drugi='.$_POST['drugi'];
  25. }
  26. if($_POST['typ'] == 1)
  27. {
  28. $tabela = "kupno";
  29. }
  30. else
  31. {
  32. $tabela = "sprzedaz";
  33. }
  34. $dodaj = mysql_query("INSERT INTO $tabela SET 
  35. firma='".$HTTP_SESSION_VARS['login']."',
  36. ".$sql.",
  37. opis='".$opis."', 
  38. ilosc='".$ilosc."', 
  39. cena='".$cena."', 
  40. gg='".$gg."', 
  41. skype='".$skype."', 
  42. tel='".$tel."', 
  43. imie='".$HTTP_SESSION_VARS['imie']."', 
  44. email='".$HTTP_SESSION_VARS['email']."', 
  45. woj='".$HTTP_SESSION_VARS['woj']."', 
  46.  link_obrazek='".$HTTP_SESSION_VARS['name']."', 
  47. ip='".$ip."'");
  48. if( $dodaj )
  49. {
  50. echo ("<b>Twoja oferta zostaĹ‚a dodana :)</b><br>Kliknij 'oferty' aby przejsć do wykazu ofert");
  51. } 
  52. else 
  53. {
  54. echo (mysql_error()."Błąd nie udaĹ‚o siÄ™ dodać nowej oferty. Prosimy o kontakt na adres: mihipoznan@gmail.com");
  55. }
  56. ?>


Po zmianie smile.gif

Może kolejność musi być inna ?

?

?
erix
Cytat
  1. <?php
  2. if($_POST['pierwszy'] == $_POST['drugi']) {
  3.  $sql = 'pierwszy='.$_POST['pierwszy']; 
  4. }else{ 
  5. $sql = 'pierwszy='.$_POST['pierwszy'].', drugi='.$_POST['drugi'];
  6. }
  7. ?>


Sprawdź, jakie cudzysłowy trafiają do zapytania.
mihipoznan
  1. <?
  2. require("connection.php");
  3. connection();
  4. $login = $_POST['login'];
  5. $imie = $_POST['imie'];
  6. $email = $_POST['email'];
  7. $woj = $_POST['woj'];
  8. $rodzaj = $_POST['rodzaj'];
  9. $ilosc = $_POST['ilosc'];
  10. $tel = $_POST['tel'];
  11. $cena = $_POST['cena'];
  12. $opis = $_POST['opis'];
  13. $gg = $_POST['gg'];
  14. $skype = $_POST['skype'];
  15. $typ = $_POST['typ'];
  16. $name = $_POST ['name'];
  17. $drugi = $_POST['drugi'];
  18. $pierwszy = $_POST['pierwszy'];
  19. $drugi = $_POST['drugi'];
  20. $pierwszy = $_POST['pierwszy'];
  21. if($_POST['pierwszy'] == $_POST['drugi']) {
  22.  $sql = 'pierwszy='.$_POST['pierwszy']; 
  23. }else{ 
  24. $sql = 'pierwszy='.$_POST['pierwszy'].', drugi='.$_POST['drugi'];
  25. }
  26. if($_POST['typ'] == 1)
  27. {
  28. $tabela = "kupno";
  29. }else{
  30. $tabela = "sprzedaz";
  31. }
  32. $dodaj = mysql_query("INSERT INTO $tabela (firma,CO TU WPISAĆ!!,opis, ilosc, cena, gg, skype, tel, imie, email, woj, link_obrazek, ip) VALUES('".$HTTP_SESSION_VARS['login']."', '$sql', '$opis', '$ilosc', '$cena', '$gg', '$skype', '$tel', '".$HTTP_SESSION_VARS['imie']."', '".$HTTP_SESSION_VARS['email']."', '".$HTTP_SESSION_VARS['woj']."', '".$HTTP_SESSION_VARS['name']."', '$ip'");
  33. if( $dodaj )
  34. {
  35. echo ("<b>Twoja oferta zostaĹ‚a dodana :)</b><br>Kliknij 'oferty' aby przejsć do wykazu ofert");
  36. } 
  37. else 
  38. {
  39. echo (mysql_error()."Błąd nie udaĹ‚o siÄ™ dodać nowej oferty. Prosimy o kontakt na adres: mihipoznan@gmail.com");
  40. }
  41. ?>


Co tam wpisać ?smile.gif
erix
Pomyśl. ;]

Nie bez powodu podałem Ci kawałek kodu, który mi nie pasuje. ;]
nithajasz
Pomogę jeśli otwierasz string ' to każde następne użycie go powoduje zamknięcie danego stringa

  1. <?php
  2. $sql = 'pierwszy='.$_POST['pierwszy'].', drugi='.$_POST['drugi'];
  3. ?>


Tak więc masz tu zle zrobione to smile.gif

  1. <?php
  2. $sql = "pierwszy='".$_POST['pierwszy']."', drugi='".$_POST['drugi']."'";
  3. ?>


Teraz powinno być lepiej 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.