Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobieranie z bazy i wielokrotne wykorzystanie tego
Forum PHP.pl > Forum > Przedszkole
IIFF
Chciałbym w title wstawić nazwę użytkownika, wykorzystując to że już napisałem komendę pobierającą z bazy kolumnę z użytkownikiem.

  1. $wynik=mysql_query("SELECT * FROM uzytkownik WHERE id='$idkey'");
  2.  
  3. if(mysql_num_rows($wynik) > 0)
  4. {
  5. while($r = mysql_fetch_array($wynik))
  6. echo ''.$r['login'].'<br>
  7. Zarejestrowany: '.$r['data'].'';
  8. }
  9.  
  10. W title daję:
  11.  
  12. [php]<title><?php echo $r['login']; ?></title>


Ale wygląda że nie mogę tak zrobić, bo zamiast loginu w title wyświetla link do strony.

A i jeszcze jedno, do czego jest przydatne w ogóle mysql_fetch_array? Przecież pobieram z bazy za pomocą, mysql_query, czy nie jest to walenie kota za pomocą młota? Trochę tego nie rozumiem, ale jako początkujący być może o czymś nie wiem. Kto mnie oświeci?
IIFF
Tak, tam podaje, ale w title nie, podejrzewam że przez to że title mam w osobnym "<?php", ale po co takie utrudnienia?
mis
sam sobie odpowiedziałeś na pytanie smile.gif


zmienne 'normalne' można wykorzystywać tylko i wyłącznie w danym pliku php, chyba że zrobić include.

pokaż najlepiej obydwa pliki, najlepiej całe, wtedy może jakoś pomożemy.
IIFF
Cytat(mis @ 12.12.2011, 00:08:22 ) *
sam sobie odpowiedziałeś na pytanie smile.gif


?


Cytat(mis @ 12.12.2011, 00:08:22 ) *
zmienne 'normalne' można wykorzystywać tylko i wyłącznie w danym pliku php, chyba że zrobić include.


Napisałem, w title jedno <?php, drugie w body, ale to ten sam plik!

Proszę, kod:

  1. <title><?php echo $r['login']; ?></title>
  2. <link rel="stylesheet" type="text/css" media="all" href="./style.css" />
  3. </head>
  4.  
  5. <body>
  6. <?php include('./top.php');?>
  7. <div id="main">
  8.  
  9. <div id="container" style="border-top: 4px solid #505053; background: #fff url(i/user256.png) left top no-repeat; min-height: 256px;">
  10.  
  11. <?php
  12. include 'db.php'; // połączenie się z bazą danych
  13.  
  14. $idkey = $_GET['id'];
  15.  
  16. $wynik=mysql_query("SELECT * FROM uzytkownik WHERE id='$idkey'");
  17.  
  18. if(mysql_num_rows($wynik) > 0)
  19. {
  20. while($r = mysql_fetch_array($wynik))
  21. echo '<b>'.$r['login'].'</b><br>
  22. Zarejestrowany: '.$r['data'].'';
  23. }
  24.  
  25. ?>
redeemer
W title próbujesz wyswietlić login z wyniku zapytania, które wykonujesz dopiero później.
IIFF
Rozumiem sedno błędu, ale pytam jak zaincludować(czy można zaincludować? Wykorzystać to drugi raz?) by nie musieć robić bałaganu w kodzie - dodawać kilka razy to samo? I czy ma wpływ to że jest w innym <?php, czy tylko dlatego nie działa że jest "przed zapytaniem" a sekcja <?php nie ma żadnego wpływu....?

?
lukesh
Wykorzystać zmienną drugi raz możesz tylko wtedy, kiedy ta zmienna istnieje. Nie możesz jej wykorzystać u góry, bo jej wcześniej nie ma. Skrypt jest czytany od góry w dół.

Powinienes najpierw pobrać dane o użytkowniku, zapisać je do zmiennej i dopiero potem wykorzystać. Najpierw wstawisz zmienną w tytule, a potem w dalszej części kodu.
IIFF
Jeszcze jedno: po co do diabła dodano coś takiego jak: mysql_fetch_array questionmark.gif Przecież zapytanie wykonuje mysql_query'em, wystarczy później tylko echo'em wydrukować tą zmienną i powinno wyświetlać, ale nie, krzyczy że błąd. Nie mogę tego pojąć...

Ja się pytam: Czy to pełni jakąś dokładną funkcję ważną o której nie wiem, czy poprostu dodane zostało tak, żeby poprostu nauka php nie była taka łatwa?
nospor
Tak cięzko doczytać w manualu co zwraca i co robi mysql_query oraz mysql_fetch_array() a nie zadawać równie idiotyczne pytania?
IIFF
Uspokój się, proszę, weź głęboki wdech. Czytałem to wszystko, chodzi mi o logikę, bo że to utrudnienie i tak trzeba, bo tak mogę zrozumieć, ale nie widzę tutaj logiki.
lukesh
Cytat(IIFF @ 12.12.2011, 17:54:46 ) *
Ja się pytam: Czy to pełni jakąś dokładną funkcję ważną o której nie wiem, czy poprostu dodane zostało tak, żeby poprostu nauka php nie była taka łatwa?

Mysql_query zwraca true lub false, mysql_fetch_array zwraca tablicę wyników, a jesli chcesz tylko jeden wiersze, wtedy użyj mysql_fetch_row.

Mysql_query wykonuje zapytania, ale go poniekąd nie przechwytuje. Z mysql_query dowiesz się, czy zapytanie się udało. Wyobraź sobie, że oprócz wybierania z bazy danych, dane można też dodawać - i co wtedy miałoby wyświetlić mysql_query? Dlatego ta funckaj służy do określenia, czy zapytanie zostało wykonane, czy nie. Potem te dane musisz przechwycić innymi funkcjami.

Teraz rozumiesz "logikę"?
nospor
Cytat
Uspokój się, proszę, weź głęboki wdech. Czytałem to wszystko, chodzi mi o logikę, bo że to utrudnienie i tak trzeba, bo tak mogę zrozumieć, ale nie widzę tutaj logiki.
Po czytaniu Twoich ostatnich tematów na forum odnoszę wrażenie że mało w czym widzisz logikę. Może ty też trochę się uspokuj i przed założoniem kolejnego tematu/postu zastanów się jednak trochę nad nim.

Cytat
Mysql_query zwraca true lub false
Zwraca też RESOURCE.
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.