Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]+[mysql] Problem z zapytaniem
Forum PHP.pl > Forum > Przedszkole
terreska
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.
acztery
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.
terreska
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ć?
Norbas
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.
terreska
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.
strife
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.
terreska
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
Zeman
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ć.
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.