Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]jak pobrac id z bazy mysql?
pkania128
post
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 3.07.2009

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


witam,
mam formularz w którym wpisuję nazwisko, mail i datę (metodą post) (plik wyslij.php)
następnie (w pliku zapisz.php) wyświetlam te dane oraz wykonuje polecenie zapisania do bazy mysql.

jest wyświetlane: twoje nazwisko twoj mail dopisałeś się data
tu wszystko gra. w samej bazie dodatkowo każdemu wpisowi przypisuje się kolejny nr ID

jak dodatkowo wyświetlić ten nr ID tak aby zobaczyć: twój nr ID twoje nazwisko twoj mail dopisałeś się data

plik zapisz.php wyglada w skrócie tak:
  1. if (!empty($_POST['nazwisko'])) {
  2. $mail = $_POST['mail'];
  3. $nazwisko = $_POST['nazwisko'];
  4. $data = $_POST['data'];
  5. $res = @mysql_query("INSERT INTO dodaj_mail (mail,nazwisko,data) VALUES (\"".$mail."\", \"".$nazwisko."\", \"".$data."\") ");
  6. }
  7.  
  8. if (!empty($_POST['mail']))
  9. {
  10. print "twoje ".$nazwisko ." twoj ".$mail ." dopisałeś się ".$data.".";
  11. }
  12. //do tego miejsca wszystko jest ok
  13.  
  14. //tutaj próbuję wyciągnąc ID z bazy mysql (niestety bez powodzenia)
  15.  
  16. $mail = $_POST['mail'];
  17. $zapytanie = mysql_query("SELECT nazwisko FROM dodaj_mail where mail = \"".$mail."\" ");
  18. $wynik = mysql_query($zapytanie);
  19. print "twój nr ID: ";echo stripslashes($wynik["id"]),"";
  20. print "twoje ".$nazwisko ." twoj ".$mail ." dopisałeś się ".$data.".";
  21.  


proszę o podpowiedzi
Go to the top of the page
+Quote Post
Pawel_W
post
Post #2





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


mysql_insert_id
Go to the top of the page
+Quote Post
Niktoś
post
Post #3





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

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


Mamy zgadywać jak nazywa się kolumna z ID w twojej bazie danych?
Go to the top of the page
+Quote Post
pkania128
post
Post #4





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 3.07.2009

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


kolumna id w mojej bazie nazywa sie id
Go to the top of the page
+Quote Post
Niktoś
post
Post #5





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

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


To w zapytaniu daj:

$zapytanie = mysql_query("SELECT id,nazwisko FROM dodaj_mail where mail = \"".$mail."\" ");
Go to the top of the page
+Quote Post
Pawel_W
post
Post #6





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


tak z ciekawości zapytam, masz w ogóle tą kolumnę?

bo...
  1. INSERT INTO dodaj_mail (mail,nazwisko,DATA)

sądząc po tym kodzie jej nie masz

dodatkowo,
  1. $zapytanie = mysql_query("SELECT nazwisko FROM dodaj_mail where mail = \"".$mail."\" ");
  2. $wynik = mysql_query($zapytanie);
  3. print "twój nr ID: ";echo stripslashes($wynik["id"]),"";

skąd masz mieć $wynik["id"] skoro 2 linijki wcześniej pobierasz jedynie "nazwisko"?
Go to the top of the page
+Quote Post
Niktoś
post
Post #7





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

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


Cytat
[SQL] pobierz, plaintext

1.
INSERT INTO dodaj_mail (mail,nazwisko,DATA)

[SQL] pobierz, plaintext


sądząc po tym kodzie jej nie masz

Wcale nie musi odwoływać do kolumny id w zapytaniach insert,update ,jeśli ma właściwości tej kolumny ustawione na autoincrement i primarykey.

Ten post edytował Niktoś 18.11.2011, 23:29:00
Go to the top of the page
+Quote Post
pianta_d
post
Post #8





Grupa: Zarejestrowani
Postów: 176
Pomógł: 18
Dołączył: 5.01.2007

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


Ja robię to w taki sposób
  1. $result = mysql_query("INSERT INTO
  2. `tabela`(`pole_id`,`pole2`,`pole3,)
  3. VALUES (0,'".$_POST[pole2]."','".$_POST[pole3]."'");
  4.  
  5. $id = mysql_insert_id();
  6.  
  7. if($result) {
  8. header('Location: view.php?id='.$id.'');
  9. exit;
  10. }
  11. else echo 'Błąd nie udało się dodać nowego rekordu';
  12. }


po zapisie przekierowuje na stronę z podglądem rekordu

Pozdrawiam
Go to the top of the page
+Quote Post
pkania128
post
Post #9





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 3.07.2009

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


mam w bazie kolumne id (AUTO_INCREMENT i primary key)
Go to the top of the page
+Quote Post
pianta_d
post
Post #10





Grupa: Zarejestrowani
Postów: 176
Pomógł: 18
Dołączył: 5.01.2007

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


Moim zdaniem nie musisz wysyłać zapytania do bazy.
Wystarczy w echo wstawić to co przesyłasz $_POST[], a dodatkowo wstawić pole $id.
Coś na kształt
  1. $result = mysql_query("INSERT INTO
  2. `tabela`(`pole_id`,`pole2`,`pole3,)
  3. VALUES (0,'".$_POST[pole2]."','".$_POST[pole3]."'");
  4.  
  5. $id = mysql_insert_id();
  6.  
  7. if($result)
  8. echo 'twój nr ID: '.$id.' nazwisko '.$_POST[pole2].' imie '.$_POST[pole2];
  9. else
  10. echo 'Błąd nie udało się dodać nowego rekordu';
  11. }


Prawie gotowe (IMG:style_emoticons/default/smile.gif)
Przerób sobie na własne potrzeby

Pozdrawiam
Go to the top of the page
+Quote Post

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: 22.12.2025 - 15:02