• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Get - odbieranie z adresu strony i pobieranie danych z MYSQL

Object Storage Arubacloud
0 głosów
559 wizyt
pytanie zadane 24 września 2016 w PHP przez Zbigniew Andrysiak Bywalec (2,470 p.)
edycja 24 września 2016 przez ScriptyChris

Witajcie

Znów mam pytanie, a wiem, że u Was mogę szukać pomocy. Nakierujcie mnie. Mam kod jak poniżej. Strona ma w nagłówku (wysyłane z cennik.php) "http://localhost/mobidoktor/cennikserwis.php?firma=Apple&model3=iPad&add=Prześlij"

Teraz tak mam w sql Iphone x4 i Ipad x2 (bo są różne usługi). Chciałbym wyświetlić je na stronie. Pobieram sobie z adresu strony gdzie model3 to np. Ipad. Gdy zrobię  

$mysqli->query("SELECT * FROM cennikmobi10") 

to listuje mi wszystkie, a jak zrobię

 $mysqli->query("SELECT * FROM cennikmobi10 where model3=$id "); 

 to wyrzuca mi błąd

"Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in C:\xampp1\htdocs\mobidoktor\cennikserwis.php on line 69"

Konia z rzędem kto mi pomoże

<?php
if (isset($_GET['model3']) )

{
            $id = $_GET['model3'];
            $result2 = $mysqli->query("SELECT * FROM cennikmobi10 where model3=$id "); //wywołanie artykułu
            $result = $mysqli->query("SELECT * FROM cennikmobi10");
            while ( $article = mysqli_fetch_array($result2) )
             {
  
      echo '<h3>' . $article['brand2'] . '</h3>' ; 
     echo '<br>'.  $article['price_b2c'] . '<br>' .  $article['price_b2b'] ;
    echo '</div>';
}

            }
?>

 

2 odpowiedzi

0 głosów
odpowiedź 24 września 2016 przez Ehlert Ekspert (212,670 p.)
wybrane 24 września 2016 przez Zbigniew Andrysiak
 
Najlepsza
Poczytaj o SQL injection bo właśnie stworzyłeś piękną dziurę do tego. Zainteresuj się PDO i binduj parametry.
komentarz 24 września 2016 przez Zbigniew Andrysiak Bywalec (2,470 p.)
Póki co nie ma tego na serwerze - tworzę na localhost. Poczytam i sprawdzę.
komentarz 24 września 2016 przez Zbigniew Andrysiak Bywalec (2,470 p.)
Czyli rozumiem, że lepiej jest wysłać dane nie za pomocą GET, a na przykład za pomocą POST. I mam szukać dalej. Dobrze rozumuje?
komentarz 24 września 2016 przez Zbigniew Andrysiak Bywalec (2,470 p.)

W dobrą stronę idę?

<?php
if (isset($_POST['model3']) )

{
            $id = $_POST['model3'];
            $result2 = $mysqli->prepare("SELECT * FROM cennikmobi10 where model3 = :id "); //wywołanie artykułu
           // $result = $mysqli->query("SELECT * FROM cennikmobi10");
          //  print_r($result2['model3']);
            while ( $article = mysqli_fetch_array($result2) )
             {
  
      echo '<h3>' . $article['brand2'] . '</h3>' ; 
     echo '<br>'.  $article['price_b2c'] . '<br>' .  $article['price_b2b'] ;
    echo '</div>';
}

            }
?>

 

komentarz 24 września 2016 przez efiku Szeryf (75,160 p.)
mysqli nie pozwala na  nazywanie parametrów bindowanych. Czyt. dokumentację.
0 głosów
odpowiedź 24 września 2016 przez efiku Szeryf (75,160 p.)

Zbinduj parametry w zapytaniu dla artykułu 

Bindowanie masz w dokumentacji, szukaj "php mysqli bind param" w Googlu -> 1 link i przykład oraz ta tableka:

Type specification chars
Character Description
i corresponding variable has type integer
d corresponding variable has type double
s corresponding variable has type string
b corresponding variable is a blob and will be sent in packets

 

komentarz 25 września 2016 przez Zbigniew Andrysiak Bywalec (2,470 p.)
Pomogło - Twój pierwszy pomysł, źle zrobiłem execute.

Ale w bazie sql nie widać, żeby coś zapisywało.
komentarz 25 września 2016 przez efiku Szeryf (75,160 p.)
Pokaż jeszcze formularz.
komentarz 25 września 2016 przez Zbigniew Andrysiak Bywalec (2,470 p.)
Już znalazłem - zapisuje i działa.Zmieniłem configbase (według Twojej podpowiedzi) i wywaliło błąd. Zacząłem naprawiać i nawet datę mi wstawia. WIELKIE DZIĘKI :)
komentarz 25 września 2016 przez efiku Szeryf (75,160 p.)
Mój "config" to był ten drugi fragment kodu, pierwszy go ładował za pomocą require.

Include ostani raz używałem... 5 lat temu ;) Teraz mam composera i robię jeden require w całej aplikacji, resztę piszę w sposób obiektowy.

Spróbuj się zainteresować tematem gdy skończysz robić aplikację taką jak masz obecnie:

Może na początek coś mniejszego:

 composer + slim + twig.

Ale to gdy skończysz swoje dzieło.
komentarz 25 września 2016 przez Zbigniew Andrysiak Bywalec (2,470 p.)
Jestem jak najbardziej za, ale na tę chwilę robię pokazówkę dla firmy, a potem będę ją ulepszał.

Podobne pytania

0 głosów
3 odpowiedzi 397 wizyt
pytanie zadane 9 stycznia 2017 w PHP przez blocks Początkujący (280 p.)
0 głosów
1 odpowiedź 585 wizyt
pytanie zadane 14 grudnia 2017 w PHP przez mi-20 Stary wyjadacz (13,190 p.)
0 głosów
1 odpowiedź 186 wizyt
pytanie zadane 30 listopada 2015 w PHP przez makoso Mądrala (7,380 p.)

92,555 zapytań

141,404 odpowiedzi

319,558 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...