Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL]Wysyłanie formularza
johnyx21
post 30.06.2009, 14:24:06
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 29.06.2009

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


Witam

Mam prosty formularz, który wysyła mi dane do bazy wygląda on tak


  1. <?php
  2. <div align="center">
  3. <form method="POST" action="?">
  4. <table>
  5. <tr><td>Imię :</td><td><input type="text" name="Imię"></td></tr>
  6. <tr><td colspan="2">
  7.    <p align="center"><input type="submit" name="Wyślij" value="Wyślij"><p align="center"><input type="reset" name="Wyczyść" value="Wyczyść"></td></tr>
  8. </table>
  9. </form>
  10. ?>


wysyłanie do bazy

  1. <?php
  2. $Imie = $_POST['Imię'];
  3.  
  4. $zapytanie = "INSERT INTO `bazy`.`Imiona` (
  5. `id` ,
  6. `Imię`
  7. )
  8. VALUES (
  9. NULL , '$Imie'
  10. );";    
  11. mysql_query($zapytanie);
  12. header('Location: http....index.php');
  13. ?>


Wszystko działa poprawnie ale mam plik wybor.php, w którym wybieram bazę na której operuje i wczytuje w pliku powyżej za pomocą polecenia include, zawartość nowej bazy mi wyświetla poprawnie ale wysyłanie do bazy danych nie działa wyświetla mi tylko pustą stronę z komunikatem "Nie wybrano żadnej bazy danych" Zmienione wysyłanie do bazy zamieszczam poniżej

  1. <?php
  2. $Imie = $_POST['Imię'];
  3.  
  4. $zapytanie = "INSERT INTO $nowa.`Imiona` (         $nowa -nazwa wczytanej bazy
  5. `id` ,
  6. `Imię`
  7. )
  8. VALUES (
  9. NULL , '$Imie'
  10. );";    
  11. mysql_query($zapytanie);
  12. header('Location: http....index.php');
  13. ?>


Proszę pomóżcie, gdzie robię błąd?

Zmieniłem w formularzu:

  1. <?php
  2. <form method=&#092;"POST\" action=\"index2.php?wybierz=$nowa\">";  //jedyne co zostało zmienione
  3. ?>



i działa już większość

Jeszcze jedno pytanie jak w tym wypadku zrobić kasowanie rekordów do tej pory miałem to zrobione tak:

  1. <?php
  2. <td><a href=&#092;"?usun=" . $k['id'] . "\">Usuń</a></td>
  3. ?>


ale teraz nie działa bo jak ma przeładować stronę to wysyła mi informacje o rekordzie do usunięcia ale nie wysyła mi informacji z której bazy czy da się przesłać więcej parametrów za jednym razem np nazwę bazy poprzez <a href> z góry dzięki za odpowiedź

Ten post edytował johnyx21 30.06.2009, 16:40:05
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Andaramuxo
post 30.06.2009, 14:29:35
Post #2





Grupa: Zarejestrowani
Postów: 150
Pomógł: 15
Dołączył: 18.03.2009

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


A gdzie masz zdefiniowaną zmienną $nowa?


--------------------
Go to the top of the page
+Quote Post
smietek
post 30.06.2009, 14:30:41
Post #3





Grupa: Zarejestrowani
Postów: 306
Pomógł: 32
Dołączył: 20.01.2008

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


Musisz podać ten plik, w którym wybierasz bazę danych. A przy funkcji mysql_select_db() daj takie coś:
  1. <?php
  2. ?>

To zwróci błąd MySQL.

I nie wpisuj tego $nowa jeśli wybierasz bazę.

Ten post edytował smietek 30.06.2009, 14:32:22


--------------------
Go to the top of the page
+Quote Post
MateuszS
post 30.06.2009, 14:40:11
Post #4





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Jemu chodzilo chyba o tabele bo dal INSERT INTO $nowa -< wstawil w miejsjcu tabeli.

jak masz np wybieranie tabeli to robisz tak

<select name="tabela">
<option value="nazwa_tabeli1">nazwa_tabeli1</option>
<option value="nazwa_tabeli2">nazwa_tabeli2</option>
</select>

Dopiero potem

$zap = mysql_query("INSERT INTO `".$_POST['tabela']."` VALUES jakiestam

Ten post edytował MateuszScirka 30.06.2009, 14:42:51


--------------------
O! Zimniok :P
Go to the top of the page
+Quote Post
johnyx21
post 30.06.2009, 14:43:48
Post #5





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 29.06.2009

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


$nowa jest przekazywana do tego pliku przez $nazwa=$_GET['nazwa bazy'] z pliku wybor.php poprzez polecenie :

  1. <?php
  2. <a href=&#092;"index2.php?wybierz=" . $k['nazwa bazy'] . "\">Wybierz Baze</a>
  3. ?>



plik wczytywany poprzez include :

  1. <?php
  2. $mysql_conection = mysql_connect('', '', '');
  3. mysql_query('SET NAMES latin2 COLLATE latin2_general_ci', $mysql_conection);
  4. $zapytanie = mysql_query("SHOW TABLE STATUS LIKE 'Imię;");
  5. if (mysql_num_rows($zapytanie) == 1) {
  6. //echo "Tabeal istnieje ";
  7. //header('Location: <a href=\"http://192.168.1.2/~pliki/index2.php');\" target=\"_blank\">http://192.168.1.2/~pliki/index2.php');</a>
  8. }
  9. else
  10.  
  11. {
  12.  
  13. mysql_query("CREATE TABLE Imie(
  14. id INT NOT NULL AUTO_INCREMENT,
  15. PRIMARY KEY(id),
  16. Imie VARCHAR(30))")
  17. ?>

Poprzez wczytanie tego pliku wymuszam połączenie z wybraną bazą danych.
nie chodziło mi o wybieranie tabeli tabele dla wszystkich baz są takie same

Ten post edytował johnyx21 30.06.2009, 14:50:10
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 30.06.2025 - 05:33