Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Porównywanie komórki w bazie z linkiem
Forum PHP.pl > Forum > Przedszkole
bosh
Witam!

Mam link: http://doomena.pl/index.php?m=xxx

w bazie danych mam wiersz w tabeli i chcę wyświetlić tylko jedną komórkę jeśli inna ma wartość tożsamą z xxx

  1. $link=$_GET['m'];
  2.  
  3. $sql = 'SELECT `szkolenia`.`data`, `szkolenia`.`temat`, `szkolenia`.`miasto`, `szkolenia`.`link`'
  4. . ' FROM szkolenia WHERE link = $link';


Niestety mimo, iż jest taka komórka, to w wyniku dostaję pustkę...
nospor
no a w jaki sposob pobierasz te dane?

Zanim odpowiesz:
Zastosuj się proszę do podanych tu porad:
Temat: Jak poprawnie zada pytanie
zordon
daj sobie echo $sql; i całe zapytanie wpisz do sqla np w phpmyadminie. jesli tam pokaze wynik to zle odbierasz, jesli nie bedzie wyniku, znaczy, że zapytanie jest złe.
bosh
Nie chciałem zbyt dużo kodu dać, pełny ko to:

  1.  
  2. $link=$_GET['m'];
  3.  
  4. print $link."<br><br>";
  5.  
  6.  
  7. include("konfiguracja.cfg");
  8. $link = mysql_connect("$dbhost","$dbuser","$dbpasswd") or die(mysql_error());
  9.  
  10. $sql = 'SELECT `szkolenia`.`data`, `szkolenia`.`temat`, `szkolenia`.`miasto`, `szkolenia`.`link`'
  11. . ' FROM szkolenia WHERE link = $link';
  12.  
  13.  
  14. print "Temat: ".$wiersz['temat']."<br><br>";
  15.  



zmienna link jest pobrana dokładnie tak jak ma być, dokładnie taka sam jest komórka w bazie, co więcej komórka link jest stosowana do stworzenia linku do pliku, który później na podstawie tego uzupełnia zawartość strony (wyciąga z pozostałych komórek dane), pewnie można zrobić to inaczej, ale moja przygoda z php jest sporadyczna i nie mam innego pomysłu...

Cytat(zordon @ 16.06.2010, 13:41:16 ) *
daj sobie echo $sql; i całe zapytanie wpisz do sqla np w phpmyadminie. jesli tam pokaze wynik to zle odbierasz, jesli nie bedzie wyniku, znaczy, że zapytanie jest złe.

No i dałem, ale jest problem, gdyż ja porównuję z tym co zczytam z adresu www, więc w zapytaniu sql wpisuję konkretną zawartość komórki i mam sukces, ale gdy wrócę do kodu to coś jest nie tak sad.gif
nospor
Przecież ty nigdzie tego kodu SQL nie wykonales.... gdzie masz mysql_query(), gdzie masz mysql_fetch_array() ?

Ostatni raz proszę
Zastosuj się proszę do podanych tu porad:
Temat: Jak poprawnie zada pytanie
Przynajmniej bledy zobaczysz...
bosh
Całość wygląda tak:

  1.  
  2. <?php
  3. $link=$_GET['m'];
  4.  
  5. print_r($link);
  6.  
  7.  
  8. include("konfiguracja.cfg");
  9. $link = mysql_connect("$dbhost","$dbuser","$dbpasswd") or die(mysql_error());
  10.  
  11. $sql = 'SELECT `szkolenia`.`data`, `szkolenia`.`temat`, `szkolenia`.`miasto`, `szkolenia`.`link`'
  12. . ' FROM szkolenia WHERE link = "xxx"';
  13.  
  14. $wykonaj = mysql_query($sql);
  15. $wiersz = mysql_fetch_array($wykonaj);
  16.  
  17.  
  18. print "Temat: ".$wiersz['temat']."<br><br>";
  19.  
  20. ?>
  21.  



Jeśli wpisuję bezpośrednio xxx to mam wynik wszystko działa jak chcę, jeśli wpisuję miast:
  1. . ' FROM szkolenia WHERE link = "xxx"';

to:
  1. . ' FROM szkolenia WHERE link = "$link"';


Czy to może błąd składni? Podaję ".$link." i też mi wywalało błąd... Nie znalazłem gdzie indziej, więc pytam tutaj...
zend
  1. while( $wiersz = mysql_fetch_array($wykonaj))
  2. {
  3. }
  4.  
  5. // . " FROM szkolenia WHERE link = $link";


Apostrofy nie interpretują kodu, a na zadanie domowe zabezpiecz zapytanie tym mysql_real_escape_string
bosh
Znalazłem jeden czeski błąd - $link użyte dwa razy... jako różne zmienne...

ale i tak mi nie działa...

sczytuje $lin poprawnie, łączy się z bazą, zapytanie wygląda poprawnie - gdy w miejsce $lin dam "xxx" jest oki, ale jednak po wstawieniu to w takiej postaci:
  1. <?php
  2. $lin=$_GET['m'];
  3.  
  4. print_r($lin);
  5.  
  6. include("konfig.cfg");
  7. $link = mysql_connect("$dbhost","$dbuser","$dbpasswd") or die(mysql_error());
  8.  
  9. $sql = "SELECT `szkolenia`.`data`, `szkolenia`.`temat`, `szkolenia`.`miasto`, `szkolenia`.`link` FROM szkolenia WHERE link = $lin ";
  10.  
  11. $wykonaj = mysql_query($sql);
  12. $wiersz = mysql_fetch_array($wykonaj);
  13.  
  14. print "<br><br>Temat: ".$wiersz['temat']."<br><br>";
  15.  
  16.  
  17.  
  18. ?>


Robi się pudło... dokładna wartość, która jest w bazie to: 20100624_plock czy moze mieć tu znaczenie kodowanie, albo rodzaj zawartości komórki?questionmark.gif (jest textowa)
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.