Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] link typu artykul?id=1[SOLVED]
Forum PHP.pl > Forum > Przedszkole
Manifested01
Chciałbym zrobić strone artykuly.php?id=1....
gdzie id to liczba porzadkowa rekordu z bazy danych
i po prostu jak wyswietle 1 to sie wyswietla te rekordy ktore chce w jakiejs tam konfiguracji etc

przeczytałem to faq z funkcja geturl ale tam nic nie ma o pobieraniu z bazy :/
Chrom
wyciągasz z adresu zmienną id

  1. <?php
  2. $id =(int)$_GET["id"];
  3. ?>


dalej operujesz już na zmiennej $id gdzie wyciągasz dane z bazy poprzez SELECT

np:
  1. <?php
  2. $sql = "SELECT * FROM tabela  WHERE id='$id'";
  3.    $result = @mysql_query($sql, $polaczenie)    or die("brak odpowiedzi z zapytania");
  4.        while ($row = mysql_fetch_array($result)) {
  5.            $id = $row['id'];
  6.              // dalsze dane
  7. }
  8. ?>


coś takiego jak źle to pewnie koledzy poprawią
Manifested01
ok tylko teraz np jak moge to wyswietlic w takiej formie np

Artykuł (tytul) dodany (data) przez (user) etc
wookieb
Tak jak to sie wyswietla. Funkcja echo. Poza tym musisz takie dane pobrac. A jakie dokladnie dane pobierasz to my nie wiemy.
mike
Cytat(Manifested01 @ 19.02.2009, 10:55:56 ) *
ok tylko teraz np jak moge to wyswietlic w takiej formie np

Artykuł (tytul) dodany (data) przez (user) etc
Nie potrafisz zmiennych wyświetlić? Wysil się przy myśleniu.
Przez takie posty poziom forum spada poniżej zera sad.gif
Manifested01
przykro mi ale moja przygoda z mysql i php zaczeła się pare dni temu

  1. <?php
  2. $sql = "SELECT `Tytul`,`Kategoria`,`data` FROM Petycje  ORDER BY id='$id'";
  3.   $result = @mysql_query($sql, $polaczenie)    or die("brak odpowiedzi z zapytania");
  4.       while ($row = mysql_fetch_array($result)) {
  5.           $id = $row['id'];
  6.             // dalsze dane
  7. ?>

pytanie 1: czy dobrze zmieniłem to po SELECT
pytanie 2: jakie znaczniki odpowiedni ma kolejno tytul kategoria data

domyslam się że mam użyc funckji
echo '<div align="center"> </div>'

i dzieki za pomoc wszystkim
mike
Cytat(Manifested01 @ 19.02.2009, 11:06:55 ) *
pytanie 1: czy dobrze zmieniłem to po SELECT
Jeśli tak jest zbudowana Twoja tabela to tak.
Cytat(Manifested01 @ 19.02.2009, 11:06:55 ) *
pytanie 2: jakie znaczniki odpowiedni ma kolejno tytul kategoria data
Sam sobie odpowiedz: mysql_fetch_array()

Usuń znak @. Zastowanie jego było głupią poradą.
wookieb
Zrób sobie
Kod
print_r($row)
i bedziesz widział co masz. Jezeli nie bedzie poprawnych danych to sprawdz jakie masz nazwy kolumn w tabeli Petycje
Manifested01
  1. <?php
  2. $result = @mysql_query($query);
  3. while ($row2 = @mysql_fetch_array($result2))
  4.  
  5. $id =(int)$_GET["id"];
  6.  
  7. $con = mysql_connect("sql5.gf.gfd.pl","gfd_gfd","gdf");
  8. if (!$con)
  9. {
  10. die('Could not connect: ' . mysql_error());
  11. }
  12.  
  13. mysql_select_db("gfd_dff", $con);
  14.  
  15. $sql = "SELECT `Id`,`Tytul` FROM Petycje  ORDER BY id='$id'";
  16.  $result = @mysql_query($sql, $polaczenie)    or die("brak odpowiedzi z zapytania");
  17.      while ($row = mysql_fetch_array($result)) {
  18.          $id = $row['id'];
  19. printf ("id: %s  Tytul: %s", $row["id"], $row["Tytul"]);  
  20. }
  21. ?>


brak odpowiedzi z zapytania

:/
wookieb
A zrobiles to co mówilem?
Zrób
Kod
print_r($row);

W dodatku nie wiem czy masz dobrze... Wykonujesz zapytanie i jezeli jest ok to dopiero laczysz sie z baza danych(questionmark.gif)
mike
Cytat(Manifested01 @ 19.02.2009, 11:35:26 ) *
brak odpowiedzi z zapytania
Po co mamy Ci pomagać skoro nie stosujesz się do udzielanych rad?
Wywal znak @ i przeczytaj to: Najczęstsze błędy, Zanim zapytasz, to sprawdź. (szczególnie 1. Problemy z tablicami, 2. Problemy z zapytaniem SQL i 9. Nie widać błędów).
Manifested01
tzn próbowałem z print_r($row); efekt był taki sam
a tą @ skresliłem tylko potem dałem złą kopie, faq przeczytałem i jak widzisz dodałem te wszystkie wartosci

  1. <?php
  2. $result = @mysql_query($query);
  3. while ($row2 = @mysql_fetch_array($result2))
  4.  
  5. ini_set('display_errors', 1);
  6.  
  7. $id =(int)$_GET["id"];
  8.  
  9. $con = mysql_connect("sql5.gfdg.gf.pl","gfd_gf","gdfg");
  10. if (!$con)
  11. {
  12. die('Could not connect: ' . mysql_error());
  13. }
  14.  
  15. mysql_select_db("fgdf_gfdg", $con);
  16.  
  17. $sql = "SELECT `Id`,`Tytul` FROM Petycje ORDER BY id='$id'";
  18.  $result = mysql_query($sql, $polaczenie)    or die("brak odpowiedzi z zapytania");
  19.      while ($row = mysql_fetch_array($result)) {
  20.          $id = $row['id'];
  21. echo '<pre>';
  22. print_r($row);  
  23. echo '</pre>';
  24. }
  25. ?>



Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/users/sobolczyk_moja/www/cos.php on line 19
brak odpowiedzi z zapytania


a własnie i jak testuje czy działa to
http://link.pl/cos.php?id=34
bo mam taki rekord akurat czy moze w tym tkwi błąd
nospor
mike w poprzednim poscie podal ci co masz zrobic:
przeczytaj link co ci podal skup sie szczegollnie na rzeczach ktore zaznaczyl i sie do nich dostosuj!!!! ile razy mozna prosic.... Jak to zrobisz to sie dowiesz jaki masz dokladnie blad!!!
Kihol
Cytat
$sql = "SELECT `Id`,`Tytul` FROM Petycje ORDER BY id='$id'";

co to ma być order by id= questionmark.gif Chyba WHERE id=$id ?

Poza tym, jeśli od 3 dni bawisz się php to zacznij od książki (np kompendium wiedzy php5), napisz kilka przykładowych zadań typu hello world, a dopiero później zacznij pytać na forum.
Manifested01
nie wiem czy powinno być Order czy Where
to Order napisał kolega Chrom
anyway zmieniłem na Where i ten sam błąd
mike
Cytat(Manifested01 @ 19.02.2009, 12:12:59 ) *
nie wiem czy powinno być Order czy Where
to Order napisał kolega Chrom
anyway zmieniłem na Where i ten sam błąd
Zmień zainteresowania człowieku. Odiwedź jakiś warsztat samochodowy czy budowę. Może coś Cię tam zainteresuje. Od programowania trzymaj się zdaleka.
Tu trzeba myslać lub przynajmniej czytać ze zrozumieniem i wykonywać polecenia.
Chrom
mea culpa, mea maxima culpa, już poprawiam
Manifested01
Cytat(mike @ 19.02.2009, 12:28:35 ) *
Zmień zainteresowania człowieku. Odiwedź jakiś warsztat samochodowy czy budowę. Może coś Cię tam zainteresuje. Od programowania trzymaj się zdaleka.
Tu trzeba myslać lub przynajmniej czytać ze zrozumieniem i wykonywać polecenia.


nie mam zamiaru z tobą dyskutować go get a life
webdice
  1. SELECT `field` FROM `table` WHERE `field` = 'value'
Manifested01
mam teraz taki kod
  1. <?php
  2. ini_set('display_errors', 1);
  3. $result = @mysql_query($query);
  4. while ($row2 = @mysql_fetch_array($result2))
  5. ini_set('display_errors', 1);
  6. $id =(int)$_GET[&#092;"id\"];
  7. $con=mysql_connect("sql5.hh.hh.pl","hh_hh","hh") or die('Could not connect: ' . mysql_error());
  8. }
  9. mysql_select_db(&#092;"ss_ss\", $con);
  10. $sql = &#092;"SELECT `Id`,`Tytul` FROM Petycje WHERE id='$id'\";
  11. $id = $row['id']; $tytul = $row['tytul'];
  12.  
  13. echo '';
  14. echo $id;
  15.  
  16. echo $tytul;
  17. echo '';
  18. ?>


pododawałem te wszystkie linijki zeby mi sie wyswietlił jakis error bo było pusto
i teraz mam

Notice: Undefined variable: row in /home/users/somethin/www/uk.php on line 16

Notice: Undefined variable: row in /home/users/somethin/www/uk.php on line 16
mike
1. "Undefined variable" ozacza, że zmienna jest niezdefinowana. Więc jak widziesz "Undefined variable: row" to znaczy, że korzystasz ze zmiennej, której nie ma.
2. Wywal znaki @ ze swojego koduexclamation.gif!
wookieb
Stary naucz się czytać bo powoli zaczynam potwierdzać słowa mike'a.
Pisze.. Nieznana zmienna 'row'. Masz taką? Nie. masz zmienna 'row2'.
Manifested01
kiedy wywalam @ z
Kod
$result = @mysql_query($query);
while ($row2 = @mysql_fetch_array($result2))


to mam takie błędy
Kod
[b]Notice[/b]:  Undefined variable: query in [b]/home/users/sobolczyk_moja/www/uk.php[/b] on line [b]5[/b]

[b]Warning[/b]:  mysql_query() [[url="http://www.moja.eco-city.org/function.mysql-query"]function.mysql-query[/url]]: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in [b]/home/users/sobolczyk_moja/www/uk.php[/b] on line [b]5[/b]

[b]Warning[/b]:  mysql_query() [[url="http://www.moja.eco-city.org/function.mysql-query"]function.mysql-query[/url]]: A link to the server could not be established in [b]/home/users/sobolczyk_moja/www/uk.php[/b] on line [b]5[/b]

[b]Notice[/b]:  Undefined variable: result2 in [b]/home/users/sobolczyk_moja/www/uk.php[/b] on line [b]6[/b]

[b]Warning[/b]:  mysql_fetch_array(): supplied argument is not a valid MySQL result resource in [b]/home/users/sobolczyk_moja/www/uk.php[/b] on line [b]6[/b]

[b]Warning[/b]:  mysql_fetch_array(): supplied argument is not a valid MySQL result resource in [b]/home/users/sobolczyk_moja/www/uk.php[/b] on line [b]17[/b]
35

[b]Notice[/b]:  Undefined variable: tytul in [b]/home/users/sobolczyk_moja/www/uk.php[/b] on line [b]25[/b]


ad2

mam zmienic po prostu to row2 na row?
wookieb
Tak. A najlepiej to zacząć MYŚLEĆ!
Nie masz połaczenia z baza danych (Can't connect to local MySQL server) ale oczywiscie NAJPIERW wykonujesz zapytanie w dodatku którego nie ma (Undefined variable: query).
Potem chcesz pobrac wynik ze zmiennej ktorej tez nie ma (Undefined variable: result2). Czy to naprawde takie trudne przeczytać i zastosować się do tekstu pisanego? Początkujący początkującym ale odrobina samodzielności jest wymagana.
Manifested01
gdyby ktoś potrzebował brawa dla Chroma:)

Kod
<?php
if (!empty($_GET["id"]);{
$id = trim((int)$_GET["id"]);
    define(DB_HOST,"localhost");  
    define(DB_USER,"root");          
   define(DB_PASS,"hasło");                     // tu hasło
   define(DB_NAME,"baza danych");            // tu nazwa bazy danych
          $polaczenie = mysql_connect(DB_HOST,DB_USER,DB_PASS) or die("Nie mogę połączyć się MySQL-em!");
            $baza = mysql_select_db(DB_NAME, $polaczenie) or die("Nie mogę wybrać bazy danych!");
                $sql = "SELECT * FROM `nazwa_tabeli` WHERE `id`= '$id'";
                    $result = @mysql_query($sql, $polaczenie)    or die("brak odpowiedzi z zapytania");
            while ($row = mysql_fetch_array($result)) {                
                $id = $row['id'];
                $tytul = $row['tytul'];
echo '<pre>';
echo $id;
echo $tytul;
echo '<pre>';
}
?>
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.