Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]
Pozycjonowanie i Optymalizacja > Projektowanie stron > PHP i MySQL
b79
EDIT. z przejęcia problemem nie opisałem poprawnie tematu, a nie widze opcji edycji, jezeli ktoś z moderatorów może prosze poprawić.

witam,

jestem początkującym programistą który dorwał w sieci gdzieś skrypt i chce go dostosować do swoich potrzeb mimo sporych braków wiedzy smile.gif

mam baze w której sa dwie tabele static i dynamic

udało mi się wyciągnąć dane ze statica zgodnie z moimi ząłożeniami i prezentuje je w tabeli html która ma pola np. url, słowo i chciałbym dołożyć do tego dane z tabeli dynamic w której znajdują się dane dotyczące poyzcji

czyli docelowo chciałbym aby dane wyświetlały się tak url, słowo, ostatnia pozycja

domena.pl | słowo | 5

kombinuje na wszystkie i sposoby i umiem wyciągnąc te dane ale wyswietlaja się w jakiś dziwny sposób zmaiast w jednym wierszu to w nowym w takiej postaci

domena.pl | słowo | puste
puste | puste | pozycja

a tak wygląda mój kod

KOD
// pobierabie wartości z tabeli
   $sql = "SELECT * FROM static_data ORDER BY url ASC";
   $rezultat = mysql_query($sql) or die(mysql_error());
  
   $sql2 = "SELECT google_ranking FROM dynamic_data WHERE sid='4' ORDER BY fetch_date DESC LIMIT 1";
   $rezultat2 = mysql_query($sql2) or die(mysql_error());
  
// wyświetlanie rezultatu na ekranie
      echo "<table cellpadding=\"2\" border=1>";
      echo "<tr>";
      echo "<th>DOMENA</th>";
      echo "<th>SŁOWO KLUCZOWE</th>";
      echo "<th>ACTIVE</th>";
      echo "<th>POZYCJA</th>";
      echo "<th>SZCZEGÓŁY</th>";
      echo "<th>EDYCJA</th>";
      echo "<th>USUŃ</th>";
      echo "</tr>";
     while (($lista=mysql_fetch_array($rezultat)) | ($lista2=mysql_fetch_array($rezultat2))) {

         echo "<tr>";
      echo "<td>".$lista['url']."</td>";
      echo "<td>".$lista['keyword']."</td>";
      echo "<td align=\"center\">".$lista['active']."</td>";
      echo "<td align=\"center\">".$lista2['google_ranking']."</td>";
      echo "<td align=\"center\"><a href=\"stats.php?s=".$lista['id']."\">info</a></td>";
      echo "<td align=\"center\"><a href=\"stats.php?a=edit&id=".$lista['id']."\">edytuj</a></td>";
      echo "<td align=\"center\"><a href=\"stats.php?a=del&id=".$lista['id']."\">usuń</a></td>";
      echo "</tr>";
      }
      echo "</table>";

?>


może mi ktoś z tym pomóc ??

rzeczy do poprawienia
1. w zapytaniu $sql2 trzeba by zrobić że sid=$id z tabeli static
2. pozycja z zapytania $sql2 wyświetla się w jednym wierszy tabeli html razem z danym wynikowymi polecenia $sql.

mam nadzieję że jasno wyraziłem istotę problemu smile.gif
Mion
Piękny kod KAT serwera pętla w pętli nonono.gif
b79
jakie rozwiązanie zatem proponujesz ?
Mion
Nie wiem jaki jest parobem wiec nie mogę konkretnego podsunąć rozwiązania. Tak, czy inaczej musisz tak zaprojektować system aby wyeliminować pętle w pętli. Jeśli potrzebujesz wybierać z dane z wielu tabel jednocześnie zastosuj złączenia:
http://dev.mysql.com/doc/refman/5.0/en/join.html, lub http://republika.onet.pl/20405,16585,1,04,kursy.html

b79
CYTAT(Mion @ 13.02.10 - 15:26) *
Nie wiem jaki jest parobem wiec nie mogę konkretnego podsunąć rozwiązania. Tak, czy inaczej musisz tak zaprojektować system aby wyeliminować pętle w pętli. Jeśli potrzebujesz wybierać z dane z wielu tabel jednocześnie zastosuj złączenia:
http://dev.mysql.com/doc/refman/5.0/en/join.html, lub http://republika.onet.pl/20405,16585,1,04,kursy.html


@Mion dzięki za podpowiedź, doszedłem do takiego zapytania SQL

KOD
SELECT * FROM static_data, dynamic_data WHERE static_data.id=dynamic_data.sid ORDER BY static_data.url, keyword ASC ,dynamic_data.fetch_date DESC


ostatnie co trzeba zrobić to ustawić LIMIT 1 dla wyników z tabeli dynamic_data

jakiś pomysł ?? jak dopiszę to do tego zapytania to niestety limituje wszystkie wyniki i zamiast mieć 15 wyników mam 1 sad.gif a bez opcji limit 1 mam 300 pozycji biggrin.gif

jak to najprościej przefiltrować ?
Mion
Klauzula LIMIT $OD, $ILE więcej na ten temat
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-2012 Invision Power Services, Inc.