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

question-closed Jak wyjąć z bazy tylko jeden rekord

0 głosów
1,064 wizyt
pytanie zadane 3 stycznia 2020 w SQL, bazy danych przez franz Gaduła (4,940 p.)
zamknięte 4 stycznia 2020 przez franz

Witam 
Nie proszę o gotowca , a raczej o naprowadzenie na rozwiązanie (mile widziane linki)
Mój problem polega na tym że chce wyświetlić z bazy jeden tylko wpis .

Spróbuje to zobrazować

nick email jakaś wartość  inna wartość   punkty
adam       6
janek       34

Chce wyjąc z bazy i wyświetlić ilość punktów jakie posiada powiedzmy "adam"

Dodam że pisze to w Codeigniter próbowałem wielu zapytań i nie udało mi sie wyświetlić tego co chce 

Proszę o wskazówki jak skonstruować zapytanie i odebrać wynik 
Próbowałem na wiele sposobów 

$this->db->query("SELECT * FROM uzytkownicy WHERE '$nick'");
foreach ($query->result() as $row)
echo 'Łączna liczba wyników: ' . $row->num_rows();
Łączna liczba wyników:0

to zapytanie nawet działa ale nie zwraca niczego 

Proszę o rady jak to rozwiązać , jestem początkujący dlatego proszę o wyrozumiałość

komentarz zamknięcia: Porada udzielona , działa tak jak chciałem

1 odpowiedź

0 głosów
odpowiedź 3 stycznia 2020 przez adrian17 Mentor (354,120 p.)
wybrane 3 stycznia 2020 przez franz
 
Najlepsza

Gdzieś zgubiłeś `=` w WHERE? ;)

select a, b, c from table where kolumna=wartosc1, kolumna2=wartosc2;

(EDIT: inna sprawa: nie wolisz użyć ActiveRecord zamiast gołego SQLa?)

komentarz 3 stycznia 2020 przez franz Gaduła (4,940 p.)

Weryfikacja formularza powinna załatwić SQL INJECTION

To zapytanie wykonuje się bez ingerencji usera 

Juz to zmieniłem smiley teraz to zapytanie wygląda tek 

$query = $this->db->get_where('uzytkownicy', array('username' => $nick));
                foreach ($query->result() as $row)

Ale teraz mam inny problem z kolejnym zapytaniem do bazy 

 $data = array(
               'punkty' => $sum,
                );

        $sql = $this->db->where('username', $nick);
        $sql = $this->db->update('uzytkownicy', $data);
        $this->db->query($sql);

wywala się błędem 

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 '1' at line 1

W phpMyAdmin jak wpisuje 

UPDATE `uzytkownicy` SET `punkty` = 54 WHERE `username` = 'franz'

działa dobrze 

Jaki może być powód ?

Próbowałem z różnymi typami w tej kolumnie i cały czas ten sam błąd 

komentarz 3 stycznia 2020 przez adrian17 Mentor (354,120 p.)
array('username' => $nick)

To nie PHP 5.3, żeby array() używać ;)

       $sql = $this->db->update('uzytkownicy', $data);
       $this->db->query($sql);

Zgodnie z dokumentacją update():

Generates an update string and runs the query based on the data you supply

więc ta druga linia jest nie tylko niepotrzebna, ale pewnie też nie ma sensu.

A ich oficjalny przykład nawet nie ma $sql: https://codeigniter.com/userguide2/database/active_record.html#update

 

komentarz 3 stycznia 2020 przez franz Gaduła (4,940 p.)
edycja 4 stycznia 2020 przez franz

własnie z tego przykładu który podlinkowałeś skopiowałem i są tam obie linie

Nie wiem tylko dlaczego ten błąd

Po skasowaniu linii 

$sql = $this->db->where('username', $nick);

Najzwyczajniej zaktualizowało wszystkich w bazie dodając każdemu 
Ale błąd jest nadal taki sam 

1
komentarz 4 stycznia 2020 przez adrian17 Mentor (354,120 p.)

własnie z tego przykładu który podlinkowałeś skopiowałem i są tam obie linie

Nie widzę tam nigdzie `$sql =` ani `$this->db->query($sql)`.

Po skasowaniu linii $this->db->where najzwyczajniej zaktualizowało wszystkich w bazie

No... tak. Po co skasowałeś tą linię? :P Nic o niej nie mówiłem.

komentarz 4 stycznia 2020 przez franz Gaduła (4,940 p.)

Po raz kolejny czerwienie się ze wstydu i złości na samego siebie, że sam nie potrafiłem wpaść na tak prostą rzecz, Jednak w ramach wyjaśnienia chciałbym powiedzieć . tworze sobie tą stronkę tylko w ramach swojego hobby. Nie zajmuje się programowaniem i nigdy zawodowo się nim zajmował nie będę jestem na to za stary smiley, 50-siatka już na karku.
Kolejny raz dziękuje za udzielenie mi wskazówki .

Podobne pytania

0 głosów
1 odpowiedź 451 wizyt
pytanie zadane 16 września 2018 w PHP przez Gucci93 Użytkownik (570 p.)
0 głosów
0 odpowiedzi 255 wizyt
0 głosów
2 odpowiedzi 409 wizyt

93,424 zapytań

142,421 odpowiedzi

322,646 komentarzy

62,785 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

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...