• 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

Cloud VPS
0 głosów
312 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 588 wizyt
pytanie zadane 25 lutego 2016 w SQL, bazy danych przez Filip2248 Dyskutant (8,840 p.)
0 głosów
1 odpowiedź 315 wizyt
0 głosów
1 odpowiedź 1,841 wizyt
pytanie zadane 29 stycznia 2018 w SQL, bazy danych przez Dagon Nowicjusz (120 p.)

93,454 zapytań

142,449 odpowiedzi

322,718 komentarzy

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

Kursy INF.02 i INF.03
...