Vinnaren i pepparkakshustävlingen!
2017-10-04, 12:59
  #1
Medlem
wallchars avatar
Hur kan jag skicka detta till databasen så det skickas som t.ex "namn, namn, namn"? Jag har läst, och testat mig fram, och det går inte framåt. Just grejen att skicka på detta viset, är en del av ett större projekt jag håller på med. Så detta nedan är en exempelkod, och bla därför jag inte har escapeat variablar.
Kod:
<!---- ############ FORMULÄR ---->

<form method='post' action='index.php' name='test'>
<input type='text' name='namn[]' placeholder='Namn' />
<input type='text' name='namn[]' placeholder='Namn' />
<input type='text' name='namn[]' placeholder='Namn' />
<input type='submit' name='posta' value='test' />
	</form>
	
<!---- ############ FORMULÄR ---->

Kod:
<?php
    
    
if(isset($_POST['posta'])){
        
$namn $_POST['namn'];
        
        
$arr = array('');
        foreach(
$namn as $bar){
            
$arr[] = $bar;
        }
        
        
$sql "INSERT INTO users SET info='".$bar."'";
        
$q $conn->query($sql) or die(mysqli_error($conn));
        
header("Location:index.php");
    }
?>

Tack på förhand
Citera
2017-10-04, 13:22
  #2
Medlem
Diverges avatar
$bar kommer bara innehålla sista värdet efter forloopen, du vill nog ta värden ifrån $arr istället.
Var ligger problemet?
Får du genom alla värden i $_POST?
Citera
2017-10-04, 14:19
  #3
Medlem
wallchars avatar
Citat:
Ursprungligen postat av Diverge
$bar kommer bara innehålla sista värdet efter forloopen, du vill nog ta värden ifrån $arr istället.
Var ligger problemet?
Får du genom alla värden i $_POST?

Tack för hjälpen! Det låter logiskt att det är $arr som ska skickas. Jag ändrade på det, men då postades en tom tabell istället. Japp det får jag. Jag testade att skriva ut print_r($arr); och allting ser ut som det ska.
Citera
2017-10-04, 15:36
  #4
Medlem
Kaustis avatar
Citat:
Ursprungligen postat av wallchar
Tack för hjälpen! Det låter logiskt att det är $arr som ska skickas. Jag ändrade på det, men då postades en tom tabell istället. Japp det får jag. Jag testade att skriva ut print_r($arr); och allting ser ut som det ska.

Prova byta ut insertraden till detta:

Kod:
$sql "INSERT INTO users SET info='".implode(',',$arr)."'"
Citera
2017-10-06, 15:26
  #5
Medlem
Har visserligen inte med grundfrågeställningen att göra, men jag ser att du skapade en array på detta sätt:
$arr = array('');

Om du inte redan är medveten om detta så kommer du då skapa ett tomt element ($arr[0]=>'').
Du kan istället skriva:
$arr = array();
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback