Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][php] maly problemik z Mysql
damianm2007
post
Post #1





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 5.05.2008

Ostrzeżenie: (20%)
X----


Witam.
Napisałem taki kodzik...
Kod
  <?
  
  
  
  $query = mysql_query('SELECT * FROM zamowienia_vps;');
  
  while ($rekord = mysql_fetch_assoc($query)) {
  $id = $rekord['id'];
  $login = $rekord['dodatek2'];
  $ile = $rekord['rootpass'];
  
  
  print ("<table width='400px' border='0'>");
  print ("<tr><td>$id || <BR> Login Panel: $login || <BR>Hasło:<b> $ile</b></td></tr>");
  
  print ("</font>");
  
  }
  
  ?>


i mam problem... gdyż wyświetla mi wszystkich userów i ich hasła... a ja chce aby jeden user widział swoje po zalogowaniu do panelu klienta...

(IMG:http://img140.imageshack.us/img140/2718/bladwphp.jpg)

Ten post edytował damianm2007 5.09.2009, 13:14:41
Go to the top of the page
+Quote Post
bmL
post
Post #2





Grupa: Zarejestrowani
Postów: 301
Pomógł: 25
Dołączył: 15.07.2007
Skąd: Olsztyn

Ostrzeżenie: (0%)
-----


Witam, po pierwsze nie ma potrzeby żebyś stosował print który zwraca za każdym razem "1", co co prawda praktycznie nie zauważalnie ale spowalnia wykonanie skryptu. Jednak prawie każdy programista o ile nie zachodzi inna potrzeba używa echo zamiast print.
Po drugie jeżeli chcesz wyświetlić tylko jednego użytkownika to musisz określić o jakiego użytkownika chodzi na podstawie jego numeru id lub nazwy użytkownika np:
  1. $query = mysql_query('SELECT * FROM zamowienia_vps WHERE id = \'5\';');
  2.  
  3. $rekord = mysql_fetch_assoc($query); // pentlę można pominąć poniważ pobraliśmy tylko jeden wpis.
  4.  
  5. $id = $rekord['id'];
  6. $login = $rekord['dodatek2'];
  7. $ile = $rekord['rootpass'];
  8.  
  9.  
  10. echo "<table width='400px' border='0'>";
  11. echo "<tr><td>$id || <BR> Login Panel: $login || <BR>Hasło:<b> $ile</b></td></tr>";
  12.  
  13. echo "</font>";
  14. }


Ten post edytował bmL 5.09.2009, 00:59:31
Go to the top of the page
+Quote Post
damianm2007
post
Post #3





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 5.05.2008

Ostrzeżenie: (20%)
X----


Cytat(bmL @ 5.09.2009, 01:58:09 ) *
Witam, po pierwsze nie ma potrzeby żebyś stosował print który zwraca za każdym razem "1", co co prawda praktycznie nie zauważalnie ale spowalnia wykonanie skryptu. Jednak prawie każdy programista o ile nie zachodzi inna potrzeba używa echo zamiast print.
Po drugie jeżeli chcesz wyświetlić tylko jednego użytkownika to musisz określić o jakiego użytkownika chodzi na podstawie jego numeru id lub nazwy użytkownika np:
[PHP] pobierz, plaintext
  1. $query = mysql_query('SELECT * FROM zamowienia_vps WHERE id = \'5\';');
  2. $rekord = mysql_fetch_assoc($query); // pentlę można pominąć poniważ pobraliśmy tylko jeden wpis.
  3. $id = $rekord['id'];
  4. $login = $rekord['dodatek2'];
  5. $ile = $rekord['rootpass'];
  6. echo "<table width='400px' border='0'>";
  7. echo "<tr><td>$id || <BR> Login Panel: $login || <BR>Hasło:<b> $ile</b></td></tr>";
  8. echo "</font>";
  9. }
[PHP] pobierz, plaintext

Działa fajnie (IMG:style_emoticons/default/smile.gif) tylko hmmm dla kilkunastu ręcznie... nie da sie tak aby pobierało automatem id usługi ?
Go to the top of the page
+Quote Post
bmL
post
Post #4





Grupa: Zarejestrowani
Postów: 301
Pomógł: 25
Dołączył: 15.07.2007
Skąd: Olsztyn

Ostrzeżenie: (0%)
-----


A gdzie masz przechowywane to id usługi? Po prostu w miejsce liczby wstaw zmienną w której znajduje się to id.
Go to the top of the page
+Quote Post
damianm2007
post
Post #5





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 5.05.2008

Ostrzeżenie: (20%)
X----


Cytat(bmL @ 5.09.2009, 02:40:25 ) *
A gdzie masz przechowywane to id usługi? Po prostu w miejsce liczby wstaw zmienną w której znajduje się to id.


zamowienia_vps < tu są zamówienia oraz id usługi danego klienta zamiast

  1. = \'5\';');

ma być
  1. = \'$id\';');


(IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Spawnm
post
Post #6





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Proszę poprawić tytuł na bardziej sensowny.
'mały problemik' nie informuje nas z czym masz problem.
Go to the top of the page
+Quote Post
bmL
post
Post #7





Grupa: Zarejestrowani
Postów: 301
Pomógł: 25
Dołączył: 15.07.2007
Skąd: Olsztyn

Ostrzeżenie: (0%)
-----


W stringach oplecionych apostrofami nie zostaną zmaienione zmienne musiał byś ten string opleść podwójnym cudzysłowem albo połączyć je kropką. To są podstawy składni php.
  1. $query = mysql_query('SELECT * FROM zamowienia_vps WHERE id = \''.$id.'\';');
  2. // albo
  3. $query = mysql_query("SELECT * FROM zamowienia_vps WHERE id = '$id';");
Go to the top of the page
+Quote Post
damianm2007
post
Post #8





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 5.05.2008

Ostrzeżenie: (20%)
X----


Cytat(bmL @ 5.09.2009, 23:31:23 ) *
W stringach oplecionych apostrofami nie zostaną zmaienione zmienne musiał byś ten string opleść podwójnym cudzysłowem albo połączyć je kropką. To są podstawy składni php.
[PHP] pobierz, plaintext
  1. $query = mysql_query('SELECT * FROM zamowienia_vps WHERE id = \''.$id.'\';');
  2. // albo
  3. $query = mysql_query("SELECT * FROM zamowienia_vps WHERE id = '$id';");
[PHP] pobierz, plaintext


w wersji 1 nic nie pokazuje a w wer 2 jest błąd

Kod
[b]Parse error[/b]:  syntax error, unexpected T_VARIABLE in [b]/home/***/domains/biling.***.pl/public_html/userstrony/uslugi.php[/b] on line [b]179

[/b]
Go to the top of the page
+Quote Post
thek
post
Post #9





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Byk wywala bo pewnie $id jest puste i kompletnie nic tam nie przypisujesz lub gdzieś indziej w kodzie robisz byka. Wyświetl sobie tę zmienną najlepiej lub daj kod poprawiony tutaj bo możesz babola walić gdzieś indziej.
Go to the top of the page
+Quote Post
damianm2007
post
Post #10





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 5.05.2008

Ostrzeżenie: (20%)
X----


Cytat(thek @ 6.09.2009, 14:05:38 ) *
Byk wywala bo pewnie $id jest puste i kompletnie nic tam nie przypisujesz lub gdzieś indziej w kodzie robisz byka. Wyświetl sobie tę zmienną najlepiej lub daj kod poprawiony tutaj bo możesz babola walić gdzieś indziej.


id nie jest puste bo jak inaczej bym pokazał zamazanych ludzi u góry ? jak wpisze np id 50 to pokazuje dane ale jak juz samo $id to nie czyta automatycznie....
Go to the top of the page
+Quote Post
thek
post
Post #11





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Wersja druga kodu nie ma prawa zadziałać z prostej przyczyny - apostrofy nie są escape'owane. Jeśli to na pewno jest liczba to możesz nawet pojedyncze apostrofy pominąć. A skoro pierwszy nic nie pokazuje to znaczy, że masz gdzieś byka wcześniej. Wyświetl zawartość tej zmiennej w var_dump lub print_r. Jeśli brak będzie czegokolwiek to pewnie masz problem z podłączeniem do bazy lub wpis w bazie o takim id zwyczajnie nie istnieje.
Go to the top of the page
+Quote Post
bmL
post
Post #12





Grupa: Zarejestrowani
Postów: 301
Pomógł: 25
Dołączył: 15.07.2007
Skąd: Olsztyn

Ostrzeżenie: (0%)
-----


Drogi kolego przyjrzyj się dobrze wersji drugiej, całe zapytanie zawarte jest w cudzysłowach. Więc apostrofów się nie escape'uje.

Wracając do tematu obie wersje powinny się sprawować tak samo więc nie wiem w czym może tkwić błąd. Może zapomniał średnika na końcu? Mamy niespodziewane wystąpienie zmiennej. Skopiuj tutaj linie 178-180 zobaczymy co tam jest.

Ten post edytował bmL 7.09.2009, 17:10:29
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 21:13