[PHP] array

Pagina: 1
Acties:
  • 192 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • KoBolD54
  • Registratie: Maart 2002
  • Laatst online: 18:52
Ik ben bezig om een site te maken waarmee een kleine database met datums en tijden gewijzigd kan worden.
Nu laat ik eerste de database uitlezen en de uitkomt wegschrijven in een textbox.
Vervolgens kan de tekst aangepast worden en kan er op wijzigen gedrukt worden.

Op die manier worden de waardes van de textbox omgezet in een variable.
De tabel bevat de volgende velden:

ID
dag
datum
begintijd
eindtijd

met onderstaand script probeerd ik de gegevens van alle ID's te stoppen in een array echter lukt me dit niet.

PHP:
1
2
3
4
5
6
7
8
9
$data = array();
    
$id = $_GET['id'];
$dag = $_GET['dag'];
$datum = $_GET['datum'];
$begintijd = $_GET['begintijd'];
$eindtijd = $_GET['eindtijd'];

$data[$id]=$dag, $datum, $begintijd, $eindtijd;


Wanneer dit gelukt is moet ik ze er weer uit kunnen halen maar ik heb geen idee hoe ik dat kan doen?
Wie kan mij hiermee helpen? alvast bedankt _/-\o_

Acties:
  • 0 Henk 'm!

  • SIMPY.be
  • Registratie: April 2003
  • Laatst online: 29-07 09:58
Dit is een 2dimensionale array, misschien es googlen:
http://www.google.be/sear...&meta=&btnG=Google+zoeken

Acties:
  • 0 Henk 'm!

  • KoBolD54
  • Registratie: Maart 2002
  • Laatst online: 18:52
op een of andere manier lukt mij dat niet, dit had ik inderdaad al geprobeerd maar vergeten te melden.

ik denk dat het komt doordat ik de ik ene array maak met meerdere waardes erin.
voorbeeld:

data[1]=("maandag", "29 mei 2006", "12:00", "16:00")

waarbij: 1 de ID van de database is die moet dus ook als variable ingevoegd worden

Acties:
  • 0 Henk 'm!

  • InfoTracer
  • Registratie: November 2001
  • Laatst online: 21:11
PHP:
1
2
3
4
5
6
7
8
9
10
<?
$data = array();
    
$data[id] = $_GET['id'];
$data[dag] = $_GET['dag'];
$data[datum] = $_GET['datum'];
$data[begintijd] = $_GET['begintijd'];
$data[eindtijd] = $_GET['eindtijd']; 

?>


of dan

PHP:
1
2
3
4
5
6
7
8
9
10
<?
$data = array();
    
$data[id][] = $_GET['id'];
$data[id][] = $_GET['dag'];
$data[id][] = $_GET['datum'];
$data[id][] = $_GET['begintijd'];
$data[id][] = $_GET['eindtijd']; 

?>


is volgens mij zelfde als GJ-tje

[ Voor 46% gewijzigd door InfoTracer op 31-05-2006 16:32 ]


Acties:
  • 0 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

KoBolD schreef op woensdag 31 mei 2006 @ 16:14:
$data[$id]=$dag, $datum, $begintijd, $eindtijd;

[/php]
Maak van bovenstaande regel eens:
PHP:
1
$data[$id] = array(1 => $dag, 2 => $datum, 3 => $begintijd, 4 => $eindtijd);
Dan werkt ie wel denk ik... :) Dan krijg je als het goed is iets als
1
(
    1 => Maandag
    2 => 26 Mei 2006
    3 => 12:00
    4 => 16:00
)
Weet alleen even niet hoe het er precies uit komt te zien als je
PHP:
1
2
3
echo '<pre>';
print_r($data);
echo '</pre>';
doet, mocht je dit willen weten, dan kan je dus deze code er voor gebruiken... ;)

[ Voor 37% gewijzigd door CH4OS op 31-05-2006 16:34 ]


Acties:
  • 0 Henk 'm!

  • KoBolD54
  • Registratie: Maart 2002
  • Laatst online: 18:52
@InfoTracer nee sorry dat bedoel ik ook niet want nu krijg je allemaal verschillende array's.
Bij mij moet 1 array meerdere variablelen bevatten

@GJ-tje ik dat het ff proberen

Op de manier van GJ-tje werkt het nu, nu moet ik ze er nog uithalen, dit ga ik even proberen, als dit gelukt is mag het topic gesloten worden.

[ Voor 47% gewijzigd door KoBolD54 op 31-05-2006 16:35 ]


Acties:
  • 0 Henk 'm!

  • Brakkie
  • Registratie: Maart 2001
  • Niet online

Brakkie

blaat

Of zo.
PHP:
1
2
3
4
5
6
$keys = array('id','dag','datum','begintijd','eindtijd');
$data = array();

foreach($keys as $value) {
        $data[$value] = $_GET[$key];
}

Systeem | Strava


Acties:
  • 0 Henk 'm!

  • KoBolD54
  • Registratie: Maart 2002
  • Laatst online: 18:52
Ok bedankt ik ga weer verder met de site! _/-\o_

Acties:
  • 0 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

Brakkie schreef op woensdag 31 mei 2006 @ 16:36:
Of zo.
PHP:
1
2
3
4
5
6
$keys = array('id','dag','datum','begintijd','eindtijd');
$data = array();

foreach($keys as $value) {
        $data[$value] = $_GET[$key];
}
Dan kan je denk ik beter de $_GET array doorlopen... ;) Aangezien jouw $keys array hetzelfde is als de $_GET array
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
foreach($_GET as $key => $val)
{
    if($key != "id") // We willen niet $data[1][id] hebben, now would we? ;)
    { 
        $data[$id][$key] = $val;
    }
}

// En voor de zekerheid even wat output voor het controleren:
echo '<pre>';
print_r($data);
echo '</pre>';

[ Voor 164% gewijzigd door CH4OS op 31-05-2006 16:52 ]


Acties:
  • 0 Henk 'm!

  • KoBolD54
  • Registratie: Maart 2002
  • Laatst online: 18:52
omdat ik een foutje over het hoofd had gezien moest ik een stuk opnieuw schrijven en heb het nu zo gedaan, maar echter gebeurd er niets, error_reporting staat aan maar krijg een wit scherm:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<input name="id" type="hidden" value="<?php echo $db_data['ID']; ?>" />
<input name="dag" type="text" value="<?php echo $db_data['dag']; ?>">
<input name="datum" type="text" value="<?php echo $db_data['datum']; ?>">
<input name="begintijd" type="text" value="<?php echo $db_data['begintijd']; ?>">
<input name="eindtijd" type="text" value="<?php echo $db_data['eindtijd']; ?>">

<?php       
$_SESSION['data'] = array();
$id = $db_data['ID'];
$dag = $db_data['dag'];
$datum = $db_data['datum'];
$begintijd = $db_data['begintijd'];
$eindtijd = $db_data['eindtijd'];

$_SESSION['data'][$id] = array (1 => $dag, 2 => $datum, 3 => $begintijd, 4 => $eindtijd);
?>

[ Voor 25% gewijzigd door KoBolD54 op 31-05-2006 16:52 ]


Acties:
  • 0 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

KoBolD schreef op woensdag 31 mei 2006 @ 16:52:
omdat ik een foutje over het hoofd had gezien moest ik een stuk opnieuw schrijven en heb het nu zo gedaan, maar echter gebeurd er niets, error_reporting staat aan maar krijg een wit scherm:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<input name="id" type="hidden" value="<?php echo $db_data['ID']; ?>" />
<input name="dag" type="text" value="<?php echo $db_data['dag']; ?>">
<input name="datum" type="text" value="<?php echo $db_data['datum']; ?>">
<input name="begintijd" type="text" value="<?php echo $db_data['begintijd']; ?>">
<input name="eindtijd" type="text" value="<?php echo $db_data['eindtijd']; ?>">

<?php       
$_SESSION['data'] = array();
$id = $db_data['ID'];
$dag = $db_data['dag'];
$datum = $db_data['datum'];
$begintijd = $db_data['begintijd'];
$eindtijd = $db_data['eindtijd'];

$_SESSION['data'][$id] = array (1 => $dag, 2 => $datum, 3 => $begintijd, 4 => $eindtijd);
?>
Wat doet je form? POST ie de boel, of verstuurd ie het middels GET? :? Zie bij jouw code ook niet of ie wat moet uitpoepen, dus dan is het wel logisch dat je een witte pagina krijgt... Gebruik anders het volgende eens:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<input name="id" type="hidden" value="<?php echo $db_data['ID']; ?>" />
<input name="dag" type="text" value="<?php echo $db_data['dag']; ?>">
<input name="datum" type="text" value="<?php echo $db_data['datum']; ?>">
<input name="begintijd" type="text" value="<?php echo $db_data['begintijd']; ?>">
<input name="eindtijd" type="text" value="<?php echo $db_data['eindtijd']; ?>">

<?php       
$id = $db_data['ID'];
$dag = $db_data['dag'];
$datum = $db_data['datum'];
$begintijd = $db_data['begintijd'];
$eindtijd = $db_data['eindtijd'];

$_SESSION['data'][$id] = array (1 => $dag, 2 => $datum, 3 => $begintijd, 4 => $eindtijd);

echo '<pre>';
print_r($_SESSION['data']);
echo '</pre>';
?>
Wat ik eigenlijk ook niet helemaal snap... Waarom verstuur je het ID als een hidden veld mee, terwijl je de data in een sessie variabele stopt? Kan je dan niet beter de hidden veldjes van je form in een sessie variabele proppen en dan een nieuwe array (al dan niet binnen je sessie) maken? :?

[ Voor 91% gewijzigd door CH4OS op 31-05-2006 16:57 ]


Acties:
  • 0 Henk 'm!

  • KoBolD54
  • Registratie: Maart 2002
  • Laatst online: 18:52
hij doet het via GET omdat ik nog aan het ontwerpen ben.

Het de fout al
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<input name="id" type="hidden" value="<?php echo $db_data['ID']; ?>" /> 
<input name="dag" type="text" value="<?php echo $db_data['dag']; ?>"> 
<input name="datum" type="text" value="<?php echo $db_data['datum']; ?>"> 
<input name="begintijd" type="text" value="<?php echo $db_data['begintijd']; ?>"> 
<input name="eindtijd" type="text" value="<?php echo $db_data['eindtijd']; ?>"> 

<?php         

$id = $db_data['ID']; 
$dag = $db_data['dag']; 
$datum = $db_data['datum']; 
$begintijd = $db_data['begintijd']; 
$eindtijd = $db_data['eindtijd']; 

$_SESSION['data'][$id] = array (1 => $dag, 2 => $datum, 3 => $begintijd, 4 => $eindtijd); 
?>


de eerste $_SESSION regel moest weg.

Nu moet ik ze alleen nog vanuit hier weer kunnen uitlezen op een andere pagina.
Iemand een idee? :?

[ Voor 142% gewijzigd door KoBolD54 op 31-05-2006 16:57 ]


Acties:
  • 0 Henk 'm!

  • Room42
  • Registratie: September 2001
  • Niet online
Lees deze twee pagina's van PHP eens door, die zullen je een boel licht doen schijnen, denk ik.

PHP and HTML

Dealing with Forms

"Technological advancements don't feel fun anymore because of the motivations behind so many of them." Bron


Acties:
  • 0 Henk 'm!

  • KoBolD54
  • Registratie: Maart 2002
  • Laatst online: 18:52
ik heb op alleen veel moeite met array's, op 1 of andere manier krijg ik dat niet zo snel onder de knie.
Heb ook al tig artikels gelezen op phpfreakz.
Alles gaat nu goed behalve het uitlezen van de array

Acties:
  • 0 Henk 'm!

  • Room42
  • Registratie: September 2001
  • Niet online
http://nl2.php.net/manual/en/ref.array.php :+

Ik heb altijd veel aan de user inputs, onderaan de pagina. Daar staan vaak praktische voorbeelden waardoor het verhaal erboven vaak een stuk duidelijker wordt.

Nog een tip, als je hulp wilt bij een functie, ga je naar http://www.php.net/functienaam (bijvoorbeeld http://www.php.net/echo).

"Technological advancements don't feel fun anymore because of the motivations behind so many of them." Bron


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

KoBolD schreef op woensdag 31 mei 2006 @ 17:18:
Heb ook al tig artikels gelezen op phpfreakz.
Als je phpfreakz.nl als enige bron van info gebruikt zul je niet ver komen. Ten eerste is het gebruiken van maar één bron nooit goed, en al helemaal niet bij phpfreakz.nl, aangezien je daar niet kan zien wat er al dan niet achterhaald is, aangezien ze achterhaalde uitleg niet weghalen.

En uitlezen van arrays is simpel zat...doe maar eens dit op de volgende pagina:
PHP:
1
print_r($_SESSION);

Dan weet je waarschijnlijk genoeg.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1