Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Pobranie Id z wpisu
Forum PHP.pl > Forum > Przedszkole
XP'ek
Witam więc tak mam taki skrypt jak poniżej

Co potrzebuje by pobierał id wartości wysłanej do tabeli news i przekazywał go dla wartości id_newsa jak byście to zrobili ? ja myślałem o ponownym wykonaniu zapytania na te wartości i by pokazało id ale może jest prostsze rozwiązanie



  1. <p></p>
  2. <div class="body_title">Zgłoś Newsa</div>
  3. <p></p>
  4. <div id="box">
  5. <div class="box-top"></div>
  6. <div class="box-srodek">
  7. <?
  8. if($_POST['addimg']){
  9. while(list($key,$value) = each($_FILES['images']['name']))
  10. {
  11. if(!empty($value))
  12. {
  13. $filename = $value;
  14. $filename=str_replace(" ","_",$filename);// Add _ inplace of blank space in file name, you can remove this line
  15.  
  16. $add = "uploads/news/$filename";
  17. //echo $_FILES['images']['type'][$key];
  18. // echo "<br>";
  19. copy($_FILES['images']['tmp_name'][$key], $add);
  20. chmod("$add",0777);
  21.  
  22. $zapytanie = "INSERT INTO foto VALUES ('', '$id_newsa', '$filename')";
  23. $wstaw = mysql_query($zapytanie);
  24.  
  25. }
  26. }
  27.  
  28. }
  29.  
  30.  
  31. if ($_POST['dodaj']) {
  32.  
  33.  
  34. $nazwa = trim($_POST['nazwa']);
  35. $autor = trim($_POST['autor']);
  36. $data = trim($_POST['data']);
  37. $opis = trim($_POST['opis']);
  38. $ilosc_foto = trim($_POST['ilosc_foto']);
  39.  
  40.  
  41. $zapytanie = "INSERT INTO news VALUES ('', '$nazwa', '$autor', '$data', '$opis', '$ilosc_foto')";
  42. $wstaw = mysql_query($zapytanie);
  43.  
  44. print "<p><b>Dodawanie Fotografi Nowości</b></p>
  45. <p>";
  46.  
  47. $max_no_img=$ilosc_foto; // Maximum number of images value to be set here
  48. echo "<form method=post enctype='multipart/form-data'>";
  49. echo "<table border='0' width='400' cellspacing='0' cellpadding='0' align='center'>";
  50. for($i=1; $i<=$max_no_img; $i++){
  51. echo "<tr><td>Zdjecie $i</td><td><input type=file name='images[]' class='bginput'></td></tr>";
  52. }
  53. echo'</table>';
  54.  
  55. print '</p>
  56. <div class="pagesPrzyciski" style="margin-left:120px; margin-top:10px;">
  57. <input type="submit" name="addimg" class="pages" value="Wyślij" />
  58. <input type="reset" class="pages" value="Resetuj" />
  59. <input type="button" class="pages" onclick="java script:history.back();" name="wstecz" value="Wstecz" />
  60. </div>
  61. </form>';
  62. }
  63.  
  64.  
  65. else{
  66. print '<p><b>Dodawanie Nowej Nowości</b></p>
  67. <div id="okno">
  68. <form enctype="multipart/form-data" action="add_news.html" method="POST">
  69. <p class="oknoDanePotrzebne">Podaj Potrzebne Dane:</p>
  70. <p>
  71. <table>
  72. <tr><td style="text-align:right; width:200px;" valign="top"><b>Nazwa: </b></td><td valign="top"><input type="text" name="nazwa" /></td></tr>
  73. <tr><td style="text-align:right; width:200px;" valign="top"><b>Autor: </b></td><td valign="top"><input type="text" name="autor" /></td></tr>
  74. <tr><td style="text-align:right; width:200px;" valign="top"><b>Ilość Fotek:</b></td><td valign="top"><input type="text" name="ilosc_foto" onkeyup="this.value=this.value.replace(/\D/g,'')" /></td></tr>
  75. <tr><td style="text-align:right; width:200px;" valign="top"><b>Opis: </b></td><td valign="top"><textarea name="opis"></textarea></td></tr></table>
  76.  
  77. </p>
  78. <div class="pagesPrzyciski" style="margin-left:120px; margin-top:10px;">
  79. <input type="submit" name="dodaj" class="pages" value="Wyślij" />
  80. <input type="reset" class="pages" value="Resetuj" />
  81. <input type="button" class="pages" onclick="java script:history.back();" name="wstecz" value="Wstecz" />
  82. </div><input type="hidden" name="data" value="<? print date("Y-m-d"); ?>" />
  83. </form>';
  84. }
  85. ?>
  86. </div>
  87. </div>
  88. <div class="box-dol"></div>
  89. </div>
v1t4n
mysql_insert_id
XP'ek
no ok mam tak przygotowane wkleiłem na samej górze gdzie zaczyna się pierwszy <? i nie działa

  1. $id_newsa = mysql_insert_id();
v1t4n
funkcje wykonujesz po wykonaniu mysql_query() z zapytaniem ktore cie interesuje. czytaj dokladniej manuala.
XP'ek
dałem tak ale nie przekazuje mi tylko dalej podaje do drugiej tabeli id_newsa 0
thek
A pomyślałeś, że insert nie zawsze się musi powieść? Co jeśli będzie błąd? Co Ci wtedy zwróci mysql_insert_id? Kompletnie na to nie zwracasz uwagi. A to może powodować przekłamania podobnie do złego umieszczenia tej funkcji w kodzie. Debuguj, debuguj, debuguj...
XP'ek
ok będę szukać usterki dzięki za radę.

nic z tego szukałem szukałem i nie mam pojęcia a jak bym wykonał zapytanie select ? i gdzie podać wartości zapisywane z 2-3 które będą po prostu wybierały i wtedy ?

prosze o pomoc bo nie wiem jak już to zrobić ;/
thek
Ogólnie schemat jest taki...
Robisz kod sobie i w pewnym momencie masz walnąć insert. Ok... robisz go. Sprawdzasz czy się zapytanie wykonało. Jeśli tak - robisz mysql_insert_id. Wtedy masz przechwycony id dopiero co dodanego wiersza, który możesz użyć w innym zapytaniu. To, że mysql_insert_id zwracać może głupoty wyniknąć może też z innej rzeczy... Zasięgu widoczności zmiennej. Jeśli zrobiłeś przypisanie w jakiejś zmiennej, może ona być dla tej pętli lokalną zmienną. Jeśli to kolejne zapytanie jest poza pętlą lub innym blokiem funkcjonalnym gdzie zmienna ta jest niewidoczna, to przy próbie jej wywołania nie będzie ona widoczna i skrypt walnie tam odgórnie wartość pustą, którą zależnie od kontekstu skrypt może uznać za false, 0 czy pusty string. I myślę, że to ostatnie jest u Ciebie przyczyną błędu.
XP'ek
tak dlatego dałem pobieranie tego id i ponawiam wysyłanie id oraz w if($_POST['addimg']) dodałem $id_newsa = $_POST['id_newsa'];
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.