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

$_POST[$zmienne] Tworzenie quizu

0 głosów
158 wizyt
pytanie zadane 14 lutego 2016 w PHP, Symfony, Zend przez gab123 Mądrala (5,240 p.)

Witam,

ostatnie czasy tworze prosty quiz internetowy za pomocą PHP pytam użytkownika ile chce pytan, potem tworze formularz z informacjami na temat każdego pytania i na koniec wkładam jego odpowiedzi do bazy danych. Mam problem z trzecim krokiem ale nie chodzi tu o to ze zle wpisałam zapytanie, tak wlasciwie to nie wiem o co chodzi ale domyślam się ze problem jest w nazwach('name) inputow w formularzu i znajdowaniu ich metoda post. Tutaj kod :

<!DOCTYPE_HTML>
<html>
<head>
<meta charset = "utf-8" />
<meta http-equiv = "X-UA-Compatible" content = IE=edge,chrome=1" />
</head>
<body>
Twoje kursy : 
<?php
session_start() ;

if(isset($_SESSION['login'])) {
	
	require_once "connect.php" ;
	
	$polaczenie = new mysqli($host, $db_user, $db_password, $db_name ) ;
	
	if ($polaczenie -> connect_errno==0) {
		
			$idk = $_SESSION['idkursu'];
			$idt =$_SESSION['idtworcy'];
			
		if(isset($_POST['ile'])){
			$ipu =$_POST['ipu'];
			$ile = $_POST['ile'] ;
			
			$polaczenie->query("INSERT INTO quizy(idkursu,ipu)VALUES('$idk','$ipu')");
			
			//dodawanie formularza 
			echo '<form method = "post" >' ;
			for($i=1;$i<=$ile;$i++) { 
				echo "Podaj pytanie" . $i . '</br> <input type = "text" name = $i /> </br>' ;
				echo "Podaj odp a na pytanie" . $i . '</br> <input type = "text" name = $i*2 /> </br>' ;
				echo "Podaj odp b na pytanie" . $i . '</br> <input type = "text" name = $i*3 /> </br>' ;
				echo "Podaj odp c na pytanie" . $i . '</br> <input type = "text" name = $i*4 /> </br>' ;
				echo "Podaj odp d na pytanie" . $i . '</br> <input type = "text" name = $i*5 /> </br>' ;
				echo "Podaj poprawna odp na pytanie" . $i . '</br> <input type = "text" name = $i*6 /> </br>' ;
			}
			echo '<input type = "submit" value = "wyslij quiz"' ;
			echo '</form>' ;
			
		}
		
		//wysylanie go 
			if(isset($_POST[1])) {
				for($i=1;$i<=$ile;$i++) { 
				
				$pyt = $_POST[$i] ;
				$a = $_POST[$i*2] ;
				$b = $_POST[$i*3] ;
				$c = $_POST[$i*4] ;
				$d = $_POST[$i*5] ;
				$pop = $_POST[$i*6] ;
				
				$quiz = $polaczenie->query("SELECT id  FROM quizy WHERE idkursu = '$idk'AND ipu = '$ipu')")->fetch_assoc()['id'];
				$polaczenie->query("INSERT INTO pytania(idquizu, pytanie, odpa, odpb,odpc,odp,poprawna) VALUES ('$quiz','$pyt', '$a','$b', '$c', '$d','$pop')") ;
				echo "Udalo sie " ;
				header('Location:kursy.php');
				exit();
			}
			}
}
}
else {
	header('Location:index.php') ;
	exit();
	}
	?>
Utworz kursy 
<form method="post">
	Podaj ilosc pytan  : </br>
	<input type = "text" name = "ile" /> </br>
	Podaj ilosc poprawnych odp. by zdobyc umiejentnosc /
	<input type = "text" name = "ipu" /> </br>
	<input type = "submit" value = "Dodaj lekcje" /> </br>
</form>
<a href = "dodajquiz.php" > Dodaj quiz umiejentnosci </a>
</html>

Nie wiem czy da się dawac name jako zmienna. Ale nie miałam innego pomysłu jak zrobić ten projekt. Ten wydawal się najprostrzy. Jak wiecie jak to zrobić prościej napiszcie.

Jak zrobić by ten kod dzialal ?

Z góry dziekuje.

1 odpowiedź

0 głosów
odpowiedź 14 lutego 2016 przez SPAP Dyskutant (8,860 p.)
wybrane 15 lutego 2016 przez gab123
 
Najlepsza
Powtarzają Ci się nazwy pól formularza z pytaniami. Przy wysyłaniu przyjmujesz tylko 1. pytanie (na końcu pętli masz exit).

Edit. W ogóle masz źle te pola zrobione (mnożenie w apostrofach?)
komentarz 15 lutego 2016 przez gab123 Mądrala (5,240 p.)

Nie nie działa caly czas jest to samo formularz się pokazuje ale nie wysyla(albo przynajmniej nie ma rezultatow wyslania) Poprawiony kod wygląda tak :

<!DOCTYPE_HTML>
<html>
<head>
<meta charset = "utf-8" />
<meta http-equiv = "X-UA-Compatible" content = IE=edge,chrome=1" />
</head>
<body>
Twoje kursy : 
<?php
session_start() ;

if(isset($_SESSION['login'])) {
	
	require_once "connect.php" ;
	
	$polaczenie = new mysqli($host, $db_user, $db_password, $db_name ) ;
	
	if ($polaczenie -> connect_errno==0) {
		
			$idk = $_SESSION['idkursu'];
			$idt =$_SESSION['idtworcy'];
			$ile;
			
		if(isset($_POST['ile'])){
			$ipu =$_POST['ipu'];
			$ile = $_POST['ile'] ;
			
			$polaczenie->query("INSERT INTO quizy(idkursu,ipu)VALUES('$idk','$ipu')");
			
			//dodawanie formularza 
			echo '<form method = "post" >' ;
			for($i=1;$i<=$ile;$i++) { 
				echo "Podaj pytanie" . $i . '</br> <input type = "text" name ="'. $i.'"/> </br>' ;
				echo "Podaj odp a na pytanie" . $i . '</br> <input type = "text" name ="' .$i."a" .'"/> </br>' ;
				echo "Podaj odp b na pytanie" . $i . '</br> <input type = "text" name ="'. $i."b" .'"/> </br>' ;
				echo "Podaj odp c na pytanie" . $i . '</br> <input type = "text" name ="' .$i."c" .'"/> </br>' ;
				echo "Podaj odp d na pytanie" . $i . '</br> <input type = "text" name ="'. $i."d".'" /> </br>' ;
				echo "Podaj poprawna odp na pytanie" . $i . '</br> <input type = "text" name = "'.$i."poprawna". '" /> </br>' ;
			}
			echo '<input type = "submit" value = "wyslij quiz"' ;
			echo '</form>' ;
			
		}
		
		//wysylanie go 
			if(isset($_POST['1'])) {
				for($i=1;$i<=$ile;$i++) { 
				
				echo $i ;
					
				$pyt = $_POST[$i] ;
				$a = $_POST[$i."a"] ;
				$b = $_POST[$i."b"] ;
				$c = $_POST[$i."c"] ;
				$d = $_POST[$i."d"] ;
				$pop = $_POST[$i."poprawna"] ;
				
				$quiz = $polaczenie->query("SELECT id  FROM quizy WHERE idkursu = '$idk'AND ipu = '$ipu'")->fetch_assoc()['id'];
				$polaczenie->query("INSERT INTO pytaniaquizu(idquizu, pytanie, odpa, odpb,odpc,odpd,poprawna) VALUES ('$quiz','$pyt', '$a','$b', '$c', '$d','$pop')") ;
				echo "Udalo sie " ;
				}
			}
			else
				echo "Napisz dane ";
}
}
else {
	header('Location:index.php') ;
	exit();
	}
	?>
Utworz kursy 
<form method="post">
	Podaj ilosc pytan  : </br>
	<input type = "text" name = "ile" /> </br>
	Podaj ilosc poprawnych odp. by zdobyc umiejentnosc /
	<input type = "text" name = "ipu" /> </br>
	<input type = "submit" value = "Dodaj lekcje" /> </br>
</form>
<a href = "dodajquiz.php" > Dodaj quiz umiejentnosci </a>
</html>

Zapytania sprawdziłam kilka razy w phpmyadmin. Nie wiem gdzie blad.

komentarz 15 lutego 2016 przez SPAP Dyskutant (8,860 p.)
Ok mi już działa, dodałem exit() w 42 linijce, a zmienną ile zapisałem do sesji
komentarz 15 lutego 2016 przez gab123 Mądrala (5,240 p.)
rzeczywiście po wsadzeniu ile do sesji wszystko działa. Dziekuje
komentarz 15 lutego 2016 przez SPAP Dyskutant (8,860 p.)
Popraw jeszcze tylko HTML i będzie dobrze, <br /> a nie </br> i w meta masz źle cudzysłowy, ogólnie kliknij ,pokaż źródło strony' i zobacz gdzie jest coś na czerwono, brakuje cudzysłowów itp.
komentarz 15 lutego 2016 przez gab123 Mądrala (5,240 p.)
Dziękuje, bardzo mi pomogłeś

Podobne pytania

0 głosów
1 odpowiedź 80 wizyt
pytanie zadane 30 stycznia w PHP, Symfony, Zend przez zerakot Obywatel (1,570 p.)
0 głosów
1 odpowiedź 106 wizyt
pytanie zadane 18 czerwca 2018 w PHP, Symfony, Zend przez Piotr Szramowski Użytkownik (860 p.)
0 głosów
1 odpowiedź 205 wizyt
pytanie zadane 26 lutego 2017 w PHP, Symfony, Zend przez Ozzy Nowicjusz (140 p.)
Porady nie od parady
Pytania na temat serwisu SPOJ należy zadawać z odpowiednią kategorią dotyczącą tej strony.SPOJ

66,494 zapytań

113,266 odpowiedzi

239,865 komentarzy

46,631 pasjonatów

Przeglądających: 52
Pasjonatów: 1 Gości: 51

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...