Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][SQL]Łączenie zapytań
sledzik
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 1.02.2016

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


Czy da się połączyć takie dwa zapytania w jedno?
Wszystko się opiera o tabele news ale nie wychodzi mi to.. ;/

  1. $query1 ="
  2. SELECT sos_categories.*
  3. FROM sos_news
  4. JOIN sos_categories
  5. ON sos_categories.categories_id = sos_categories.categories_id
  6. ORDER BY news_date_add DESC LIMIT 0, 5
  7. ";



  1. $query2 ="
  2. SELECT ".$prefix."news.*,".$prefix."users.*,".$prefix."news_categories.*
  3. FROM ".$prefix."news
  4. JOIN ".$prefix."users
  5. ON ".$prefix."news.users_id = ".$prefix."users.users_id
  6. JOIN ".$prefix."news_categories
  7. ON ".$prefix."news.news_id = ".$prefix."news_categories.news_id
  8. ORDER BY news_date_add
  9. DESC LIMIT $limit, $onpage
  10. ";


Prubuje tak ale to nie dziala:
  1. $query3 ="
  2. SELECT ".$prefix."news.*,".$prefix."users.*,".$prefix."news_categories.*,".$prefix."categories.*
  3. FROM ".$prefix."news
  4. JOIN ".$prefix."users
  5. ON ".$prefix."news.users_id = ".$prefix."users.users_id
  6. JOIN ".$prefix."news_categories
  7. ON ".$prefix."news.news_id = ".$prefix."news_categories.news_id
  8. JOIN ".$prefix."sos_categories
  9. ON ".$prefix."sos_categories.categories_id = ".$prefix."sos_categories.categories_id
  10. ORDER BY news_date_add
  11. DESC LIMIT $limit, $onpage
  12. ";


Ten post edytował sledzik 1.02.2016, 20:48:09
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
sledzik
post
Post #2





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 1.02.2016

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


Nie spokojnie (IMG:style_emoticons/default/smile.gif)
bardzo cenie twoje rady, lecz nie zawsze umiem je zastosowac...

wymoncilem cos takiego(ponizej kod):

Wyswietla sie fajnie, ale problem jest taki, ze gdy np aktywuje lub dezaktywuje newsa
  1. if ($newsy['active']=='0'){
  2. echo'<td>
  3. <a href="admin.php?s=news&a=akt&id='.$nid.'" id="js-news-aktywny" data-original-title="Przyklej" data-toggle="tooltip" type="button" class="btn btn-xs btn-danger js-are-you-sure"><i class="fa fa-fw fa fa-close"></i></a>
  4. </td>';


to zawsze korzysta z tego samego id . Czyli zawsze ten sam news..

  1. if(mysqli_num_rows($result) > 0) {
  2. $newst = array();
  3. while($r = mysqli_fetch_assoc($result)) {
  4.  
  5. $nid = $r['news_id'];
  6.  
  7. //jeśli nie było jeszcze danego newsa, to ją tworzymy
  8. if (!isset($newst[$nid]))
  9. $newst[$nid] = array(
  10. 'users' =>$r['users_login'],
  11. 'name' => $r['news_title'],
  12. 'date_add' =>$r['news_date_add'],
  13. 'date_end' =>$r['news_date_end'],
  14. 'display' =>$r['news_display'],
  15. 'active' =>$r['news_active'],
  16. 'stick' =>$r['news_stick'],
  17. 'categories' => array());
  18.  
  19. //dodajemy do newsa kolejne katgorie
  20. if (!empty($r['categories_name'])) //jeśli istnieje news
  21. $newst[$nid]['categories'][] = array('bg' => $r['categories_color_bg'], 'color' => $r['categories_color_text'], 'name' => $r['categories_name'], 'id'=>$r['categories_id']);
  22.  
  23.  
  24. /* echo'<pre>';
  25.   print_r($newst); //do obejrzenia jak wygląda wygenerowana tablica
  26.   echo'</pre>'; */
  27.  
  28. }
  29.  
  30.  
  31. //a teraz wygenerujemy stronę na podstawie uzyskanych danych
  32. echo '<table class="table">
  33. <thead>
  34. <tr>
  35. <th>LOGIN</th>
  36. <th>TYTUL</th>
  37. <th>KATEGORIA</th>
  38. <th>DATA ADD</th>
  39. <th>DATA END</th>
  40. <th>WYŚ</th>
  41. </tr>
  42. </thead>
  43. <tbody>
  44. ';
  45. foreach ($newst as $id => $newsy){ //petla, która leci po newsach
  46. echo '<tr>
  47. <td>'.$newsy['users'].'</td>
  48. <td>'.$newsy['name'].'</td><td>';
  49. foreach ($newsy['categories'] as $cat){ //pętla, która leci po kategoriach w newsach
  50. echo"<span class='rama label' style='color:#".$cat['color']."; background-color:".$cat['bg'].";'>".$cat['name']."</span>";
  51. }
  52. echo '</td><td>'.$newsy['date_add'].'</td>
  53. </td><td>'.$newsy['date_end'].'</td>
  54. </td><td>'.$newsy['display'].'</td>
  55. ';
  56.  
  57. if ($newsy['active']=='0'){
  58. echo'<td>
  59. <a href="admin.php?s=news&a=akt&id='.$nid.'" id="js-news-aktywny" data-original-title="Przyklej" data-toggle="tooltip" type="button" class="btn btn-xs btn-danger js-are-you-sure"><i class="fa fa-fw fa fa-close"></i></a>
  60. </td>';
  61. }
  62. if ($newsy['active']=='1'){
  63. echo'<td>
  64. <a href="admin.php?s=news&a=dezakt&id='.$nid.'" id="js-news-dezaktywny" data-original-title="Odklej" data-toggle="tooltip" type="button" class="btn btn-xs btn-success js-are-you-sure"><i class="fa fa-fw fa fa-check"></i></a>
  65. </td>';
  66. }
  67.  
  68.  
  69.  
  70.  
  71.  
  72. }
  73. echo '</tr>
  74. </tbody>
  75. </table>';
  76.  
  77.  
  78. }
Go to the top of the page
+Quote Post

Posty w temacie
- sledzik   [PHP][SQL]Łączenie zapytań   1.02.2016, 20:47:47
- - trueblue   [SQL] pobierz, plaintext ON sos_categories.categor...   1.02.2016, 20:53:18
- - sledzik   categories czyli(np) spozywcze cukiernicze ala ma ...   1.02.2016, 21:18:06
- - trueblue   Wskazałem Ci błąd.   1.02.2016, 21:37:20
- - sledzik   no ok ale szkopul w tym ze w tabeli news nie ma za...   1.02.2016, 21:43:14
- - trueblue   No, więc łączysz je przez news_categories.   1.02.2016, 21:45:23
- - sledzik   kurde nie rozumiem , dalbys mi strone gdzie sa jak...   1.02.2016, 21:51:59
- - com   no żeby coś załączyć musisz mieć element wspólny(k...   1.02.2016, 23:57:52
- - sledzik   no tak .. dlatego tabela news_categories laczy -...   2.02.2016, 14:52:56
- - trueblue   Łączysz (i wybierasz we FROM) tylko te tabele, z k...   2.02.2016, 15:30:40
- - sledzik   Teoretycznie chyba mi sie udalo, blad byl gupi,a r...   2.02.2016, 15:31:37
- - nospor   Musis wpierw pogrupowac dane a potem wyswietlac ja...   2.02.2016, 15:35:50
- - sledzik   mógłby mi ktoś pomoc z tym grupowaniem? bo pomimo ...   2.02.2016, 22:37:07
- - nospor   if (!isset($categories[$nid])) ...   2.02.2016, 22:52:29
- - sledzik   No ok, literowka po ciaglych modyfikacjach.. lecz ...   2.02.2016, 22:59:24
- - nospor   skoro chcesz grupowac po newsach to masz odwrocic ...   2.02.2016, 23:01:25
- - sledzik   przeciez juz newsy sa nadrzedne to nie w tym rzecz...   2.02.2016, 23:04:56
- - nospor   W kodzie co podales grupujesz po category a nie po...   2.02.2016, 23:27:27
- - sledzik   oO , pominimy tamte kody Ten kod jest wedlug mnie...   2.02.2016, 23:39:48
- - nospor   Kod wyswietlajacy ma byc poza petla WHILE a nie w ...   2.02.2016, 23:46:43
- - sledzik   No oczywiscie.. jak ja kocham takie bledy, az sie ...   3.02.2016, 00:12:10
- - nospor   Najpierw przygotowujesz dane do wyswietlania, pote...   3.02.2016, 10:52:46
- - sledzik   Nie da sie tego jakos prosciej zrobic zapytaniami ...   3.02.2016, 12:07:25
- - nospor   Czytamy jeszcze raz ze zrozumieniem: najpierw logi...   3.02.2016, 12:14:02
- - sledzik   wierze, wierze.. tylko MVC to kod obiektowy , a mi...   3.02.2016, 12:15:53
- - nospor   ja ci nie karze tego pisac jako obiektowka. Ja ci ...   3.02.2016, 12:17:16
- - sledzik   Nie spokojnie bardzo cenie twoje rady, lecz nie z...   3.02.2016, 13:33:17
- - nospor   Jak to mowia: znajdz 10 roznic $id $nid ...   3.02.2016, 13:43:31
- - sledzik   dalo sie to tez rozwiazac tak: 'id' =>...   3.02.2016, 13:49:35
- - nospor   No skoro id masz w index, to wystarczy sie wlasnie...   3.02.2016, 13:51:07


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: 9.10.2025 - 12:47