Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Prośba o sprawdzenie - gdzie mam błąd?
Forum PHP.pl > Forum > Przedszkole
jarkar
Wyszukiwarka szuka w tabeli mdl_user w kolumnie department, wyświetla wyniki w polu formularza SELECT, pobieramy id, które później zostaje zapisane jako userid. Do pobranych userid dodajemy zmienną contextid (z pola formularza input type text) i zapisujemy do tabeli mdl_user assignments.

  1.  
  2. <?php
  3. ini_set('display_errors','1');
  4.  
  5. include('top.php');
  6.  
  7. ?>
  8.  
  9. <form action="index.php" method="POST">
  10. <input type="hidden" name="pokaz" value="plik">
  11. <select MULTIPLE size="25">
  12.  
  13.  
  14. <?php
  15.  
  16. $nazwa = $_POST['szukaj'];
  17. if (!empty($_POST['szukaj']))
  18. {
  19. require_once("../config.php");
  20. mysql_select_db (moodle);
  21. $zapytanie_1 = mysql_query ("select * from mdl_user where department LIKE '$nazwa%' ;")
  22. or die ("zapytanie do bazy danych się nie udało");
  23. $n = mysql_num_rows($zapytanie_1);
  24.  
  25.  
  26. if($n > 0) {
  27. if($zapytanie_1==true)
  28. {
  29. while ($rekord = mysql_fetch_assoc($zapytanie_1))
  30. {
  31. $firstname = $rekord['firstname'];
  32. $lastname = $rekord['lastname'];
  33. $username = $rekord['username'];
  34. $userid = $rekord['id'];
  35. $department = $rekord['department'];
  36.  
  37.  
  38. print("<option SELECTED>$lastname $firstname, $userid </option>");
  39.  
  40.  
  41. }
  42.  
  43. }}
  44. else
  45. {
  46. print("<CENTER><H2>Nie odnaleziono szukanego studenta.</H2></CENTER>");
  47. print("<BR><A HREF=\"index.php\">"." powrót do wyszkukiwarki "."</A>");
  48. }
  49.  
  50. }
  51. else
  52. {
  53. print("<CENTER><H2>Nie wpisano kryterium do wyszukiwarki.</H2></CENTER>");
  54. print("<BR><A HREF=\"idnex.php\">"." powrót do wyszkukiwarki "."</A>");
  55. }
  56.  
  57. if (isset($_POST['userid']))
  58. {
  59.  
  60. $_POST['contextid']=konwertuj($_POST['contextid']);
  61.  
  62.  
  63.  
  64.  
  65. $blad='';
  66. if (strlen($_POST['userid'])>1) $blad='Podaj ID';
  67. if ($blad!='') info($blad,'blad');
  68. else
  69. {
  70. mysql_query("INSERT INTO `mdl_role_assignments` (`roleid`,`contextid`,`userid`,`hidden`,`timestart`,`timeend`,`timemodified`
    ,`modifierid`,`enrol`,`sortorder`)
  71. SELECT 5,\"$_POST[contextid]\", id, 0, ".time().", 0, ".time().", 2, 'manual', 0 FROM mdl_user WHERE department LIKE '$userid'");
  72. info('Dane zostały dodane.','ok');
  73.  
  74. include('plik.php');
  75. return;
  76. }
  77.  
  78. }
  79. else
  80. {
  81. $_POST['contextid']='';
  82.  
  83.  
  84. }
  85.  
  86.  
  87. ?>
  88.  
  89.  
  90. </select><br><br>
  91. <input size="5" type="text" name="contextid" value="<?php echo $_POST['contextid']; ?>">Podaj CONTEXTID<br>
  92. <input type="submit" value="PRZYPISZ">
  93. </form>
  94.  
  95. <?php
  96.  
  97. include('bottom.php');
  98.  
  99. ?>


Gdzie jest babol? Nie dostaję żadnego błędu.


Zastrzyk do bazy spod MySQL Query Browser działa poprawnie
  1. INSERT INTO `mdl_role_assignments` (`roleid`,`contextid`,`userid`,`hidden`,`timestart`,`timeend`,`timemodified`,`modifierid`,`enrol`,`sortorder`)
  2. SELECT 5,45, id, 0, 1270759517, 0, 1270759517, 2, 'manual', 0 FROM mdl_user WHERE department LIKE 'sem2'


Proszę o pomoc w zintegrowaniu tego z PHP
blooregard
Tu masz wskazówki, jak lokalizować tego rodzaju błędy:
Temat: Jak poprawnie zada pytanie
jarkar
Problem w tym, że nadal nie widzę błędu.
Może da się to zrobić w inny sposób niż próbuję?

Może nie wyraziłem swojej potrzeby jasno...

Czy ktoś pomoże mi utworzyć kod PHP do zapytania:

  1. INSERT INTO `mdl_role_assignments` (`roleid`,`contextid`,`userid`,`hidden`,`timestart`,`timeend`,`timemodified`,`modifierid`,`enrol`,`sortorder`)
  2. SELECT 5,[color="#FF0000"]45[/color], [color="#FF0000"]id[/color], 0, 1270759517, 0, 1270759517, 2, 'manual', 0 FROM mdl_user WHERE department LIKE 'sem2'


45 - miałoby być zmienną pobieraną z formularza <INPUT TYPE="TEXT">
id - też zmienna pobierana z tegoż samego formularza <SELECT> - tyle, że wyświetlona w <SELECT> za pomocą wyszukiwarki (będzie ich od kilku do kilkudziesięciu) dlatego zastanawiam się czy można to zrobić za pomocą pętli WHILE
sem2 - zmienna wcześniej podana w skrypcie wyszukiwarki
tomm
Spróbuj w ten sposob:
  1. mysql_query('INSERT INTO `mdl_role_assignments`
  2. (`roleid`,`contextid`,`userid`,`hidden`,`timestart`,
  3. `timeend`,`timemodified`,`modifierid`,`enrol`,`sortorder`)
  4. SELECT 5, "'.$_POST['contextid'].'", '.$_POST['nazwa_selecta'].', 0, '.time().',
  5. 0, '.time().', 2, "manual", 0
  6. FROM mdl_user
  7. WHERE department LIKE "'.$userid.'"');
jarkar
Próbowałem w ten sposób i nic z tego... <SELECT> ma u mnie kilkanaście razy(wartość zmienna) <OPTION> więc myślałem żeby to zrobić w pętli, żeby za każdym razem wybrał selecta aż się nie skończą, analogicznie jak wyszukiwarka wypisuje to czego szukam aż nie skończą się pasujące dane.
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.