Gå til innhold

explode() og variabler i spørring


Anbefalte innlegg

Heisann,

 

Holder på med et administrasjonssystem for utleie, og henter frem x antall tabeller fra en database:

 

<?php while($row = mysql_fetch_array($sql)) { ?>
  <tr>
	<td><?php echo "$row[modell]"; ?></td>
	<td><?php echo "$row[SB_nummer]"; ?></td>
	<td><?php echo "$row[lokasjon]"; ?></td>
	<td><center><input name="post_SB" type="checkbox" id="post_SB" value="<?php echo "$row[SB_nummer], "; ?>" /></center></td>
  </tr>
												  <?php } ?>

 

Som du kanskje ser, skal det være mulig å krysse av for hver rad som blir hentet ut. Jeg skal bruke radene videre, og sette dem inn i databasen i en ny tabell.

 

Problemet er at alt listes nedover med samme navn på input-en, noe som gjør det vanskelig når du kommer til neste steg. Hvordan kan jeg evt. sette alle som er "huket" av til å bli i én variabel, separert med komma-tegn? Nå når det postes så overskrider den siste linjen i tabellen hele variabelen, slik det kun blir en "post_SB" variabel som blir satt..

 

[explode problemet er løst, derfor er det fjernet fra innlegget]

 

Håper det er tilstrekkelig informasjon til at noen kan hjelpe - har det litt travelt da timen og uken snart er over :-)

 

Takker for svar og hjelp! :)

 

- Joachim.

Endret av Sec_NB
Lenke til kommentar
Videoannonse
Annonse
Navngi checkboxene post_SB[] og kjør en var_dump på $_POST, så tipper jeg du finner ut av det.

 

Blir det slik som dette da:

 

<td><center><input name="post_SB[]" type="checkbox" id="post_SB" value="<?php echo "$row[SB_nummer], "; ?>" />

 

Og når den henter ut så blir vel det

$post_SB = $_POST['post_SB[]'];
$var = var_dump($post_SB);

?

 

Har aldri brukt var_dump før ser du.. :blush:

Lenke til kommentar
Meh, ikke akkurat. Tenker jeg bare viser, jeg. Følgende vil gi deg en kommaseparert liste.

 

<td><center><input name="post_SB[]" type="checkbox" id="post_SB" value="<?php echo "$row[SB_nummer], "; ?>" />

$list = implode ( ',', $_POST['post_SB'] );

 

Ja, det er jeg klar over.. Var omvendt jeg tenkte da :p Det er snakk om 17 rader som listes opp, og om du da f.eks. krysser av 15 av sjekk-boksene, så skal de bli listet opp - og da bruker jeg etterpå explode for å dele opp listen, slik jeg kan bruke ID-en til hver av radene som er krysset av videre i en ny SQL spørring. Derfor lurer jeg på hvordan jeg kan få listet opp alle variablene etter explode, uten å måtte skrive $variabel[0] $variabel[1] etc...

Lenke til kommentar
Hva er det omvendte av en kommaseparert liste da? :wallbash:

 

Navngi checkboxene post_SB[] og skriv var_dump ( $_POST ), så kanskje du finner ut av det selv.

 

Hei igjen,

 

Begynner og komme inn på noe nå! :)

 

Nå krysset jeg av to av sjekkboksene og får opp:

array(2) { [0]=> string(9) "SBR_001, " [1]=> string(9) "SBR_002, " }

 

SBR_001 og SBR_002 vil jeg gjerne ha i to forskjellige variabler - med samme navn! Da disse skal gjennom følgende spørring:

$sql_sett_inn = mysql_query("INSERT INTO SB_arr_leie (modell, sb_nummer, fra_dato, til_dato, utleid_av, bestilling_avhentet, bestilling_levert, merknadder, annet, behandlings_id)
VALUES ($modell, $sjekk_database, $fra_dato, $til_dato, $navn, 0, 0, 0, 0, $behandlings_id)");

 

HVOR $sjekk_database er navnet på variabelen der "ID-en" skal ligge.... Noe forslag? :)

Lenke til kommentar

No suchs thing as variabler med samme navn. Ved å navngi form-elementer med identiske navn, etterfulgt av brackets, så mottar du et array og det er det nærmeste du kommer. Dersom du vil gjøre noe med hver verdi, så er det enkelt å iterere over det.

 

foreach ( $_POST['post_SB'] as $sjekk_database )
mysql_query("INSERT INTO SB_arr_leie (modell, sb_nummer, fra_dato, til_dato, utleid_av, bestilling_avhentet, bestilling_levert, merknadder, annet, behandlings_id) VALUES ($modell, $sjekk_database, $fra_dato, $til_dato, $navn, 0, 0, 0, 0, $behandlings_id)")

;

Lenke til kommentar

Hmm.. Tror det blir lettere om jeg limer inn hele koden her:

 

<?php require_once('../config.php');


						if(isset($_POST['leietaker'])){

$behandlings_id = rand(1089,50000);
$_SESSION['behandlings_id'] = $behandlings_id;

$post_SB = var_dump($_POST['post_SB']);
$sjekk_database = explode(", ", $post_SB);

$sql_sett_inn = mysql_query("INSERT INTO SB_arr_leie (modell, sb_nummer, fra_dato, til_dato, utleid_av, bestilling_avhentet, bestilling_levert, merknadder, annet, behandlings_id)
VALUES ($modell, $sjekk_database, $fra_dato, $til_dato, $navn, 0, 0, 0, 0, $behandlings_id)");
$_SESSION['utleide_radioer'] .= $sjekk_database;



$utleide_radioer = $_SESSION['utleide_radioer'];
echo "Utleide radioer: $utleide_radioer - Behandlings ID = $behandlings_id";									}



$sql_1 = mysql_query("SELECT * FROM SB_arr_radioer WHERE modell = 'GP388'");
while($row_2 = mysql_fetch_array($sql_1)) { //starter row_2
$sb_nr_sjekk = $row_2['SB_nummer'];

	$sql_sjekk_opptatt = mysql_query("SELECT * FROM SB_arr_leie WHERE sb_nummer LIKE '%$sb_nr_sjekk%'");

while($row_dato_sjekk = mysql_fetch_array($sql_sjekk_opptatt)) { //starter row_dato_sjekk
	$dato_sess = '20091120';
	$dato_sess_til = '20091122';

	if($dato_sess <= $row_dato_sjekk['fra_dato'] || $dato_sess_til >= $row_dato_sjekk['til_dato']){ //starter dato_sjekk
		$ikke_sb = "0";

																								  }else{
	$ikke_sb = $row_dato_sjekk['sb_nummer'];
	$_SESSION['ikke_sb_sess'] .= $row_dato_sjekk['sb_nummer']; 									  } //lukker dato_sjekk

$sql = mysql_query("SELECT * FROM SB_arr_radioer WHERE modell = 'GP388' ORDER BY SB_nummer LIMIT 3");
																  } //lukker row_dato_sjekk

												} //lukker row_2											
		$ant = mysql_num_rows($sql);

?>
<br />
<p class="sitat">Forslag til radioer som skal leies ut - <?php echo "$ant"; ?> radioer er satt opp<br /><?php echo "Fra $dato til $til_dato"; ?></p>
<br />
<form method="post">
<table width="348" border="1" align="center">
  <tr>
	<td width="66">Modell</td>
	<td width="102">SBR_nummer</td>
	<td width="91">Lokasjon</td>
	<td width="149">Leies ut?</td>
  </tr>
  <?php while($row = mysql_fetch_array($sql)) { ?>
  <tr>
	<td><?php echo "$row[modell]"; ?></td>
	<td><?php echo "$row[SB_nummer]"; ?></td>
	<td><?php echo "$row[lokasjon]"; ?></td>
	<td><center><input name="post_SB[]" type="checkbox" id="post_SB" value="<?php echo "$row[SB_nummer], "; ?>" /></center></td>
  </tr>
												  <?php } ?>
  <tr>
	<td><input type="submit" name="avbryt" id="avbryt" value="Avbryt" class="button" /></td>
	<td> </td>
	<td align="right"><input type="submit" name="tilbake_steg3" id="tilbake_steg3" value="Forrige" class="button" /></td>
	<td><input type="submit" name="leietaker" id="leietaker" value="Neste" class="button" /></td>
  </tr>
</table>
</form>

 

Det er det jeg begynte med fra scratch.. Vil som sagt at post_SB (som da blir flere rader fra databasen) skal bli satt inn i SQL tabellen, også satt i en session... Det skal da bli satt inn som én rad pr. sjekkboks som er krysset av.

 

Hehe, håper du kan hjelpe :)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...