Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: przypisanie zmiennej do wyboru w comboboxie
Forum PHP.pl > Forum > PHP
przonak007
Cześć wszystkim.

Mam dwa problemy.
1. Nie mogę przypisać kodu php do przycisku. Chciałbym żeby wszystko było na jednnej stronie a nie w oddzielnym pliku.
2. Mam problem z przypisaniem zmiennej do tego co wybiorę w comboboxie.

Chciałbym żeby w comboboxie wybierał nazwy tabel z bazy danych a po naciśnięciu przycisku na tej samej stronie pojawiła się tabela z imionami. Obecnie tabela się pojawia,ale nie potrafię jej przypisać do przycisku oraz mam problem z comboboxie w którym nie potrafię przypisać zmiennej do wyboru.
Proszę o pomoc

Cześć wszystkim.
Chciałbym żeby w comboboxie wybierał nazwy tabel z bazy danych a po naciśnięciu przycisku na tej samej stronie pojawiła się tabela z imionami. Obecnie tabela się pojawia,ale nie potrafię jej przypisać do przycisku oraz mam problem z comboboxie w którym nie potrafię przypisać zmiennej do wyboru.
Proszę o pomoc
  1. <?php
  2.  
  3.  
  4. $connection = @mysql_connect('localhost', 'root', '')or die('Brak połączenia z serwerem
  5.  
  6. MySQL');
  7. mysql_query('SET NAMES utf8');
  8.  
  9. $db = @mysql_select_db('test', $connection) or die('Nie mogę połączyć się z bazą danych');
  10. $db_name = "test";
  11. mysql_select_db($db_name, $connection);
  12.  
  13.  
  14. $wynik = mysql_query("SELECT * FROM test")
  15. $wynik = mysql_query("SELECT * FROM "$name'")->wybór tabeli ma być z comboboxa.
  16. or die('Błąd zapytania');
  17.  
  18.  
  19. if(mysql_num_rows($wynik) > 0) {
  20. echo "<table cellpadding=\"2\" border=1>";
  21. while($r = mysql_fetch_assoc($wynik)) {
  22. echo "<tr>";
  23. echo "<td>".$r['imie']."</td>";
  24. echo "</tr>";
  25. }
  26. echo "</table>";
  27. echo "</table>";
  28. }
  29. ?>
  30.  
  31. <select name="name">
  32. <option value="test">test</option>
  33. <option value="test1">test1</option>
  34. </select>
  35. <button>Wyslij</button>




viking
Błędów masz tyle że az tragedia. Brak formularza. Brak odwołania do niego w zależności od wybranej metody (post i get). Brak wartości domyślnej dla pierwszego wywołania. Przestarzałe rozszerzenie mysql. Ukrywanie błędów. Sql injection.
przonak007
A czy mógłbyś polecić jakąś stronę na temat tworzenia formularzy?.

poprawiłem ale mam dalej problem w linii 20 wyskakuje błąd "
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: no parameters were bound' in C:\xampp\htdocs\dashboard\test\combobox\tabela.php:20 Stack trace: #0 C:\xampp\htdocs\dashboard\test\combobox\tabela.php(20): PDOStatement->execute() #1 {main} thrown in C:\xampp\htdocs\dashboard\test\combobox\tabela.php on line 20".

Jest problem z zapytaniem. Proszę o pomoc. Nie wiem jak przypisać 'start' do zapytania sql



  1. <?php
  2.  
  3. $dsn = 'mysql:host=localhost;dbname=test';
  4. $username = 'root';
  5. $password = '';
  6.  
  7. try{
  8.  
  9. $con = new PDO($dsn, $username, $password);
  10. $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  11.  
  12. } catch (Exception $ex) {
  13.  
  14. echo 'Not Connected '.$ex->getMessage();
  15. }
  16.  
  17. $tableContent = '';
  18. $start = '';
  19. $selectStmt = $con->prepare('SELECT * FROM :start"');
  20. $selectStmt->execute();
  21. $users = $selectStmt->fetchAll();
  22.  
  23. $tableContent = $tableContent.'<tr>'.
  24. '<td>'.$user['id'].'</td>'
  25. .'<td>'.$user['fname'].'</td>'
  26. .'<td>'.$user['lname'].'</td>'
  27. .'<td>'.$user['age'].'</td>';
  28.  
  29. if(isset($_POST['search']))
  30. {
  31. $start = $_POST['start'];
  32. $tableContent = '';
  33. $selectStmt = $con->prepare('SELECT * FROM :start');
  34.  
  35. $users = $selectStmt->fetchAll();
  36.  
  37. $tableContent = $tableContent.'<tr>'.
  38. '<td>'.$user['id'].'</td>'
  39. .'<td>'.$user['fname'].'</td>'
  40. .'<td>'.$user['lname'].'</td>'
  41. .'<td>'.$user['age'].'</td>';
  42.  
  43. }
  44.  
  45. ?>
  46. <!DOCTYPE html>
  47. <html>
  48. <head>
  49. <title>tabela</title>
  50. <style>
  51. table,tr,td
  52. {
  53. border: 1px solid #000;
  54. }
  55.  
  56. td{
  57. background-color: #ddd;
  58. }
  59. </style>
  60. </head>
  61. <body>
  62.  
  63. <form action="tabela.php" method="POST">
  64.  
  65. <select name="start">
  66. <option value="">...</option>
  67. <option value="users" <?php if($start == 'users'){echo 'selected';}?
  68.  
  69. >>users</option>
  70. <option value="users1" <?php if($start == 'users1'){echo 'selected';}?
  71.  
  72. >>users1</option>
  73. <option value="users2" <?php if($start == 'users2'){echo 'selected';}?
  74.  
  75. >>users2</option>
  76.  
  77. </select>
  78.  
  79. <input type="submit" name="search" value="Find">
  80.  
  81. <table>
  82. <tr>
  83. <td>#ID</td>
  84. <td>First Name</td>
  85. <td>Last Name</td>
  86. <td>Age</td>
  87. </tr>
  88.  
  89. <?php
  90.  
  91. echo $tableContent;
  92.  
  93. ?>
  94.  
  95. </table>
  96.  
  97. </form>
  98.  
  99. </body>
  100. </html>


nospor
Wchodzisz do manuala
http://php.net/manual/en/pdo.prepare.php
i tam juz pierwszy przyklad z brzegu pokazuje gdzie i jak przypisywac parametry uzyte w zapytaniu...
viking
Komunikat jest bardzo jasny. Masz jeden parametr :start i nigdzie nie przypisujesz do niego wartości.
https://prophp.pl/article/10/php_data_objec...luge_baz_danych
przonak007
W zapytaniu zrobiłem
$selectStmt = $con->prepare('SELECT * FROM start=$_REQUEST[start]');

ale dalej to nie działa. Pojawia się teraz taki błąd:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '[start]' at line 1' in C:\xampp\htdocs\dashboard\test\combobox\tabela.php:22 Stack trace: #0 C:\xampp\htdocs\dashboard\test\combobox\tabela.php(22): PDOStatement->execute() #1 {main} thrown in C:\xampp\htdocs\dashboard\test\combobox\tabela.php on line 22

Proszę o pomoc. JAK z selected wydybyć nazwę tabeli żeby ją umieścić w zapytaniu sql.
trueblue
  1. SELECT * FROM start=
?
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.