Toon posts:

[php] id's in een array zetten

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik heb een tabel als:
code:
1
2
3
4
5
6
7
8
9
10
id merk
1  a
2  b
3  b
4  b
5  a
6  c
7  c
8  a
9  b

Nu wil ik de id's in een array zetten, maar ik heb hier echt gewoon nog nooit mee gewerkt.. Terwijl ik als best wel aardig wat weet van PHP.

/me geeft zich eigen een schouderklopje

Stel ik wil de id's van het merk A in een array, dus het wordt dan zo denk ik:

$testarray[0] = 1;
$testarray[1] = 5;
$testarray[2] = 8;

Ik heb er echt geen verstand van dus als iemand mij uit zou willen leggen dan ben ik zeker dankbaar!

Ik heb wel al dingen geprobeerd en heb het idee dat je met een while moet werken, maar ik kom er dus niet uit.

tnx

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 14-07 14:28

thomaske

» » » » » »

Deze en deze kunnen je misschien wel wat verder helpen

[edit]

en deze vast ook wel! ;)

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


  • whoami
  • Registratie: December 2000
  • Laatst online: 22:16
Dit is toch gewoon een basic programmeerprobleem hoor, waarbij je een loop en een if zult nodig hebben.

Note: wat bedoel je met 'tabel'? Is dat een tabel uit een databank? Dan ga je geen if nodig hebben, maar ga je een goede query moeten opbouwen. Misschien kun je er even een tutorial van SQL bijpakken.

Wat heb je zelf al geprobeerd en tot wat ben je al gekomen?

https://fgheysels.github.io/


Verwijderd

Topicstarter
Op dinsdag 02 juli 2002 11:51 schreef whoami het volgende:
...
Wat heb je zelf al geprobeerd en tot wat ben je al gekomen?
PHP:
1
<?include "db.php"; //connectie met DB$gegevens = "SELECT id FROM pics WHERE categorie='a'"; // spreekt voor zich$result = mysql_query($gegevens);while ($row = mysql_fetch_row($result)) {for (    $i = 0;    $i < 10;    $i++ ) {echo "$row[$i]<br>";}}?>

Het vreemde is nu dat ik niet snap wat ik met de output kan!? Staan de id's nu in $row[0tm10] ?

Heb het idee dat ik goed in de richting zit. Nog iets vreemds: elke keer als die nu de $ROW weergeeft dan staan er tussen die row en de volgende een stuk of 5 enters? Waar komen die nou weer vandaan? Ze staan niet in de Database, ze worden volgens mij gegenereerd bij de for loop?

Verwijderd

print_r $row eens en kijk zelf zou ik zeggen, leer je het meest van. Gewoon proberen.

  • whoami
  • Registratie: December 2000
  • Laatst online: 22:16
Op dinsdag 02 juli 2002 11:57 schreef ivy het volgende:
PHP:
1
<?include "db.php"; //connectie met DB$gegevens = "SELECT id FROM pics WHERE categorie='a'"; // spreekt voor zich$result = mysql_query($gegevens);while ($row = mysql_fetch_row($result)) {for (    $i = 0;    $i < 10;    $i++ ) {echo "$row[$i]<br>";}}?>

Het vreemde is nu dat ik niet snap wat ik met de output kan!? Staan de id's nu in $row[0tm10] ?

Heb het idee dat ik goed in de richting zit.
Wat doet die for binnen die while daar?
Je zet op 't eerste zicht ook niets in die tabel, je print gewoon de waardes uit.

https://fgheysels.github.io/


Verwijderd

Topicstarter
Op dinsdag 02 juli 2002 11:58 schreef Zef het volgende:
print_r $row eens en kijk zelf zou ik zeggen, leer je het meest van. Gewoon proberen.
Heb ik al een paar keer gedaan.

Stel ik plak dit achter de while loop:

echo "$row[0]<br>";
echo "$row[1]<br>";
echo "$row[2]<br>";

Dan krijg ik niks te zien!!! Daarom snap ik niet wat ik aan het doen ben en of wat de while loop nou precies doet met de gegevens.

Verwijderd

PHP:
1
<?$watjijwilt = array();while($result = mysql_fetch_array($results)) {$ID   = $result[id];$merk = $result[merk];// en dan hier zelf ff verzinnen wat je wilt :P}?>

Wat dacht je van zoiets :?

Dit is dus alleen iets om je op weg te helpen, je moet maar ff kijken hoe je het gaat gebruiken binnen een volledig script.

Verwijderd

okee zou het zo doen:
stop de id's in de array:
code:
1
2
3
4
5
6
7
$array = array();
$index = 0;

while($result = mysql_fetch_array($results)) {
    $array[ $index ] = $result["ID"];
    $index++;
}

en om ze weer op te halen:
code:
1
2
3
4
$index = count( $array );
for( $i = 0 ; $i < $index ; $i++ ){
    echo $array[$i]."<br>";
}

should work. :)

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Ik dacht eerder aan iets van:
code:
1
2
while ( $row = mysql_fetch_assoc ( $result ) )
   $resultset [ $row [ 'merk' ] ] [] = $row [ 'id' ];

Dan krijg je dus ongeveer zo'n array:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
resultset
+ a
  + 1
  + 5
  + 8
+ b
  + 2
  + 3
  + 4
  + 9
+ c 
  + 6
  + 7

(om maar even het voorbeeld aan te houden)

Om dan alle id's met merk 'a' uit te lezen doe je dus:
code:
1
2
foreach ( $resultset [ 'a' ] as $id )
   echo $id;

<offtopic>
Tuin:
[$array [ index ]]
Lees deze even na :)
</offtopic>

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

soz ik had niet goed gelezen, in mijn voorbeeld zet hij alles gewoon in de volgorde zoals het uit de db komt in de array...

dus is niet wat je zoek :)

netjes btw drm :)

Verwijderd

Topicstarter
Ik ben er uit beste mensen!

Ik zal hier even de code neerzetten voor als mensen hier mee verder willen.

Wat ik dus doe is alle id's (onregelmatig, bv 1, 4, 6, enz) in een array (regelmatig, dus array 1, 2, 3, enz) zetten. Deze zitten dus aan elkaar gekoppeld.

Vervolgens krijg je twee checks:

Entje die kijkt of er een vorig id is. Zo ja doe dan dit (IF) en zo niet doe dan dat (ELSE).

En nog een check die precies hetzelfde doet alleen kijkt ie dan of er een volgend id is. Zo ja doe dan dit (IF) en zo niet doe dan dat (ELSE).

Erg makkelijk. Wat ik er mee gedaan heb is een vorige en volgende knop aangestuurd. Als het niet waar is (check 1) dan laat ie een afbeelding zien met een rood kruisje en als het waar is een afbeelding met een href naar de vorige!

Voor de volgende knop geld hetzelfde.

Ik heb dit gemaakt met hulp van mensen op GoT, dus daarom deze post.
PHP:
1
<?WHILE (list($views,$id,$naamafb,$categorie,$comment,$model,$datum) = mysql_fetch_row($result)) {    $selecteren = "SELECT id FROM pics WHERE categorie='$merk'";    $resultjes = mysql_query($selecteren);    $array = array();    $index = 0;    while($resultaat = mysql_fetch_array($resultjes))         {            $array[ $index ] = $resultaat[0];            $index++;        }    $index = count( $array );    for( $i = 0 ; $i < $index ; $i++ )    {        // Check1: If the ID thats used right now is the same as the array that is        // checked right now then apply the following checks (2 and 3).        if ($array[ $i ] == $id)         {            // Check2: If there is a previous ID its ok otherwise its wrong.            $ie = $i - 1;            if (!$array[ $ie ])             {            $vorigeknop = "[img]\"pics/vorige_110.gif\">";[/img][img]\"pics/vorige_010.gif\"[/img]</a>";            }                // Check3: If there is a next ID its ok otherwise its wrong.                $ie = $i + 1;                if (!$array[ $ie ])                 {                $volgendeknop = "[img]\"pics/volgende_110.gif\">";[/img][img]\"pics/volgende_010.gif\"[/img]</a>";                }        }    }}?>

Als je het bestudeerd kan je er als 'beginner' Super veel van leren!
Pagina: 1