Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][mysql] Zmienna w nazwie, Jak to dokladnie zrobic?
wupasek
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 28.11.2003

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


Problem wyglada tak, dodaja se rekordy, znajduje ostatnie id
ale jak mam to wpisac do inserta zeby sie dobrze nazwa pliku zapisala?
1/do tabeli chcialbym wrzucic nazwe skladajaca sie z ID rekordu i _cyfry od 1 do 4 czyli np 60_1.jpg 60_2.jpg itd, w przypadku inserta czesc _1.jpg _2.jpg itd moze byc zdefiniowana recznie bo sa tylko cztery wiec nie ma duzo roboty, ale jak polaczyc otrzymane id z ta koncowka?
2/ do folderu chcialbym wrzucic plik tez o takiej samej nazwie oczywiscie, ale tym razem chcialbym wykorzystac iteracje od 1 do 4
3/ no i kwestia kolejna - czy musze dopisywac .jpg za kazdym razem? jak nie dodam to zapisuja sie bez rozszerzen wiec lipa - jakie jest z tego wyjscie?
4/ czy da rade jakos zrobic z jednym Insertem tylko?

bo teraz wrzucam czesc, potem odczytuje id rekordu i dopiero wrzucam reszte z id w nazwie (przynajmniej takie bylo zalozenie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) )
Probowalem laczenia tych dwoch zmiennych na rozne sposoby, z ' , ", kropka i to w kilku kombinacjach, ale nie trafilem na poprawna konfiguracje :/
Dopiero kilka dni grzebie w php wiec napewno o czyms nie wiem albo przeoczylem

Prosze o pomoc bo mnie juz szlag trafia

kod (fragment ktory dotyczy mojego problemu)
  1. <?
  2. mysql_connect ("localhost", "$user", "$pass") or die ("Brak połączenia z MySQL");
  3.  mysql_select_db ("$database") or die ('Błąd połączenia z bazą'.': '.mysql_error());
  4. mysql_query ($query);
  5.  
  6. $query = mysql_query ("INSERT INTO ogloszenia_auta VALUES (NULL, '$rodzaj', NOW() )");
  7.  
  8. $new_id = mysql_insert_id();
  9.  
  10. mysql_query ($query2);
  11.  
  12. $query2 = mysql_query ("INSERT INTO ogloszenia_auta VALUES (NULL, '$rodzaj', NOW(), '$marka', '$model', '$opis', '$rocznik', '$przebieg', '$cena', '$miasto', '$sprzedajacy', '$email', '$telefon', '$new_id_1.jpg', '$new_id_2.jpg', '$new_id_3.jpg', '$new_id_4.jpg' )");
  13.  
  14. if (!$query2)
  15. {
  16. echo " Wpisu nie dodano!!";
  17.  
  18. } else {
  19. echo "Dodano";
  20. }
  21. //ZMIANA NAZWY PLIKU
  22. for ($i=1; $i<=4; $i++) 
  23. {
  24.  
  25. $tmp_img = "ogl_tmp_img$i";
  26.  
  27. if (is_uploaded_file($$tmp_img)) {
  28.  move_uploaded_file($$tmp_img, 'up/$new_id_$i.jpg');
  29. echo "Przesłano na serwer."; }
  30. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nitek
post
Post #2





Grupa: Zarejestrowani
Postów: 209
Pomógł: 37
Dołączył: 27.02.2008
Skąd: Kwidzyn

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


Jasne że mam pomysł dlaczego...
Jeśli dopiero zaczynasz przygodę z php, polecam lekturę strony php.net! i stamtąd od razu się dowiesz:
"mysql_insert_id — Podaje numer ID wygenerowany podczas ostatniej operacji INSERT"
czyli nie ma szans, żeby odczytać to id, przed wykonaniem zapytania.. Jeśli koniecznie chcesz mieć bieżace id w nazwie pliku, ostatecznie mógłbyś wyciągnąć przed insertem ostatnie największe id (selectem), dodać do tego jeden i miałbyś aktualnie wstawiane id - ale to rozwiązanie 'mało eleganckie'...
Inne rozwiązanie, to wykonanie po insercie update, który zaktualizuje ci pole z nazwą o właściwe id (właśnie wykorzystując mysql_insert_id())
Go to the top of the page
+Quote Post
wupasek
post
Post #3





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 28.11.2003

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


Cytat(nitek @ 28.02.2008, 09:15:06 ) *
Jasne że mam pomysł dlaczego...
Jeśli dopiero zaczynasz przygodę z php, polecam lekturę strony php.net! i stamtąd od razu się dowiesz:
"mysql_insert_id — Podaje numer ID wygenerowany podczas ostatniej operacji INSERT"
czyli nie ma szans, żeby odczytać to id, przed wykonaniem zapytania.. Jeśli koniecznie chcesz mieć bieżace id w nazwie pliku, ostatecznie mógłbyś wyciągnąć przed insertem ostatnie największe id (selectem), dodać do tego jeden i miałbyś aktualnie wstawiane id - ale to rozwiązanie 'mało eleganckie'...
Inne rozwiązanie, to wykonanie po insercie update, który zaktualizuje ci pole z nazwą o właściwe id (właśnie wykorzystując mysql_insert_id())

staram sie czytac forum i odpowiednie zrodla (m.in.php.net, "Vademecum profesjonalisty") zanim poprosze o pomoc
a to INSERT nie wystarczy?
zreszta po jego usunieciu i zrobieniu najpierw Select Last_ID() a potem Insert nadal dostaje Resourde ID #3 (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) (IMG:http://forum.php.pl/style_emoticons/default/sciana.gif)

  1. <?php
  2. mysql_connect ("localhost", "$user", "$pass") or die ("Brak połączenia z MySQL");
  3.  mysql_select_db ("$database") or die ('Błąd połączenia z bazą'.': '.mysql_error());
  4. mysql_query ($query);
  5.  
  6. [b] $query = mysql_query ("INSERT INTO ogloszenia_auta VALUES (NULL, '$rodzaj', NOW() )");[/b]
  7. mysql_query ($new_id);
  8. $new_id=mysql_insert_id();
  9. ?>


a teraz sprobowalem tego
SELECT LAST_INSERT_ID() AS last_id
i nadal dostaje Resource Id # 3 za kazdym razem
dodam ze auto_increment wynosi ok 80 w tej chwili
  1. <?php
  2. mysql_connect ("localhost", "$user", "$pass") or die ("Brak połączenia z MySQL");
  3.  mysql_select_db ("$database") or die ('Błąd połączenia z bazą'.': '.mysql_error());
  4.  
  5. //mysql_query ($query);
  6. //$query = mysql_query ("INSERT INTO ogloszenia_auta VALUES (NULL, '$rodzaj', NOW() )");
  7. // mysql_query ($new_id);
  8.  //$new_id=mysql_insert_id();
  9.  
  10. [b]$new_id = mysql_query("SELECT LAST_INSERT_ID() AS last_id ");[/b]
  11.  
  12. echo $last_id;
  13. $new_id=$last_id+1;
  14.  
  15. mysql_query ($query2); 
  16.  
  17. $query2 = mysql_query ("INSERT INTO ogloszenia_auta VALUES (NULL, '$rodzaj', NOW(), '$marka', '$model', '$opis', '$rocznik', '$przebieg', '$cena', '$miasto', '$sprzedajacy', '$email', '$telefon', '".$new_id."_1.jpg', '".$new_id."_2.jpg', '".$new_id."_3.jpg', '".$new_id."_4.jpg')");
  18. ?>


caly kod wyglada tak:
  1. <?php
  2.  
  3. $ogl_img1 = $_POST['ogl_img1'];
  4. $ogl_tmp_img1 = $_FILES['ogl_img1']['tmp_name'];
  5. $ogl_nazwa_img1 = $_FILES['ogl_img1']['name'];
  6. $ogl_img1_rozmiar = $_FILES['ogl_img1']['size'];
  7. $ogl_img2 = $_POST['ogl_img2'];
  8. $ogl_tmp_img2 = $_FILES['ogl_img2']['tmp_name'];
  9. $ogl_nazwa_img2 = $_FILES['ogl_img2']['name'];
  10. $ogl_img2_rozmiar = $_FILES['ogl_img2']['size'];
  11. $ogl_img3 = $_POST['ogl_img3'];
  12. $ogl_tmp_img3 = $_FILES['ogl_img3']['tmp_name'];
  13. $ogl_nazwa_img3 = $_FILES['ogl_img3']['name'];
  14. $ogl_img3_rozmiar = $_FILES['ogl_img3']['size'];
  15. $ogl_img4 = $_POST['ogl_img4'];
  16. $ogl_tmp_img4 = $_FILES['ogl_img4']['tmp_name'];
  17. $ogl_nazwa_img4 = $_FILES['ogl_img4']['name'];
  18. $ogl_img4_rozmiar = $_FILES['ogl_img4']['size'];
  19.  
  20. $rodzaj = $_POST['rodzaj'];
  21. $marka = $_POST['marka'];
  22. $model = $_POST['model'];
  23. $opis = $_POST['opis'];
  24. $rocznik = $_POST['rocznik'];
  25. $przebieg = $_POST['przebieg'];
  26. $cena = $_POST['cena'];
  27. $miasto = $_POST['miasto'];
  28. $sprzedajacy = $_POST['sprzedajacy'];
  29. $email = $_POST['email'];
  30. $telefon = $_POST['telefon'];
  31.  
  32. if ($_GET['akcja']=="dodaj") {
  33.  $user = "login";
  34.  $pass = "pass";
  35.  $database = "typ";
  36.  
  37.  mysql_connect ("localhost", "$user", "$pass") or die ("Brak połączenia z MySQL");
  38.  mysql_select_db ("$database") or die ('Błąd połączenia z bazą'.': '.mysql_error());
  39.  // mysql_query ($query);
  40.  
  41. // $query = mysql_query ("INSERT INTO ogloszenia_auta VALUES (NULL, '$rodzaj', NOW() )");
  42. //mysql_query ($new_id);
  43.  // $new_id=mysql_insert_id();
  44.  
  45.  
  46. $last_id = mysql_query("SELECT LAST_INSERT_ID() AS last_id ");
  47.  
  48. echo $last_id;
  49. $new_id= $last_id+1;
  50. /* mysql_query ($new_id);
  51. $new_id= mysql_insert_id ();
  52. echo "<center> $new_id";
  53. printf (" %s", $new_id);
  54. echo "/<center>"; */
  55.  
  56. mysql_query ($query2); 
  57. $query2 = mysql_query ("INSERT INTO ogloszenia_auta VALUES (NULL, '$rodzaj', NOW(), '$marka', '$model', '$opis', '$rocznik', '$przebieg', '$cena', '$miasto', '$sprzedajacy', '$email', '$telefon', '".$new_id."_1.jpg', '".$new_id."_2.jpg', '".$new_id."_3.jpg', '".$new_id."_4.jpg')");
  58.  
  59. if (!$query2)
  60. {
  61. echo "<center>&nbsp;&nbsp;Wpisu nie dodano!!<br><br> 
  62. <input type=button value='Wróć i spróbuj jeszcze raz' class=tekst onclick='javascript:history.back()'>";
  63. } else {
  64. echo "<br><br><center>Dziękujemy za zamieszczenie ogłoszenia !<br><br><br>
  65. <a href='wybor.php'>Przejdź do przeglšdania ogłoszeń</a><br><br>
  66.  lub <a href='nowy3.php'>Dodaj następne ogłoszenie</a></center>";
  67. }
  68.  
  69. //ZMIANA NAZWY PLIKU
  70. for ($i=1; $i<=4; $i++) 
  71. {
  72.  
  73. $tmp_img = "ogl_tmp_img$i";
  74.  
  75. if (is_uploaded_file($$tmp_img)) {
  76.  move_uploaded_file($$tmp_img, 'up/'.$new_id.'_'.$i.'.jpg');
  77. echo "<center>'.$new_id.'_'.$i.'.jpg' przesłano na serwer.</center><br>";
  78. }
  79. else { echo "<center>Nie udało się wysłać pliku <strong>$i</strong> na serwer.<br><br>
  80. <input type=button value='Wróć i spróbuj jeszcze raz' class=tekst onclick='javascript:history.back()'></center><br>";
  81. }
  82. }  
  83.  
  84. }  
  85.  
  86. else {
  87. echo "<form method='POST' action='nowy3.php?akcja=dodaj' style='display: inline;' ENCTYPE='multipart/form-data'>
  88.  
  89. <table width=550 align=center>
  90. <tr><td width=400>Rodzaj ogłoszenia:</td><td>
  91. <select NAME='rodzaj' >
  92. <option value='1' >Sprzedam samochód</option>
  93. <option value='2' >Kupię samochód</option>
  94. <option value='3' >Sprzedam części</option>
  95. <option value='4' >Kupię części</option>
  96. </select></td></tr>
  97.  
  98. <tr><td width=150>  Marka: </td><td width=400><INPUT TYPE='text' NAME='marka' size=30><br></td></tr>
  99. <tr><td width=150>  Model: </td><td width=400><INPUT TYPE='text' NAME='model' size=30><br></td></tr>
  100. <tr><td width=150>  Opis: </td><td width=400><textarea name='opis' rows=8 cols=35></textarea><br></td></tr>
  101. <tr><td width=150>  Rocznik: </td><td width=400><INPUT TYPE='text' NAME='rocznik' size=10><br></td></tr>
  102. <tr><td width=150>  Przebieg: </td><td width=400><INPUT TYPE='text' NAME='przebieg' size=15></td></tr>
  103. <tr><td width=150>  Cena: </td><td width=400><INPUT TYPE='text' NAME='cena' size=15>&nbsp;zł.</td></tr>
  104. <tr><td width=150>  Miasto: </td><td width=400><INPUT TYPE='text' NAME='miasto' size=20></td></tr>
  105. <tr><td width=150>  Sprzedający: </td><td width=400><INPUT TYPE='text' NAME='sprzedajacy' size=30></td></tr>
  106. <tr><td width=150>  E-mail: </td><td width=400><INPUT TYPE='text' NAME='email' size=30></td></tr>
  107. <tr><td width=150>  Telefon: </td><td width=400><INPUT TYPE='text' NAME='telefon' size=30></td></tr>
  108. <tr><td width=150>  Dodaj zdjęcie 1:</td>
  109. <td width=400><input type='hidden' name='MAX_FILE_SIZE' value='2000000'><input name='ogl_img1' type='file' size=40></td></tr>
  110. <tr><td width=150>  Dodaj zdjęcie 2:</td>
  111. <td width=400><input type='hidden' name='MAX_FILE_SIZE' value='2000000'><input name='ogl_img2' type='file' size=40></td></tr>
  112. <tr><td width=150>  Dodaj zdjęcie 3:</td>
  113. <td width=400><input type='hidden' name='MAX_FILE_SIZE' value='2000000'><input name='ogl_img3' type='file' size=40></td></tr>
  114. <tr><td width=150>  Dodaj zdjęcie 4:</td>
  115. <td width=400><input type='hidden' name='MAX_FILE_SIZE' value='2000000'><input name='ogl_img4' type='file' size=40 ></td></tr>
  116. <tr><td width=150> </td><td width=400> <INPUT TYPE='submit' VALUE='Dodaj'>
  117. <button type='reset' name='reset'> Wyczyść </button>
  118. <input type=button value='Wróć' onclick='javascript:history.back()'>
  119. </td></tr></table></form>";
  120. }
  121. ?>


HEEELPPP (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

Ten post edytował wupasek 28.02.2008, 10:56:58
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: 10.10.2025 - 05:24