Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL][SQL]Tagowanie newsa
viamarimar
post
Post #1





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

Ostrzeżenie: (10%)
X----


Problem jest nastepujacego typu:
funkcja o nazwie mysql_insert_id(); ktora powinna zwracac id poprzednie inserta zweraca zero i pytanie do was dlaczego tak jest?

  1. $zapytanie=mysql_query("INSERT INTO ".$prefix."news (`news_id`, `news_users_id`, `news_tytul`, `news_tresc`, `news_kategorie_id`, `news_aktywny`, `news_dataDodania`, `news_dataWygasniecia`)
  2. VALUES('','".$user."','".$tytul."','".$tresc."', '".$kategoria."','".$aktywny."',NOW(), '".$datawygasniecia."')") or die(mysql_error());
  3. $result=mysql_query($zapytanie);
  4.  
  5. printf("Last inserted record has id %d\n", mysql_insert_id());
  6. $news = mysql_insert_id();
  7.  
  8.  
  9. $ile_wykonac = 0;
  10. $tag=explode(',', $tag);
  11. $tag=array_map('trim', $tag);
  12. $tag=array_unique($tag);
  13. foreach($tag as $i => $k){
  14. print($k.', ');
  15. $tag[] .=$k;
  16. $ile_wykonac=$ile_wykonac+1;
  17. }
  18.  
  19. for($i=0;$i<=$ile_wykonac;$i++){
  20. $zapytanie=mysql_query("INSERT INTO ".$prefix."tag (`tag_id`, `tag_news_id`, `tag_nazwa`)
  21. VALUES('','".$news."','".$tag[$i]."')") or die(mysql_error());
  22. $result=mysql_query($zapytanie);
  23. }
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
viamarimar
post
Post #2





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

Ostrzeżenie: (10%)
X----


Dodaje tagi do tabli jak powyzej pokazalem , update na newsach robie j.w
Chce robiac upadte newsa robic rowniez aktualiazje poszczegolnych tagow

W zapisie tagi odzielone przy wyswietlaniu tagi sa na zasadzie

jas,malgosia,test,

dlatego kasuje ostatni znak

jas,malgosia,test

a teraz chce to edytowac tylko edytujac edytuje cala tabele
  1. $zap4 = "UPDATE ".$prefix."tag
  2. JOIN ".$prefix."news
  3. ON ".$prefix."news.news_id = ".$prefix."tag.tag_news_id
  4. SET tag_nazwa='".$tag[$i]."'
  5. WHERE ".$prefix."news.news_id='".$id."' ";


napewno dlatego ze uzywam tablicy opartej o $i , czyli np news mial 5 tagow i jak wiadac wyzej updaate zakreci sie 5 x nie bardzo mam pomysl jak to rozwiazac zeby moc zmieniac po 1 tagu

Majac 5 tagow dla newsa o id 39 po update wychodzi cos takiego, a chce zeby sie zmienialo po jednym, a nie wszystkie na raz


37 39 html1
39 39 html1
40 39 html1
41 39 html1
42 39 html1
43 39 html1

@ref





takie sa bledy, niektore wiedze pierwszy raz dlatego nie mam pojecia jak to zmienic pomimo ze to warning
najwazniejsze ze tagi sie nie edytuja a to byl priorytet
  1. Warning: explode() expects parameter 2 to be string, array given in xxxv\www\portfolio\include\panel\news.php on line 558
  2. Call Stack
  3. # Time Memory Function Location
  4. 1 0.0013 361808 {main}( ) ..\admin.php:0
  5. 2 1.0668 999912 include( 'xxx\www\portfolio\include\panel\news.php' ) ..\admin.php:56
  6. 3 1.0697 1000256 explode ( ) ..\news.php:558
  7.  
  8. ( ! ) Warning: array_map() [<a href='function.array-map'>function.array-map</a>]: Argument #2 should be an array in xxx\www\portfolio\include\panel\news.php on line 559
  9. Call Stack
  10. # Time Memory Function Location
  11. 1 0.0013 361808 {main}( ) ..\admin.php:0
  12. 2 1.0668 999912 include( 'xxx\www\portfolio\include\panel\news.php' ) ..\admin.php:56
  13. 3 1.0701 1000208 array_map ( ) ..\news.php:559
  14.  
  15. ( ! ) Warning: array_unique() expects parameter 1 to be array, null given in xxx\www\portfolio\include\panel\news.php on line 560
  16. Call Stack
  17. # Time Memory Function Location
  18. 1 0.0013 361808 {main}( ) ..\admin.php:0
  19. 2 1.0668 999912 include( 'xxx\www\portfolio\include\panel\news.php' ) ..\admin.php:56
  20. 3 1.0705 1000208 array_unique ( ) ..\news.php:560
  21.  
  22. ( ! ) Warning: Invalid argument supplied for foreach() in xxx\www\portfolio\include\panel\news.php on line 561


to co wymyslilem
[spoiler]
  1. #edytowanie newsow
  2. if(isset($_GET['s']) && $_GET['s']=='news' && isset($_GET['a']) && $_GET['a']=='edytuj' && isset($_GET['id'])){
  3. $id=$_GET['id'];
  4. $query ="SELECT ".$prefix."news.*, ".$prefix."users.*,".$prefix."kategorie.*
  5. FROM ".$prefix."news
  6. LEFT JOIN ".$prefix."users
  7. ON ".$prefix."news.news_users_id = ".$prefix."users.users_id
  8. LEFT JOIN ".$prefix."kategorie
  9. ON ".$prefix."news.news_kategorie_id = ".$prefix."kategorie.kategorie_id
  10. WHERE ".$prefix."news.news_id ='".$id."'";
  11. $result=mysql_query($query);
  12. $wiersz=mysql_fetch_array($result);
  13. <form method="POST" action="admin.php?s=news&a=wyedytuj&id='.$wiersz['news_id'].'" role="form">
  14. <div class="row">
  15.  
  16. <div class="col-xs-8">
  17. Tytuł: <input type="text" class="form-control" name="tytul" value="'.$wiersz['news_tytul'].'" >
  18. </div>
  19.  
  20.  
  21. <div class="col-xs-8">
  22. Treść: <textarea class="ckeditor" name="tresc" >'.$wiersz['news_tresc'].'</textarea>
  23. </div>
  24.  
  25.  
  26.  
  27. <div class="col-xs-8">';
  28. echo 'Kategoria:';
  29. $result=mysql_query("SELECT kategorie_id,kategorie_nazwa FROM ".$prefix."kategorie");
  30. echo'<select name="kategoria" class="form-control place_holder" >';
  31.  
  32. while($r = mysql_fetch_assoc($result)) {
  33. echo '<option value='.$r['kategorie_id'].'>'.$r['kategorie_nazwa'].'</option>';
  34. }
  35.  
  36. echo '</select>';
  37. echo'</div>
  38.  
  39.  
  40. <div class="col-xs-8">';
  41.  
  42. $jutro = date('Y-m-d',strtotime("+1 day"));
  43. $za_trzy_dni = date('Y-m-d',strtotime("+3 day"));
  44. $za_tydzien = date('Y-m-d',strtotime("+1 week"));
  45. $za_miesiac = date('Y-m-d',strtotime("+1 month"));
  46. $za_rok = date('Y-m-d',strtotime("+1 year"));
  47. $wiele = date('Y-m-d',strtotime(" + 10 years 5 months 4 weeks 4 days"));
  48.  
  49. echo 'Data wygaśnięcia:';
  50. echo '<select class="form-control place_holder" name="datawygasniecia" required >';
  51. if($wiersz['news_dataWygasniecia']==$jutro){
  52. echo'<option value="'.$wiersz['news_dataWygasniecia'].'">Do jutra</option>';
  53. echo'<option value="'.$za_trzy_dni.'">Trzy dni</option>';
  54. echo'<option value="'.$za_tydzien.'">Tydzień</option>';
  55. echo'<option value="'.$za_miesiac.'">Miesiąc</option>';
  56. echo'<option value="'.$za_rok.'">Rok</option>';
  57. echo'<option value="'.$wiele.'">Bezterminowo</option>';
  58. }
  59. if($wiersz['news_dataWygasniecia']==$za_trzy_dni){
  60. echo'<option value="'.$wiersz['news_dataWygasniecia'].'">Trzy dni</option>';
  61. echo'<option value="'.$jutro.'">Do jutra</option>';
  62. echo'<option value="'.$za_tydzien.'">Tydzień</option>';
  63. echo'<option value="'.$za_miesiac.'">Miesiąc</option>';
  64. echo'<option value="'.$za_rok.'">Rok</option>';
  65. echo'<option value="'.$wiele.'">Bezterminowo</option>';
  66. }
  67. if($wiersz['news_dataWygasniecia']==$za_tydzien){
  68. echo'<option value="'.$wiersz['news_dataWygasniecia'].'">Tydzień</option>';
  69. echo'<option value="'.$jutro.'">Do jutra</option>';
  70. echo'<option value="'.$za_trzy_dni.'">Trzy dni</option>';
  71. echo'<option value="'.$za_miesiac.'">Miesiąc</option>';
  72. echo'<option value="'.$za_rok.'">Rok</option>';
  73. echo'<option value="'.$wiele.'">Bezterminowo</option>';
  74. }
  75. if($wiersz['news_dataWygasniecia']==$za_miesiac){
  76. echo'<option value="'.$wiersz['news_dataWygasniecia'].'">Miesiąc</option>';
  77. echo'<option value="'.$jutro.'">Do jutra</option>';
  78. echo'<option value="'.$za_trzy_dni.'">Trzy dni</option>';
  79. echo'<option value="'.$za_tydzien.'">Tydzień</option>';
  80. echo'<option value="'.$za_rok.'">Rok</option>';
  81. echo'<option value="'.$wiele.'">Bezterminowo</option>';
  82. }
  83. if($wiersz['news_dataWygasniecia']==$za_rok){
  84. echo'<option value="'.$wiersz['news_dataWygasniecia'].'">Rok</option>';
  85. echo'<option value="'.$jutro.'">Do jutra</option>';
  86. echo'<option value="'.$za_trzy_dni.'">Trzy dni</option>';
  87. echo'<option value="'.$za_tydzien.'">Tydzień</option>';
  88. echo'<option value="'.$za_miesiac.'">Miesiąc</option>';
  89. echo'<option value="'.$wiele.'">Bezterminowo</option>';
  90. }
  91. if($wiersz['news_dataWygasniecia']==$wiele){
  92. echo'<option value="'.$wiersz['news_dataWygasniecia'].'">Bezterminowo</option>';
  93. echo'<option value="'.$jutro.'">Do jutra</option>';
  94. echo'<option value="'.$za_trzy_dni.'">Trzy dni</option>';
  95. echo'<option value="'.$za_tydzien.'">Tydzień</option>';
  96. echo'<option value="'.$za_miesiac.'">Miesiąc</option>';
  97. echo'<option value="'.$za_rok.'">Rok</option>';
  98. }
  99.  
  100. echo '</select>';
  101.  
  102. echo'</div>
  103.  
  104. <div class="col-xs-8">';
  105. #Aktywny: <input type="text" class="form-control" name="aktywny" value="'.$wiersz['aktywny'].'" >
  106. echo 'Aktywny:';
  107. echo '<select class="form-control place_holder" name="aktywny" required >';
  108. if($wiersz['news_aktywny']==1){
  109. echo'<option value="'.$wiersz['news_aktywny'].'">1</option>';
  110. echo'<option value="0">0</option>';
  111. }
  112. if($wiersz['news_aktywny']==0){
  113. echo'<option value="'.$wiersz['news_aktywny'].'">0</option>';
  114. echo'<option value="1">1</option>';
  115. }
  116. echo '</select>';
  117. echo'</div>';
  118.  
  119. $query ="SELECT ".$prefix."news.*,".$prefix."tag.*
  120. FROM ".$prefix."news
  121. LEFT JOIN ".$prefix."tag
  122. ON ".$prefix."news.news_id = ".$prefix."tag.tag_news_id
  123. WHERE news_id='".$id."'";
  124. $result=mysql_query($query);
  125.  
  126. echo'<div class="col-xs-8">
  127. Tagi: <textarea class="text" name="tag[]" >';
  128. $tag = null;
  129. while($r = mysql_fetch_assoc($result)) {
  130. $tag .= $r['tag_nazwa'].",";
  131. }
  132. $rest = substr($tag, 0, -1);
  133. echo $rest;
  134. echo'</textarea>
  135. </div>';
  136.  
  137.  
  138. echo'<div class="col-xs-8">
  139. <input type="hidden" name="edytuj" value="1" />
  140. <input type="submit" class="btn btn-default" value="Edytuj" name="submit" >
  141. </div>
  142. </form>';
  143. }
  144.  
  145. #edytowanie newsow
  146.  
  147. #----------------------------------------------------------------------------------
  148. #wyedytuj news
  149.  
  150. if(isset($_GET['s']) && $_GET['s']=='news' && isset($_GET['a']) && $_GET['a']=='wyedytuj' && isset($_GET['id'])){
  151.  
  152. if(isset($_POST['edytuj']) && ($_POST['edytuj'])==1) {
  153.  
  154. #filtriowanie
  155. $tytul = filtrujDane($_POST['tytul']);
  156. $tresc = filtrujDane($_POST['tresc']);
  157. $kategoria = filtrujDane($_POST['kategoria']);
  158. $datawygasniecia = filtrujDane($_POST['datawygasniecia']);
  159. $aktywny = filtrujDane($_POST['aktywny']);
  160.  
  161. $tag = array_map(function($val)
  162. {
  163. }, $_POST['tag']);
  164. #koniec filtrowania
  165.  
  166. $id=$_GET['id'];
  167.  
  168.  
  169. $zap3 = "UPDATE ".$prefix."news JOIN ".$prefix."kategorie ON ".$prefix."news.news_kategorie_id = ".$prefix."kategorie.kategorie_id
  170. SET news_tytul='".$tytul."', news_tresc='".$tresc."',news_kategorie_id='".$kategoria."', news_dataWygasniecia='".$datawygasniecia."',news_aktywny='".$aktywny."', news_dataEdycji=NOW()
  171. WHERE ".$prefix."news.news_id='".$id."' ";
  172. $result=mysql_query($zap3) or die (mysql_error());
  173.  
  174.  
  175.  
  176. $ile_wykonac = 0;
  177. $tag=explode(',', $tag);
  178. $tag=array_map('trim', $tag);
  179. $tag=array_unique($tag);
  180. foreach($tag as $i => $k){
  181. $tag[] .=$k;
  182. $ile_wykonac=$ile_wykonac+1;
  183. }
  184.  
  185. for($i=0;$i<=$ile_wykonac;$i++){
  186. $zap4 = "UPDATE ".$prefix."tag
  187. JOIN ".$prefix."news
  188. ON ".$prefix."news.news_id = ".$prefix."tag.tag_news_id
  189. SET tag_nazwa='".$tag."'
  190. WHERE ".$prefix."news.news_id='".$id."' AND tag_news_id ='".$id."' AND tag_nazwa ='".$tag[$i]."' ";
  191.  
  192. var_dump($zap4);
  193. var_dump($tag[$i]);
  194. var_dump($tag);
  195. $result=mysql_query($zap4) or die(mysql_error());
  196. }
  197.  
  198. #header("location: admin.php?s=news&a=wys&k=edit");
  199.  
  200.  
  201. }
  202. }
  203.  
  204. #wyedytuj news
[/spoiler]
Go to the top of the page
+Quote Post

Posty w temacie


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: 29.12.2025 - 20:41