Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Wyciągnięcie danych z bazy
Forum PHP.pl > Forum > Przedszkole
amii
Mam taki fragment kodu. Struktura tabel to:

katalogi_id
id int(11) | id_kat int(11) | ajax_adres int(11)
677 1 257
678 1 259
679 1 252
..... .... ......
963 34 233

katalogi
id int(11) | ajax varchar(80)
1 www.katalog.pl
2 www.innykatalog.pl
.... .............................
34 www.ostatnikatalog.pl

Pole id_kat to pole id z katalogi, id autoimkrementy i primary key. To co jest pomiędzy between jest OK bo resztę rekordów pobiera i sprawdzałem wyświetlając. Wie ktoś zatem czemu nie pobiera tego rekordu questionmark.gif

  1. $pobierz_katalogi1 = "SELECT * FROM katalogi_id LEFT JOIN katalogi ON katalogi_id.id=katalogi.id WHERE katalogi_id.id BETWEEN $katalog_limit_min AND $katalog_limit_max";
  2. $zap_katalogi1 = mysql_query($pobierz_katalogi1) or die('Nastapil blad w polaczeniu w zapytaniu do bazy w instrukcji $pobierz_katalogi1 : '. mysql_error());
  3.  
  4. $pobierz_proxy1 = "SELECT adresy FROM proxy WHERE id BETWEEN $proxy_limit_min AND $proxy_limit_max";
  5. $zap_proxy1 = mysql_query($pobierz_proxy1) or die('Nastapil blad w polaczeniu w zapytaniu do bazy w instrukcji $pobierz_proxy1 : '. mysql_error());
  6.  
  7. while ($row = mysql_fetch_array($zap_katalogi1)) {
  8.  
  9. while ($row2 = mysql_fetch_array($zap_proxy1)) {
  10.  
  11. $row['ajax'] //wyswietla pusty rekord
  12.  
nospor
czemu while do proxy dales w petli while do katalogów? Przecież po pierwszym obrocie petli, proxy juz bedzie mial puste dane i nie bedzie nic wyswietlal przy kolejnych obrotach katalogów.

Coś zakręciłes
amii
Zmodyfikowałem w ten sposób ale nadal to samo:

  1. $pobierz_katalogi1 = "SELECT * FROM katalogi_id LEFT JOIN katalogi ON katalogi_id.id=katalogi.id WHERE katalogi_id.id BETWEEN $katalog_limit_min AND $katalog_limit_max";
  2. $zap_katalogi1 = mysql_query($pobierz_katalogi1) or die('Nastapil blad w polaczeniu w zapytaniu do bazy w instrukcji $pobierz_katalogi1 : '. mysql_error());
  3.  
  4. $pobierz_proxy1 = "SELECT adresy FROM proxy WHERE id=$proxy_limit_max";
  5. $zap_proxy1 = mysql_query($pobierz_proxy1) or die('Nastapil blad w polaczeniu w zapytaniu do bazy w instrukcji $pobierz_proxy1 : '. mysql_error());
  6. $pobranie = mysql_fetch_array($zap_proxy1);
  7. $wlaciwe_pobranie = $pobranie['adresy'];
  8. echo 'Wlasciwe pobranie = ' . $wlaciwe_pobranie . '<br>'; //tu sie prawidlowo wyswietla dla testu
  9.  
  10. while ($row = mysql_fetch_array($zap_katalogi1)) {
  11. echo 'Adres ajax to: '. $row['ajax'] . '<br>'; //a tu ciagle puste pole, wnioskuje ze cos jest nie tak z samym zapytaniem a potrzebuje pobrac pola ajax z katalogi oraz ajax_adres z katalogi_id
  12.  
  13.  
poli25
napisz mi naco chcesz otrzymac najprawdopodobniej bedziesz
musiał zrobic query 1 petal i w petli potem podpetal w query2 np:

$q1=SELECT id FROM katalogi_id LEFT JOIN katalogi ON katalogi_id.id=katalogi.id WHERE katalogi_id.id BETWEEN $katalog_limit_min AND $katalog_limit_max

while($row=mysql_fetch_array($q1))
{
$id=$row[0];
$q2=SELECT adresy FROM proxy WHERE id in('$id')

}

p.s. albo zmodyfikuj q1

$q1=SELECT adresy FROM proxy WHERE id in('SELECT ad FROM katalogi_id LEFT JOIN katalogi ON katalogi_id.id=katalogi.id WHERE katalogi_id.id BETWEEN $katalog_limit_min AND $katalog_limit_max)


while($row=mysql_fetch_array($q1))
{
$adres=$row[0];
echo $adres;
}
amii
OK rozstrzygnięte. Po prostu walnąłem się w warunku zamiast ON katalogi_id.id=katalogi.id powinno być
ON katalogi_id.id_kat=katalogi.id.
nospor a to co mówiłeś z pętlą powinno działać bo tam są $row i $row2 te pętle nie nadpisują się.
Sorki za zawracanie głowy ale na przyszłość odradzam innym nadawanie takich nazw tabel bo kod traci przejrzystość i takie rzeczy mogą się zdarzyć.
nospor
Cytat
nospor a to co mówiłeś z pętlą powinno działać bo tam są $row i $row2 te pętle nie nadpisują się.
Nie mowilem o nadpisywaniu a o wyczerpaniu sie danych. Druga petla w pierwszym obrocie petli wyczerpie już swoje dane i przy kolejnych obrotach pierwszej petli druga petla juz nie bedzie miala danych i w ogole nie bedzie wchodzich do drugiej petli
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.