Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Tworzenie zapytania ze zmienną pobraną z formularza
Forum PHP.pl > Forum > Przedszkole
art998
Witam. Proszę o pomoc przy tworzeniu zapytania mysqli w kodzie php ...siedzę już nad tym 2 dzień :-(
Celem ma być utworzenie zapytania ze zmienną o nazwie ‘numer’ pobraną z formularza
  1. <?php
  2. <form action="dodaj_numer.php" method="POST">
  3. NUMER: <input type=int name="numer"/><br/>
  4. <input type=submit value="Wyślij"/>
  5. </form>
  6. ?>

Kod PHP umieszczony poniżej na chwilę obecną zachowuje się następująco:
1) Z formularza pobierana jest liczba i wyświetlona w linii:
echo " Wpisano numer : $numer </br>" ;
2) Zapytanie wykonuję się wprowadzając do tabeli o nazwie ‘zamówienie’
wszystkie rekordy z tabeli ‘dane’ ...i OKI, tak ma być,

Jak zmusić zmienną ‘$numer’ aby w kolumnie o nazwie ‘NUMER” tabela ‘zamowienia’
we wszystkich dodanych rekordach była widoczna liczba wpisana w formularzu
(obecnie wartość NULL)
  1. // dodaj_numer.php
  2. <?php
  3. $numer = $_POST['numer'];
  4. echo " Wpisano numer : $numer </br>" ; // wpisano numer wysłany z formularza
  5.  
  6. $wynik = mysqli_query($baza,"INSERT INTO zamowienie (idfirma, numer, miasto, nazwa) SELECT idfirma, numer, miasto, nazwa
  7. FROM dane ") ;
  8. ?>


Tomplus
dopisz do zapytania WHERE id = $numer
b4rt3kk
Musisz zbudować inne zapytanie:

  1. $query = "INSERT INTO zamowienie (idfirma, numer, miasto, nazwa) SELECT idfirma, {$numer}, miasto, nazwa FROM dane"
art998
jeżeli dodam WHERE id = $numer do zapytania to zapisze mi tylko jeden rekord o id wpisanym w formularzu
a gdy próbuje WHERE numer = $numer to wtedy "błąd zapytania"
b4rt3kk
Cytat(art998 @ 19.10.2016, 15:32:52 ) *
jeżeli dodam WHERE id = $numer do zapytania to zapisze mi tylko jeden rekord o id wpisanym w formularzu
a gdy próbuje WHERE numer = $numer to wtedy "błąd zapytania"


Jak rozumiem, Ty chcesz ten nr wprowadzony przez użytkownika zapisać w bazie danych, tak? Spróbuj tak jak pisałem kilka postów wyżej...
art998
Cytat(b4rt3kk @ 19.10.2016, 15:28:07 ) *
Musisz zbudować inne zapytanie:

  1. $query = "INSERT INTO zamowienie (idfirma, numer, miasto, nazwa) SELECT idfirma, {$numer}, miasto, nazwa FROM dane"


no dalej błąd zapytania

Cytat(b4rt3kk @ 19.10.2016, 15:38:35 ) *
Jak rozumiem, Ty chcesz ten nr wprowadzony przez użytkownika zapisać w bazie danych, tak? Spróbuj tak jak pisałem kilka postów wyżej...

TAK, chcę aby był widoczny we wszystkich dodanych rekordach
b4rt3kk
Cytat(art998 @ 19.10.2016, 15:39:45 ) *
no dalej błąd zapytania


A można coś konkretniej? Jaki błąd zapytania?

Kod ma wyglądać tak:

  1. // dodaj_numer.php
  2. <?php
  3. $numer = $_POST['numer'];
  4. echo " Wpisano numer : $numer </br>" ; // wpisano numer wysłany z formularza
  5. $query = "INSERT INTO zamowienie (idfirma, numer, miasto, nazwa) SELECT idfirma, {$numer}, miasto, nazwa FROM dane"
  6.  
  7. if (!empty($numer) OR is_numeric($numer)) {
  8. $wynik = mysqli_query($baza, $query);
  9. }


Jakby się okazało, że całą linijkę wstawiłeś jako zapytanie...

Numer nie może być pusty, bo zapytanie się nie odpali.
art998
Cytat(b4rt3kk @ 19.10.2016, 15:43:14 ) *
A można coś konkretniej? Jaki błąd zapytania?

Kod ma wyglądać tak:

  1. // dodaj_numer.php
  2. <?php
  3. $numer = $_POST['numer'];
  4. echo " Wpisano numer : $numer </br>" ; // wpisano numer wysłany z formularza
  5. $query = "INSERT INTO zamowienie (idfirma, numer, miasto, nazwa) SELECT idfirma, {$numer}, miasto, nazwa FROM dane"
  6.  
  7. if (!empty($numer) OR is_numeric($numer)) {
  8. $wynik = mysqli_query($baza, $query);
  9. }


Jakby się okazało, że całą linijkę wstawiłeś jako zapytanie...

Numer nie może być pusty, bo zapytanie się nie odpali.

zapytanie nie zgłasza błędów ale też i nie dopisuje rekordów do tabeli zamowienia.
b4rt3kk
Cytat(art998 @ 19.10.2016, 15:54:32 ) *
zapytanie nie zgłasza błędów ale też i nie dopisuje rekordów do tabeli zamowienia.


A masz cokolwiek w tabeli dane?
art998
Cytat(b4rt3kk @ 19.10.2016, 15:57:52 ) *
A masz cokolwiek w tabeli dane?

tak mam 44 rekordy :-)
Dzieki za pomoc pomęczę trochę Twój kod ( może jakies apostrofy trzeba gdzieś powkładać)
Dam cynk czy się udało ...I jeszcze raz dzięki :-)

Oki. problem rozwiązany. Kolega @b4rt3kk miał rację. Zapytanie działa jak należy, błąd był po mojej stronie ( brak wiedzy)
  1. $wynik = mysqli_query($baza,"INSERT INTO zamowienie (idfirma, numer, miasto, nazwa, adres) SELECT idfirma, {$numer}, miasto, nazwa, adres FROM dane") or die("Błąd zapytania !") ;
  2.  
  3. while ($row = mysqli_fetch_array($wynik)) {
  4. }
  5. echo "DODANO NOWY NUMER DO BAZY";

Serdeczne pozdrowienia Mr @b4rt3kk
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.