Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MYSQL] includowanie treśći z bazy danych z wykorzystaniem kolumny innej niz id
Sekwer
post 28.02.2009, 19:46:52
Post #1





Grupa: Zarejestrowani
Postów: 36
Pomógł: 2
Dołączył: 18.01.2009

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


Chciałbym includować dane z bazy, wg kolumny kat, a nie jak dotychczas id.
Mam tabelę:
-----------------------------
id | kat | tresc |
1 | glowna | strona główna |
2 | kontakt| kontakt ze mną|
-----------------------------

i kod php:
CODE
if (isset($_GET['kat']))
@$id = $_GET['kat'];

$wynik = mysql_query('SELECT tresc FROM tabela WHERE id='.$id.'')
or die('Błąd zapytania');

$strona = mysql_fetch_array($wynik);
echo $strona['tresc'];
?>


Z powyższego wyniku poprawnie działa, jak wpisze index.php?kat=1
a chciałbym, zeby trzebabyło wpisać index.php?kat=glowna

Kombinowałem i takie coś mi wyszło:
CODE
if (isset($_GET['kat']))
@$id = $_GET['kat'];

$wynik = mysql_query('SELECT tresc FROM tabela WHERE kat='.$id.'')
or die('Błąd zapytania');

$strona = mysql_fetch_array($wynik);
echo $strona['tresc'];
?>


Połączenie z MySql i wybranie odpowiedniej bazy jest wcześniej smile.gif

Ten post edytował Sekwer 1.03.2009, 11:22:17
Go to the top of the page
+Quote Post
bełdzio
post 28.02.2009, 19:48:46
Post #2





Grupa: Zarejestrowani
Postów: 690
Pomógł: 81
Dołączył: 6.04.2005
Skąd: Szczecin

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


zamien
  1. <?php
  2. $wynik = mysql_query('SELECT tresc FROM tabela WHERE kat='.$id.'')
  3. ?>
na

  1. <?php
  2. $wynik = mysql_query( 'SELECT tresc FROM tabela WHERE anchor= "'. mysql_real_escape_string( $id ) . '"' );
  3. ?>


--------------------
Go to the top of the page
+Quote Post
Sekwer
post 1.03.2009, 11:21:36
Post #3





Grupa: Zarejestrowani
Postów: 36
Pomógł: 2
Dołączył: 18.01.2009

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


Wypluwa błąd: Błąd zapytania

Sorki za pomyłkę u góry zamiast anchor powinno być kat. Ale już pozmieniałem.
Stosuje skracanie adresów w .htaccess i chciałbym, żeby linki wyglądały tak: http://localhost/moja-strona, a nie http://localhost/1.
Może trzeba zrobicć jakąś zmienną, która zamieniałaby cyfry na odpowiednie ciągi znaków.
Go to the top of the page
+Quote Post
erix
post 1.03.2009, 13:16:39
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A może byś tak pokazał, co zwraca mysql_error" title="Zobacz w manualu PHP" target="_manual?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Sekwer
post 1.03.2009, 13:33:32
Post #5





Grupa: Zarejestrowani
Postów: 36
Pomógł: 2
Dołączył: 18.01.2009

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


Sorki, już daje.
CODE
Błąd zapytania Something is wrong in your syntax obok '' w linii 1
Go to the top of the page
+Quote Post
erix
post 1.03.2009, 13:36:34
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A którego zapytania użyłeś? Mam nadzieję, że tego a'la 2. z postu bełdzia.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Sekwer
post 1.03.2009, 13:53:13
Post #7





Grupa: Zarejestrowani
Postów: 36
Pomógł: 2
Dołączył: 18.01.2009

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


Tak smile.gif Z zapytaniem jest wszystko OK. Kilka razy sprawdzałem. Korzystam z WebServa, może to jego wina.
Go to the top of the page
+Quote Post
piotrooo89
post 1.03.2009, 13:57:04
Post #8


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




  1. <?php
  2. $wynik = mysql_query("SELECT tresc FROM tabela WHERE anchor= '". mysql_real_escape_string($id) ."'");
  3. ?>


może coś takiego?


--------------------
Go to the top of the page
+Quote Post
Sekwer
post 1.03.2009, 14:18:17
Post #9





Grupa: Zarejestrowani
Postów: 36
Pomógł: 2
Dołączył: 18.01.2009

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


CODE
Parse error: syntax error, unexpected T_LOGICAL_OR in C:\Program Files\Serv\httpd\index.php on line 80


Da sie w ogóle tak zrobić, żeby nie było po id? Widzieliście gdzieć, żeby czytało z MySql nie po id?
Go to the top of the page
+Quote Post
erix
post 1.03.2009, 14:50:04
Post #10





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Pokaż cały kod... Bo tu akurat nie jest wina zapytania. A o ile pamiętam, to użycie konstrukcji ads() or sda() wymaga użycia małpiszona przed nazwą pierwszej funkcji.

Cytat
Widzieliście gdzieć, żeby czytało z MySql nie po id?

Na pewno się da, tylko popraw błędy w kodzie.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Sekwer
post 1.03.2009, 17:58:46
Post #11





Grupa: Zarejestrowani
Postów: 36
Pomógł: 2
Dołączył: 18.01.2009

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


Oto mój kod:
  1. <?php
  2.   if (isset($_GET['kat']))
  3.   @$id = $_GET['kat'];
  4.  
  5.   $wynik = mysql_query('SELECT tresc FROM tabela WHERE kat='.$id.'');
  6.   or die("Błąd zapytania");
  7.  
  8.   $strona = mysql_fetch_array($wynik);
  9.   echo $strona['tresc'];
  10.  ?>
Go to the top of the page
+Quote Post
erix
post 1.03.2009, 18:00:01
Post #12





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat(erix @ 1.03.2009, 13:36:34 ) *
Mam nadzieję, że tego a'la 2. z postu bełdzia.

Jednak nie to. Gdzie masz cudzysłowy przy wartości w WHERE?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Sekwer
post 1.03.2009, 18:27:39
Post #13





Grupa: Zarejestrowani
Postów: 36
Pomógł: 2
Dołączył: 18.01.2009

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


  1. <?php
  2. $wynik = mysql_query('SELECT tresc FROM tabela "WHERE" kat='.$id.'')
  3. ?>


Chodzi o takie coś? Bo jak zmieniam to nadal nie pobiera z bazy.
Go to the top of the page
+Quote Post
bełdzio
post 1.03.2009, 18:30:14
Post #14





Grupa: Zarejestrowani
Postów: 690
Pomógł: 81
Dołączył: 6.04.2005
Skąd: Szczecin

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


poczytaj o podstawach sql ;/

  1. <?php
  2. $wynik = mysql_query('SELECT tresc FROM tabela WHERE kat="'.$id.'"')
  3. ?>


--------------------
Go to the top of the page
+Quote Post
Sekwer
post 1.03.2009, 18:34:59
Post #15





Grupa: Zarejestrowani
Postów: 36
Pomógł: 2
Dołączył: 18.01.2009

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


Chłopaki dzięki działa, taki dziecinny bład. Tak czy inaczej macie po +Pomógł smile.gif
Pozdrowienia.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 02:40