Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]+[mysql] Problem z zapytaniem
terreska
post 5.04.2007, 07:54:28
Post #1





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 23.07.2006

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


Witam wszystkich snitch.gif

Mam zapytanie:

  1. <?php
  2. $dzis = date("Ymd");  
  3. $query="select * from artykuly";
  4. $q->query($query);
  5. while ($q->next_record())
  6. {
  7. $linkspr=$q->f("link");
  8. $query2="select * from spis where date<>'$dzis' and linkdo='$linkspr' and uzytkownik='$sess_id'";
  9.  $q->query($query2);
  10.  
  11. $rows.=str_replace("{artykul}",$q->f("picture"),$row);
  12. }
  13. ?>


Problem w tym, że wyświetla mi tylko 1 "picture" z bazy "artykuly" mimo, że powinno wyświetlać kilka.
Proszę o pomoc.

Ten post edytował terreska 5.04.2007, 08:13:37
Go to the top of the page
+Quote Post
acztery
post 5.04.2007, 08:45:16
Post #2





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

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


wydaje mi się, że błąd leży tutaj $q->next_record() wyśwetla tylko 1 rekor moze powinno być cos z fetch.

PS czego używasz to Twoja klasa do obsługi baz danych? czy PEAR:biggrin.gifB lub inne

aha rozumiem że chcesz wyśwetlić rekordy spełniające jakiś warunek w Twoim przypadku określona data. nie lepiej zrobić prostą relacje.

Ten post edytował acztery 5.04.2007, 08:46:46
Go to the top of the page
+Quote Post
terreska
post 5.04.2007, 21:11:13
Post #3





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 23.07.2006

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


Cytat(acztery @ 5.04.2007, 09:45:16 ) *
wydaje mi się, że błąd leży tutaj $q->next_record() wyśwetla tylko 1 rekor moze powinno być cos z fetch.

PS czego używasz to Twoja klasa do obsługi baz danych? czy PEAR:biggrin.gifB lub inne

aha rozumiem że chcesz wyśwetlić rekordy spełniające jakiś warunek w Twoim przypadku określona data. nie lepiej zrobić prostą relacje.


Nie wiem jaka to klasa, bo się na tym nie znam.

Tak chce, wyświetlić rekordy spełniające określony warunek. Pewnie lepiej zrobić prostą relację, ale ja tego nie potrafię. Próbowałam na różne sposoby.

Ma ktoś pomysł co z tym zrobić?
Go to the top of the page
+Quote Post
Norbas
post 6.04.2007, 09:15:49
Post #4





Grupa: Zarejestrowani
Postów: 100
Pomógł: 1
Dołączył: 6.02.2006

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


W pętli:
Kod
while ($q->next_record())

wywołujesz kolejne zapytanie:
Kod
$q->query($query2);

W ten sposób z dużym prawdopodobieństwem zmieniasz $q (nic nie piszesz o klasie, która została wykorzystana, PHPLib?)

Rozwiązanie tego typu, że wykonujesz jedno zapytanie i następnie w pętli kolejne zapytania nie jest optymalne. Powinnaś się zastanowić jak z tych dwóch zapytań za pomocą złączenia wykonać jedno.


--------------------
Go to the top of the page
+Quote Post
terreska
post 6.04.2007, 22:33:43
Post #5





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 23.07.2006

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


Niestety nie wiem co to za klasa. Zupełnie nie znam się na tym. Przerabiam znaleziony skrypcik dla swoich potrzeb, niestety z niepowodzeniem.
Wiem, że nie jets to optymalne, ale próby połączenia tego w 1 zapytanie nic nie dały.

W tej chwili kod wygląda tak:

  1. <?php
  2. $dzis = date("Ymd");
  3. $query="select * from artykuly";
  4. $q->query($query);
  5. while ($q->next_record())
  6. { $linkspr=$q->f("link");
  7. $query2="select linkdo from spis where date<>'$dzis' and linkdo='$linkspr' and uzytkownik='$sess_id'";
  8. $wykonaj2=mysql_query($query2);
  9.  $query3="select picture from artykuly where linkdo='$wykonaj2'";
  10.  $wykonaj3=mysql_query($query3);
  11. $rows.=str_replace("{artykul}",$wykonaj3,$row); }
  12. ?>


Efektem jest wyświetlenie:
Resource id #11 Resource id #13 Resource id #15 Resource id #17
Powinna wyświetlić całkiem co innego.
Bardzo proszę o pomoc.

Ten post edytował terreska 6.04.2007, 22:35:19
Go to the top of the page
+Quote Post
strife
post 6.04.2007, 22:37:26
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


Cytat(terreska @ 6.04.2007, 23:33:43 ) *
[...]Resource id #11 Resource id #13 Resource id #15 Resource id #17
Powinna wyświetlić całkiem co innego. [...]

Ponieważ mysql_query" title="Zobacz w manualu PHP" target="_manual zwraca Resource, musisz to jeszcze obrobić. Przykład:
  1. <?php
  2. // ...
  3. $wykonaj3=mysql_fetch_array(mysql_query($query3));
  4. echo '<pre>';
  5. var_export( $wykonaj3 );
  6. echo '</pre>';
  7. ?>


Nie znasz funkcji - manual smile.gif

Pozdrawiam.


--------------------
Go to the top of the page
+Quote Post
terreska
post 8.04.2007, 21:10:38
Post #7





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 23.07.2006

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


Tym razem wyświetla tak:

array ( 0 => 'http://onet.pl', 'reason' => 'http://onet.pl', )falsearray ( 0 => 'http://45', 'reason' => 'http://45', )falsefalsefalsefalsefalse

Jak to można naprawić, aby przyniosło spodziewane efekty?

Ma ktoś jakiś pomysłquestionmark.gif

Bardzo proszę o pomoc, bo sama sobie z tym nie poradze dry.gif

Ten post edytował terreska 8.04.2007, 21:09:44
Go to the top of the page
+Quote Post
Zeman
post 8.04.2007, 21:36:41
Post #8





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 29.03.2007

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


Cytat(terreska @ 8.04.2007, 22:10:38 ) *
Tym razem wyświetla tak:

array ( 0 => 'http://onet.pl', 'reason' => 'http://onet.pl', )falsearray ( 0 => 'http://45', 'reason' => 'http://45', )falsefalsefalsefalsefalse

Jak to można naprawić, aby przyniosło spodziewane efekty?

Ma ktoś jakiś pomysłquestionmark.gif

Bardzo proszę o pomoc, bo sama sobie z tym nie poradze dry.gif


Proszę napisać jak powinien wyglądać spodziewany efekt końcowy i jaka jest struktura tabel (oczywiście nie wszystkich tylko tych istotnych dla problemu). Teraz to musimy zbyt dużo zgadywać.


--------------------
www.web2biz.pl | trochę o web-usability
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: 14.08.2025 - 04:53