webForumDet fria alternativet

3-D array

PHP

5 svar · 227 visningar · startad av nkrantz

Medlem sedan apr. 2002830 inlägg
Frågan#1

Hm.. har lite problem... Skall lägga in data från en mega fet array in i databasen. Arrayen ser ut så här:

$question[$fragaID][$alternativID]['en_text'];

en_text kan antingen vara 'question_multiple', 'question_name' eller 'alt_name'. Om det är något av question_multiple' eller 'question_name' så är $alternativID alltid 0.

Hur i h*****e får jag fram de olika värderna som arrayen innehåller.. Sitter med en mäng loopar och får fram varje $alternativID för varje $fragaID. Men sen vill den inte längre. x(

<?
while (list ($key, $val) = each ($question))
{
	while (list ($k, $v) = each ($val))
	{
		while (list ($ke, $va) = each ($question[$key]))
		{
			echo $ke; // Detta är indexnumret, dvs $alternativID;
		}
	}
}

tänkte att det borde gå att använda texterna för att få fram resten, men det funkar inte :(

// Nippe

Medlem sedan apr. 2002830 inlägg
#2

Det löste sig lite...

while (list ($key, $val) = each ($question))
		{
			echo $key."<br>";
			while (list ($k, $v) = each ($val))
			{
				while (list ($ke, $va) = each ($question[$key]))
				{
					while (list ($a, $b) = each ($va))
					{
						if ($a == "'question_name'")
						{	
							if ($key != 0)
							{
								if ($b != "")
								{
									echo $ke."Updatera: ".$b."<br>";// visar coola saker
								}
								else
								{
									echo $ke."Bort med: ".$b."<br>";// visar coola saker
								}
							}
							else
							{
								if ($b != "")
								{
									echo "Lägg till: ".$b."<br>";// visar coola saker
								}
							}
						}
						if ($a == "'alt_name'")
						{	
							if ($ke != 0)
							{
								if ($b != "")
								{
									echo $ke."Updatera: ".$b."<br>";// visar coola saker
								}
								else
								{
									echo $ke."Bort med: ".$b."<br>";// visar coola saker
								}
							}
							else
							{
								if ($b != "")
								{
									echo "Lägg till: ".$b."<br>";// visar coola saker
								}
							}
						}
					}
					//echo $ke;// visar coola saker
				}
			}
			echo "<br><br>";
		}
Medlem sedan mars 20007 896 inlägg
#3

Jeez, är du säker på att du verkligen programmerar efter bästa möjliga struktur? ;)

Det ser lite omständigt ut det där, men fick du det att funka så... :bire

Medlem sedan apr. 2002830 inlägg
#4

Jeez, är du säker på att du verkligen programmerar efter bästa möjliga struktur?

Njea... men alltså.. det är ett formulär som man ska kunna lägga till, ta bort, och uppdatera på samma gång.. därför alla if-satser...

Det ser lite omständigt ut det där, men fick du det att funka så

Jo, det funkar iaf, och kunden behöver ju inte glo på koden å se att den e halvsunkig ;) Något bättre sett att lösa det på?

Medlem sedan mars 20007 896 inlägg
#5

Något bättre sett att lösa det på?

Nope, eftersom att jag inte sitter med projektet själv. Däremot strukturen. Jag skulle åtminstone ha använt funktioner för att strukturera bättre.

Exempel:

if( $checkboxUpdate == "Value på checkbox för uppdatering" ) {
     UpdatePost( $nåtSlagsVärde );
}
if( $checkboxAdd == "Value på checkbox för tilläggning(?)" ) {
     AddPost();
}
if( $checkboxDelete == "Value på checkbox för borttagning" ) {
     DeletePost( $nåtSlagsVärde );
}

function UpdatePost( &$nåtVärde ) {
     $nåtVärde = "Nytt värde";
}

function AddPost() {
     // Lägg till nåt nånstans
}

function DeletePost( &$nåtVärde ) {
     $nåtVärde = "";
}

Något liknande ivf, hoppas att du förstår mitt resonemang. :)

Det blir enklare att hitta fel eller bygga om, om du gör så. Det bästa är att använda sig av klasser för att få en bra stuktur, och PHP's OOP-kapabilitet blir bara bättre och bättre. Nu kan man t.o.m. använda privata variabler! :i ;)

Medlem sedan apr. 2002830 inlägg
#6

Jo, du har nog rätt att man kanske borde använda sig av funktioner... projektet är klassuppbyggt, och det är iofs ett udrag ur en funktion ovan.. men kanske smartare att dela upp allt...
//Nippe

257 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)