Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Zczytanie danych z tabeli po ID
Komarek
post
Post #1





Grupa: Zarejestrowani
Postów: 114
Pomógł: 0
Dołączył: 18.12.2009

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


Witam
Moim zalozeniem jest napisanie prostego skrypciku ktory bedzie zczytywal dane z tabeli po ID.

przyklad:
http://moja-strona.pl/index.php?id=1

Zawartosc pliku index.php:

  1. <html>
  2. <?php
  3. $db = mysql_connect("host", "uzytkownik","haslo");
  4. mysql_select_db("baza",$db);
  5. ?>
  6. <body topmargin="0" leftmargin="-2">
  7. <basefont size="-1" face="MS GOTHIC">
  8. <?
  9. $wynik = mysql_query("SELECT * FROM tabela WHERE id=`.$_GET[id].`",$db);
  10. $wiersz = mysql_fetch_array($wynik);
  11.  
  12. echo "Imie: ".$wiersz['imie']." .";
  13. echo "Nick: ".$wiersz['nick']." .";
  14.  
  15.  
  16. ?>
  17. </body></html>


W mysqlu mam kolumny:
id
imie
nick


Niestety jak tak zrobilem, wywala mi blad:
Kod
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /xxxxxxxx/index.php on line 13


Linijka 13:
Kod
    $wiersz = mysql_fetch_array($wynik);


Wiec prosze, powiedzcie mi co mam zle.
Zaznaczam ze jeszcze jestem slabiutki w tych dziedzinach.

Pozdrawiam, Komar (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
MateuszS
post
Post #2





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


blad w zapytaniu, ma byc

  1. $wynik = mysql_query("SELECT * FROM tabela WHERE id=".$_GET['id']."") or die(mysql_error());


Ten post edytował MateuszScirka 7.03.2010, 14:42:10
Go to the top of the page
+Quote Post
Komarek
post
Post #3





Grupa: Zarejestrowani
Postów: 114
Pomógł: 0
Dołączył: 18.12.2009

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


No ok, blad z mysql_fetch_array zniknal

jednak teraz mam taki problem:

Kod
Unknown column '1' in 'where clause'


Umiem przeczytac ten blad, najwyrazniej chodzi o to ze nia ma takiej kolumny.

Mam 3 kolumny.
id, nick, imie

mam zalozmy 2 rekordy

1 Komarek Konrad
2 SuperNick Robert

jezeli dam index.php?id=1

chce by sie wyswitlaly dane z wiersza w ktorym id=1

czyli dla
$wiersz['nick']
bedize wyswietlona wartosc Komarek
a dla $wiersz['imie']
bedzie Konrad

Nie mam pojecia juz jak to zrobic, tak mi sie wszystko pogmatwalo (IMG:style_emoticons/default/sad.gif)

prosze o pomoc (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
MateuszS
post
Post #4





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


wielkosci liter sie zgadzaja w polach? Zapytanie wykonujesz gdy istnieje GET["id"] czy nawet gdy jestes na index.php ?
Go to the top of the page
+Quote Post
Komarek
post
Post #5





Grupa: Zarejestrowani
Postów: 114
Pomógł: 0
Dołączył: 18.12.2009

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


tak, wielkosci liter sie zgadzaja.

po prostu przechodze na index.php?id=1

jednak blad jest w tym ze skrypt szuka KOLUMNY o nazwie ktora podam w ?id=...

add:

jak probuje przejsc na strone bez definiowania ID
czyli na index.php

otrzymuje taki blad:
Kod
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1


Ten post edytował Komarek 7.03.2010, 15:05:33
Go to the top of the page
+Quote Post
piotrooo89
post
Post #6


Newsman


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




to ma działać na zasadzie że ty podajesz wartość kolumny a nie jej nazwę.
Go to the top of the page
+Quote Post
MateuszS
post
Post #7





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


no tak, w tym drugim przypadku masz blad bo musisz dorzucić warunek

  1. if(isset($_GET["id"])) {
  2. //tu ten caly kod
  3. }
  4.  


A co do pierwszego bledu... to cos robisz zle i sie nie przyznajesz (IMG:style_emoticons/default/tongue.gif)

Ten post edytował MateuszScirka 7.03.2010, 15:10:12
Go to the top of the page
+Quote Post
Komarek
post
Post #8





Grupa: Zarejestrowani
Postów: 114
Pomógł: 0
Dołączył: 18.12.2009

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


a co mozna zle zrobic ? (IMG:style_emoticons/default/biggrin.gif)

nie mam zielonego pojecia co jest (IMG:style_emoticons/default/sad.gif)

czy to na pewno powinno byc WHERE ?

nie mam zielonego pojecia czemu to nie trybi (IMG:style_emoticons/default/sad.gif)

add:

jeszcze raz:

mam cos takiego:
  1. <?php
  2. $db = mysql_connect("xxx", "xxx","xxx");
  3. mysql_select_db("xxx",$db);
  4. $wynik = mysql_query("SELECT * FROM tabela WHERE authid=". $_GET['id'] ."") or die(mysql_error());
  5. $wiersz = mysql_fetch_array($wynik);
  6. echo "ID: ".$wiersz['authid']."<br />";
  7. echo "Imie: ".$wiersz['imie']."<br />";
  8. echo "Nick: ".$wiersz['nick']."<br />";
  9. ?>


I to nie dziala, czemu ? (IMG:style_emoticons/default/biggrin.gif)


OK DZIALA (IMG:style_emoticons/default/exclamation.gif) !

Oto rozwiazanie:
blad byl w ten linijce:
Kod
$wynik = mysql_query("SELECT * FROM tabela WHERE authid=". $_GET['id'] ."") or die(mysql_error());


A mianowicie w tej czesci:
Kod
WHERE authid=". $_GET['id'] .""


A dokladnie tutaj:
Kod
= " .  $ _ G E T [ ' i d ' ]   . " "


Umyslnie napisalem spacje wszedzie (IMG:style_emoticons/default/biggrin.gif)

Powinno byc tak:

Kod
= ' " .  $ _ G E T [ ' i d ' ]   . " ' "


(IMG:style_emoticons/default/biggrin.gif)

Ten post edytował Komarek 7.03.2010, 15:24:12
Go to the top of the page
+Quote Post
piotrooo89
post
Post #9


Newsman


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




teoretycznie nie. po ID powinno być typu int czyli liczbowe i nie trzeba było go umieszczać jako stringa, bo teraz właśnie tak traktujesz int'a jako ciąg znaków.
Go to the top of the page
+Quote Post
Komarek
post
Post #10





Grupa: Zarejestrowani
Postów: 114
Pomógł: 0
Dołączył: 18.12.2009

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


ale nie przejmujmy sie tym (IMG:style_emoticons/default/biggrin.gif)
dziala i dziekuje (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
piotrooo89
post
Post #11


Newsman


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




hmmmm, czy ja wiem... dziwne podejście, jak coś jest jakoś określone to chyba powinno się tego stosować. liczba to liczba, string to string, nie będzie inaczej.
Go to the top of the page
+Quote Post
Kużdo
post
Post #12





Grupa: Zarejestrowani
Postów: 181
Pomógł: 14
Dołączył: 4.06.2008

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


  1. <?php
  2. @mysql_connect("host", "user", "pass") or die("Access Denied.");
  3. @mysql_select_db("baza") or die("Wrong MySQL database.");
  4. if(!empty($_GET['id'])){
  5. $wynik = mysql_query("SELECT * FROM tabela WHERE authid=".$_GET['id']) or die(mysql_error());
  6. $wiersz = mysql_fetch_array($wynik);
  7. echo 'ID: '.$wiersz['authid'].'<br />Imie: '.$wiersz['imie'].'<br />Nick: '.$wiersz['nick'];
  8. } else echo 'Brak argumentu GET!';
  9. ?>

Wersja skrócona i o wiele przejrzystsza ;P Potestuj sobie ;P
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: 11.10.2025 - 23:43