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

Dodawanie wpisów do bazy danych nie działa

Object Storage Arubacloud
0 głosów
203 wizyt
pytanie zadane 7 marca 2016 w Nasze projekty przez Jakub Suszyński Użytkownik (540 p.)

Cześć

Mam problem z kodem dot. bazy danych, otóż próbuję stworzyć skrypt który dodaje dane do bazy danych i wybiera tabele na podstawie <select> w formularzu w htmlu. Otóż wpisy nie pojawiają się w tabeli.

tak wygląda mój skrypt przesyłający wpisy do bazy danych, która z budowana jest z kolumn id, name i des 

<?php

	require_once "connect.php"; //skrypt zatrzyma sie jesli nie znajdzie connect.php, 
												//once - jesli wczeniej przylaczylem -nie bedzie wczytywal drugi raz
	
	$connection = @new mysqli($host, $db_user, $db_password, $db_name); //@ - nie da bledow na ekran, loguje sie do phpmyadmin i odnajduje baze danych
	

	if($connection->connect_errno!=0)
	 {
		 echo "Error: ".$connection->connect_errno; //numer erroru w razie niepowodzenia
	 }
	 else // jesli wszystko ok to sie wykona else
	 {
				

		$name = $_POST['name'];
		$des = $_POST['des'];
		$select = $_POST['select'];
		$sql ="INSERT INTO `vans`(`id`, `name`, `des`) VALUES (NULL,'$name','$des')";
	
	
			 switch ($select)
		{
    case 'vans':
    "INSERT INTO `vans`(`id`, `name`, `des`) VALUES (NULL,'$name','$des')";
    break;

    case 'nike':
     "INSERT INTO `nike`(`id`, `name`, `des`) VALUES (NULL,'$name','$des')";
    break;

    case 'adidas':
     "INSERT INTO `adidas`(`id`, `name`, `des`) VALUES (NULL,'$name','$des')";
    break;
	
	case 'etnies':
     "INSERT INTO `etnies`(`id`, `name`, `des`) VALUES (NULL,'$name','$des')";
    break;
		}	
	}
	
		$connection->close();
	 


?>

Gdy wpisuję np. echo do konkretnego switcha to wszystko działa jak należy ale w bazie danych nie pojawiają się wpisy. Czym to może być spowodowane?

3 odpowiedzi

+1 głos
odpowiedź 7 marca 2016 przez Magicone Nałogowiec (45,100 p.)
  • switch nie służy w Twoim wypadku do przypisywania wartości jakiejś zmiennej, a tylko rzucaniem takiej zmiennej w otchłań.
  • nigdzie nie widać, abyś konkretne zapytanie wysyłał do bazy.
  • małpy Twoim wrogiem
  • tak naprawdę nie sprawdzasz, czy dane z formularza istnieją
komentarz 7 marca 2016 przez Jakub Suszyński Użytkownik (540 p.)
jak więc mogę to zapisać aby zapis się 'uaktywnił'?
+1 głos
odpowiedź 7 marca 2016 przez Mateusz11 Pasjonat (22,910 p.)

1. Polecam PDO.

2. Nie wysyłasz tych danych do bazy

3. I o ile sie nie myle to : 

    case 'vans':
    "INSERT INTO `vans`(`id`, `name`, `des`) VALUES (NULL,'$name','$des')";
    break;
 
    case 'nike':
     "INSERT INTO `nike`(`id`, `name`, `des`) VALUES (NULL,'$name','$des')";
    break;
 
    case 'adidas':
     "INSERT INTO `adidas`(`id`, `name`, `des`) VALUES (NULL,'$name','$des')";
    break;
     
    case 'etnies':
     "INSERT INTO `etnies`(`id`, `name`, `des`) VALUES (NULL,'$name','$des')";
    break;
        }   
    };

Powinien być średnik

Pozdrawiam

komentarz 7 marca 2016 przez Jakub Suszyński Użytkownik (540 p.)

Przyjecialu, ale dlaczego nie wysyłam ich do bazy? Nawiązałem połączenie poprzez 

$connection

a potem próbuję dodać dane poprzez INSERT INTO

Dlaczego to nie działa?

komentarz 7 marca 2016 przez Mateusz11 Pasjonat (22,910 p.)

Niech stracę... dam ci gotowca...

switch ($select)
        {
        case 'vans':
        $sqlv ="INSERT INTO `vans`(`id`, `name`, `des`) VALUES (NULL,'$name','$des')";       
        $record = mysql_query('$sqlv');
 
        break;
 
        case 'nike':
        $sqln ="INSERT INTO `nike`(`id`, `name`, `des`) VALUES (NULL,'$name','$des')";       
        $record = mysql_query('$sqln');
        break;
 
        case 'adidas':
        $sqla ="INSERT INTO `adidas`(`id`, `name`, `des`) VALUES (NULL,'$name','$des')";
        $record = mysql_query('$sqla');
        break;
     
        case 'etnies':
        $sqle ="INSERT INTO `etnies`(`id`, `name`, `des`) VALUES (NULL,'$name','$des')";
        $polaczenie->query($sqle); //1 sposob
        $record = mysqli_query($sqle); //2 sposób
        ???? //3 sposob PDO!
        break;
        }   

Pozdrawiam

komentarz 7 marca 2016 przez Jakub Suszyński Użytkownik (540 p.)
Śmiga, tego 2 sposobu mi brakowało. Dzięki serdeczne.
0 głosów
odpowiedź 7 marca 2016 przez Jakub Suszyński Użytkownik (540 p.)

przerobiłem kod ze switchem w następujący sposób, jednak nadal rekordy nie są dodawane do bazy:

switch ($select)
		{
		case 'vans':
        $sqlv ="INSERT INTO `vans`(`id`, `name`, `des`) VALUES (NULL,'$name','$des')";       
	    $record = mysql_query('$sqlv');

		break;

		case 'nike':
		$sqln ="INSERT INTO `nike`(`id`, `name`, `des`) VALUES (NULL,'$name','$des')";       
	    $record = mysql_query('$sqln');
		break;

		case 'adidas':
        $sqla ="INSERT INTO `adidas`(`id`, `name`, `des`) VALUES (NULL,'$name','$des')";
		$record = mysql_query('$sqla');
		break;
	
		case 'etnies':
        $sqle ="INSERT INTO `etnies`(`id`, `name`, `des`) VALUES (NULL,'$name','$des')";
		$record = mysql_query('$sqle');
		break;
		}	

nie rozumiem już czemu to nie działa, wydaje mi się że powinno śmigać bo bazuję na kilku rozwiązaniach ze zdawałoby się sprawdzonych źródeł

Podobne pytania

0 głosów
2 odpowiedzi 236 wizyt
pytanie zadane 25 lutego 2016 w SQL, bazy danych przez Filip31411 Dyskutant (8,820 p.)
0 głosów
1 odpowiedź 241 wizyt
0 głosów
1 odpowiedź 1,663 wizyt
pytanie zadane 29 stycznia 2018 w SQL, bazy danych przez Dagon Nowicjusz (120 p.)

92,536 zapytań

141,376 odpowiedzi

319,451 komentarzy

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

...