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

Pętla wstawiająca rekordy do bazy danych

Object Storage Arubacloud
0 głosów
220 wizyt
pytanie zadane 7 lutego 2016 w PHP przez molik Użytkownik (950 p.)
edycja 7 lutego 2016 przez molik
 

Cześć! Może mi ktoś pomóc z tym kodem bo nie mam pomysłu jak to zrobić.. z kodu pewnie się domyślicie o co chodzi. Oczywiście tabela rank w bazie danych oraz pola: id, name.

try {
    $rangi[] = array('name' => 'Użytkownik' ,'name' => 'Moderator','name' => 'Administrator');
    echo '<p>Dodano domyślne rangi do tabeli rank.</p>';
    echo '<ul>';
    while($row = $rangi->fetch()){
        $sql ="INSERT INTO rank (name) VALUES ($row)";
        $pdo->query($sql);
       echo '<li>'.$row.'</li>';
    }
    echo '</ul>';

    echo '<p>Utworzono automatycznie rangę <strong>Użytkownik</strong></p>';
}

3 odpowiedzi

+1 głos
odpowiedź 7 lutego 2016 przez NXT Obywatel (1,860 p.)
wybrane 8 lutego 2016 przez molik
 
Najlepsza
Proszę. U mnie to działa.

$db = new PDO('mysql:dbname=test;host=localhost', 'root', '');

$ranks = array('Uzytkownik', 'Moderator', 'Administrator');

foreach($ranks as $rank) {
    $addedQuery = $db->prepare("
    INSERT INTO rank (name)
    VALUE (:rank)
    ");
    
    $addedQuery->execute([
    'rank' => $rank
    ]);
}

1. Nie użyłem tablicy asocjacyjnej. Nie wydaję mi się ona potrzebna.

2. Foreach przy bazach danych jest raczej najlepszą pętlą.

3. Zastanówmy się jeszcze nad Twoim kodem.

Zobacz co zrobi ten kod.

$tablica = array('name' => 'uzytkownik', 'name' => 'moderator');

echo $tablica['name'];

Jak zauważyłeś wypisuje tylko moderator. W tym wypadku działa to jak:

$tablica[0] = 'uzytkownik'; //przypisujesz wartość początkową
$tablica[0] = 'moderator'; //tutaj zmieniasz tę wartość

//lub

$x = 1; //przypisujesz wartość początkową
$x = 2; //tutaj zmieniasz tę wartość

Radzę poczytać o tablicach i tablicach asocjacyjnych :) - to nie jest powiedziane złośliwie, wręcz przeciwnie.

Pozdrawiam :)

+2 głosów
odpowiedź 7 lutego 2016 przez Arkadiusz Waluk Ekspert (287,950 p.)

z kodu pewnie się domyślicie o co chodzi.

Właśnie jest taki problem, że nie jestem wróżką i nie za bardzo się nie domyślam.

Tym bardziej nie wiem czego chcesz tu dokonać patrząc na to. Najpierw robisz jakąś tablicę $rangi, później chcesz zrobić po niej fetcha którego używa się tylko do wyciągnięcia rekordów pobranych z bazy i później próbujesz zrobić jakieś inserty. Nie wiem o co chodzi, mogę się jedynie domyślać, że może chcesz dodać wszystkie rangi z tej tablicy do bazy, ale ten kod jest tak dziwny, że nie wiem.

komentarz 7 lutego 2016 przez molik Użytkownik (950 p.)

 Nie wiem o co chodzi, mogę się jedynie domyślać, że może chcesz dodać wszystkie rangi z tej tablicy do bazy, ale ten kod jest tak dziwny, że nie wiem.

Faktycznie zbyt skomplikowane abyś się domyślił... odpuść już sobie ten post.

Pozdrawiam 

komentarz 7 lutego 2016 przez Arkadiusz Waluk Ekspert (287,950 p.)
Tak, patrząc na kod, którym próbujesz operować na tablicy funkcjami do operacji na danych pobranych z bazy w jakiejś pętli while to niestety nie wiem co chciałeś osiągnąć. Domyślałem się tego, ale pewności nie mam, tym bardziej że widzę totalnie dziwny kod.

Dlatego napisałem o tym co widzę, a dla Ciebie wielki problem stanowi wyjaśnienie problemu, w którym chcesz, aby ktoś Ci pomógł i mamy się domyślać sami. Okej, nie chcesz to nie będę pomagał, żaden problem ;)

Również pozdrawiam i życzę miłego dnia przede wszystkim
0 głosów
odpowiedź 7 lutego 2016 przez NXT Obywatel (1,860 p.)
W while powinieneś napisać, jaki warunek musi być spełniony, żeby pętla się wykonywała, a Ty przypisujesz wartość do zmiennej $row.

Tak poza tym, nie napisałeś czy kod nie działa, czy wyrzuca błędy :)
komentarz 7 lutego 2016 przez molik Użytkownik (950 p.)
Kolego, to może inaczej.. Jak powinien wyglądać skrypt, który wrzuca dane z tabeli, ale uwaga: tabela ma pola id oraz name, a tablica tylko pole name. i posiada powiedzmy 3 wartości: moderator admin i user. mógłbyś mi taki kod przytoczyć? ja sobie go przeanalizuje. z góry dzięki ;)

Podobne pytania

0 głosów
2 odpowiedzi 414 wizyt
pytanie zadane 30 października 2017 w PHP przez koyoo Początkujący (340 p.)
0 głosów
1 odpowiedź 137 wizyt
pytanie zadane 6 sierpnia 2020 w PHP przez mat19 Obywatel (1,580 p.)
0 głosów
1 odpowiedź 446 wizyt
pytanie zadane 17 grudnia 2017 w SQL, bazy danych przez seam3 Początkujący (450 p.)

92,567 zapytań

141,420 odpowiedzi

319,617 komentarzy

61,953 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!

...