Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Pobranie wiersza z tabeli i zapisanie w innej
Forum PHP.pl > Forum > Przedszkole
Muodszy
mam problem polegający na tym, że pobieram wartość id z tabeli z informacjami o użytkowniku, ta wartość cały czas jest przechowywana w zmiennej a gdy przychodzi moment dodania jej do tabeli by utworzyć znajomość między userami wartość po prostu nie istnieje. Sprawdzałem już różne możliwosci zmieniałem typ danych w tabeli, kolejnosc itd zmienna po prostu nie istnieje w momencie dodawania do tabeli i nie mam pojęcia dlaczego, Tak wygląda to w kodzie:
  1. <?php
  2.  
  3.  
  4. $login1 = $_GET['user'];
  5.  
  6. $dbc = mysqli_connect('localhost','daniel','daniel1','os'); //połączenie z bazą danych
  7. $query12 = mysqli_query($dbc,"SELECT * FROM users WHERE login = '$login1'"); //pobranie wszystkich informacji o użytkowniku z bazy
  8. $wyn = mysqli_fetch_array($query12);
  9.  
  10. $first_id = $wyn['idUser'];
  11. $second_id = $_SESSION['user_ID'];
  12.  
  13.  
  14.  
  15. $query21 = mysqli_query($dbc,"SELECT * FROM friends where first = '$first_id' && second = '$second_id'");
  16. $query22 = mysqli_fetch_array($query21);
  17.  
  18. if (empty($query22))
  19. {
  20. if ($first_id != $second_id)
  21. {
  22. echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post" ENCTYPE="multipart/form-data" ><div style="width:100%; display:table;">';
  23. echo '<input style="display:table-cell; width:40%;" class="przyciski_user" type="submit" name="add_friend" value="Zaproś do znajomych" />';
  24. echo '<input style="display:table-cell; width:40%;" class="przyciski_user" name="msg" type="submit" value="Napisz wiadomość" />';
  25. echo '<input style="display:table-cell; width:20%;" class="przyciski_user" name="report" type="submit" value="Zgłoś" />';
  26. echo '</div></form>';
  27. $dodanie_znajomego = "INSERT INTO friends (first,second,status) VALUES ('$first_id','$second_id','0')";
  28.  
  29. if(isset($_POST['add_friend']))
  30. {
  31. mysqli_query($dbc,$dodanie_znajomego);
  32. echo 'Dodano znajomego!';
  33. };
  34. };
  35.  
  36.  
  37.  
  38.  
  39. echo '<img src="avatary/' . $wyn['login'] . '.jpg" style="border: 1px solid black; margin:15px; padding: 4px;background-color:rgba(255,150,150,0.5); border-radius: 3px; box-shadow: 1px 1px 3px black; float:left; width:200px; height:200px;" alt="'.$wyn['login'].'" />';
  40. echo '<table id="tabela_user">';
  41. echo '<tr><td>Login:</td><td>' . $wyn['login'] . '</td></tr>';
  42. echo '<tr><td>Imię:</td><td>' . $wyn['name'] . '</td></tr>';
  43. echo '<tr><td>Nazwisko:</td><td>' . $wyn['surname'] . '</td></tr>';
  44. echo '<tr><td>E-mail:</td><td>' . $wyn['email'] . '</td></tr>';
  45. echo '<tr><td>Skąd:</td><td>' . $wyn['city'] . '</td></tr>';
  46. $skrocony_wiek = substr($wyn['date'],0,4);
  47. $akt_rok = date("Y");
  48. $wynik_wieku = $akt_rok - $skrocony_wiek;
  49. echo '<tr><td>Wiek:</td><td>' . $wynik_wieku . '</td></tr>';
  50. echo '<tr><td>Punkty zdobyte <br /> na imprezach:</td><td><br />' . $wyn['pkt_zdobyte'] . '</td></tr>';
  51. echo '<tr><td>Punkty zdobyte <br /> na organizacji imprez:</td><td><br />' . $wyn['pkt_tworcow'] . '</td></tr>';
  52. echo '</table>';
  53. }
  54. else
  55. {
  56. echo '<img src="avatary/' . $wyn['login'] . '.jpg" style="border: 1px solid black; margin:15px; padding: 4px;background-color:rgba(255,150,150,0.5); border-radius: 3px; box-shadow: 1px 1px 3px black; float:left; width:200px; height:200px;" alt="'.$wyn['login'].'" />';
  57. echo '<table id="tabela_user">';
  58. echo '<tr><td>Login:</td><td>' . $wyn['login'] . '</td></tr>';
  59. echo '<tr><td>Imię:</td><td>' . $wyn['name'] . '</td></tr>';
  60. echo '<tr><td>Nazwisko:</td><td>' . $wyn['surname'] . '</td></tr>';
  61. echo '<tr><td>E-mail:</td><td>' . $wyn['email'] . '</td></tr>';
  62. echo '<tr><td>Skąd:</td><td>' . $wyn['city'] . '</td></tr>';
  63. $skrocony_wiek = substr($wyn['date'],0,4);
  64. $akt_rok = date("Y");
  65. $wynik_wieku = $akt_rok - $skrocony_wiek;
  66. echo '<tr><td>Wiek:</td><td>' . $wynik_wieku . '</td></tr>';
  67. echo '<tr><td>Punkty zdobyte <br /> na imprezach:</td><td><br />' . $wyn['pkt_zdobyte'] . '</td></tr>';
  68. echo '<tr><td>Punkty zdobyte <br /> na organizacji imprez:</td><td><br />' . $wyn['pkt_tworcow'] . '</td></tr>';
  69. echo '</table>';
  70. echo '<div id="przyciski_user"><table><tr>';
  71. echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post" ENCTYPE="multipart/form-data" >';
  72. echo '<td><input class="przyciski" name="msg" type="submit" value="Napisz wiadomość" /></td>';
  73. echo '<td><input class="przyciski" name="report" type="submit" value="Zgłoś" /></td>';
  74. echo '</tr></table></div></form>';
  75. };
  76.  
  77. ?>

chodzi dokładnie o zmienna $first_id w wierszu 27
nospor
var_dump($wyn);
var_dump($login1);
$first_id = $wyn['idUser'];

Gdy to wykonasz to moze przestaniesz bezpodstawnie twierdzic, ze zmienna nagle wyparowala...
Muodszy
niestety ale dalej tak twierdzę. Wszystko jest ok do tego momentu

  1. if(isset($_POST['add_friend']))
  2. {
  3. mysqli_query($dbc,$dodanie_znajomego);
  4. echo 'Dodano znajomego!';
  5. };


w ten pętli var_dump zwróciło NULL dwa razy
nospor
Cytat
w ten pętli var_dump zwróciło NULL dwa razy
No wlasnie. O to mi chodzilo. Wiec nie pisz, ze ci zmienna nagle wyparowala, jak od samego początku jej nie było....

first_id jest null, bo login jest null. Login jest null bo to $_GET['user']; jest null. A teraz sie zastanow, czemu "nagle" GET user jest null. To naprawde proste.
Muodszy
sory, może jeszcze raz powtórze to co napisałem bo wyraziłem się nie jasno
Cytat
polegający na tym, że pobieram wartość id z tabeli z informacjami o użytkowniku, ta wartość cały czas jest przechowywana w zmiennej a gdy przychodzi moment dodania jej do tabeli by utworzyć znajomość między userami wartość po prostu nie istnieje.
to znaczy że przed pętlą wszystko jest ok, wartość pobierana jest ze zmiennej $_GET i wykowywane sa operacje aż do momentu wykonywania pętli, w pętli if o której pisze zmienna przybiera wartość NULL podam przykładową wartość przed pętlą if
Cytat
array(24) { [0]=> string(1) "2" ["idUser"]=> string(1) "2" [1]=> string(4) "Nowe" ["login"]=> string(4) "Nowe" [2]=> string(32) "2e3817293fc275dbee74bd71ce6eb056" ["password"]=> string(32) "2e3817293fc275dbee74bd71ce6eb056" [3]=> string(4) "lala" ["name"]=> string(4) "lala" [4]=> string(4) "lala" ["surname"]=> string(4) "lala" [5]=> string(4) "lala" ["email"]=> string(4) "lala" [6]=> string(1) "0" ["phone"]=> string(1) "0" [7]=> string(4) "lala" ["city"]=> string(4) "lala" [8]=> string(0) "" ["big_city"]=> string(0) "" [9]=> string(10) "0000-00-00" ["date"]=> string(10) "0000-00-00" [10]=> string(1) "6" ["pkt_zdobyte"]=> string(1) "6" [11]=> string(1) "0" ["pkt_tworcow"]=> string(1) "0" } string(4) "Nowe"

oraz w pętli if
Cytat
NULL NULL
. Teraz mam nadzieję, że zrozumiałeś mój dylemat smile.gif


/// SORKI ZA NAZYWANIE INSTRUKCJI WARUNKOWEJ - PĘTLĄ, BŁĄD POCZĄTKUJĄCEGO
nospor
Widzisz.... to ty nie rozumiesz. Ja rozumiem w czym problem, napisalem ci w czym problem, a ty z jakiegos powodu uwazasz, ze Cię nie rozumiem... No ok, czekaj w takim razie dalej na kogos, kto CIę zrozumie. A tym czasem rozwiązanie problemu podalem ci post wcześniej. Może więc jednak podczas czekania na zrozumienie, zastanowisz się chwilkę nad tym co napisałem.
Muodszy
ok, rozumiem że w momencie wciśnięcia add_friend strona się odświeża i wszystko znika bo w adresie nie ma zapisanego tam wcześniej loginu, OK więc jak zrobić by po wciśnięciu login dalej tam był, skoro jak wskazuje
  1. form action="'. $_SERVER['PHP_SELF'] .
wszystko ma się wykonać na tej samej stronie? czy jestem w błędzie?
czytam coś wlaśnie o $_SERVER['QUERY_STRING'] i powstało mi coś takiego
  1. $action = $_SERVER['PHP_SELF'] . '?' . $_SERVER['QUERY_STRING'] ;
  2. echo '<form action="'. $action .'" method="post" ENCTYPE="multipart/form-data">';

lecz dalej zwracana jest strona bez jakże ważnej końcówki, co tym razem robię źle?
nospor
<form action=""
i juz. nic wiecej nie trzeba dawac
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.