[PHP] Sort by.... icm navigatie

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Probeer het nog een x maar dan netter :Y)

Mijn navigatie-script in pagina:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
mysql_connect("$host","$user","$pass"); 
mysql_select_db("$database"); 

$perpagina = 15; // aantal records per pagina
$q = mysql_query("Select * From cars where cat='Clubs' Limit $begin,$perpagina "); 
$aantal = mysql_num_rows($q);

$p = (isset($_GET['p'])) ? $_GET['p'] - 1 : 0;

$begin = $perpagina * $p;

$aantalpagina = ceil($aantal / $perpagina);

$Back = ($p == 0) ? '« Back' : 
         '<a href='.$_SERVER['PHP_SELF'].'?p='.$p.'>« Back</a>';
$Next = (($p + 1) == $aantalpagina) ? 'Next »' : 
         '<a href='.$_SERVER['PHP_SELF'].'?p='.($p + 2).'>Next »</a>';

$i = 1;
for($i = 1; $i <= $aantalpagina; $i++) {
    $paginas .= ($i == ($p +1)) ? ' '.$i .' |' : ' 
         <a href='.$_SERVER['PHP_SELF'].'?p='.$i.'>'.$i.'</a> |';
}

$nav = $Back .' | '. $paginas .' '. $Next.'';

Het navigatiecript werkt naar behoren, deze maakt een soort van sub-pagina's aan in de main-page:
PHP:
1
  "pagina.php?p=1" /  "pagina.php?p=2"  etc..

Eén van de sorteerfuncties:
PHP:
1
 .........<A href=$PHP_SELF?action=name>Name</a>

Hier gaat dus mis; vanzelfsprekend gekeken naar bovenstaande link, wanneer bezoeker de links bekijkt op bv. de 2e subpagina wordt hij bij het klikken op bovenstaande sorteerfunctie doorwezen naar de mainpage.

Wat moet worden aangepast om ervoor te zorgen dat de bezoeker op de 2e sub-pagina blijft en de links alsnog gesorteerd worden?

[ Voor 18% gewijzigd door curry684 op 30-09-2003 00:39 . Reden: layout opgepoetst :) ]


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

Wat is dan de bedoeling dat hier moet komen te staan, in het geval van pagina.php?p=2 ?
PHP:
1
A href=$PHP_SELF?action=name>Name</a>


Bedoel je dan pagina.php?action=name, of pagina.php?p=2&action=name, of...?

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • PrinsEdje80
  • Registratie: Oktober 2001
  • Laatst online: 15-07 09:34

PrinsEdje80

Holographic, not grated...

$PHP_SELF (of de $_SERVER variant) geeft volgens mij NIET de extra opties door die met een GET-method verstuurd zijn (maw alles achter de ?). Je kunt die opvragen met de $_GET variabele. Maak een loopje dat door de $_GET heen gaat en voor elke (<- hint ;)) de variabele uitspuwt, een =-teken en de waarde...

Used to be Down Under... Foto gallery


Acties:
  • 0 Henk 'm!

  • ixi
  • Registratie: December 2001
  • Laatst online: 27-08 23:59

ixi

PHP:
1
2
3
4
5
6
7
if (isset($_GET['sort']) {
   $q = mysql_query(... ORDER BY ' + addslashes($_GET['sort']));
   $SELF = $PHP_SELF + '?' + sort=$_GET['sort'] + '&';
} else {
   $q = mysql_query(...);
   $SELF = $PHP_SELF + '?';
}

En dan bij alle links $SELF ipv $PHP_SELF gebruiken en de ? weglaten... zou moeten werken volgens mij, maarja tis al laat.

Acties:
  • 0 Henk 'm!

Verwijderd

Ivy heeft het topic niet goed gelezen en ondanks het feit dat hij er helemaal naast kan zitten wil hij toch even melden dat je met $request_uri wel alle variabelen mee krijgt... Nogmaals, misschien niet helemaal relevant dit antwoord..

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ixi volgens mij zit ik ff op een dood spoor, op welke plaats verwerk ik jou code?

Kon het niet laten om zelf ff te testen:
PHP:
1
<A href=$SELF?action=name&p=$_GET[p]>Name</a>


Dit werkt, alleen niet naar behoren, hij sorteert nu niet wat op het scherm staat maar opnieuw vanuit de database en op de mainpage pikt ie het niet.....

dus eerst maar ff etuh :Y) en hoor je graag!

[ Voor 72% gewijzigd door Verwijderd op 30-09-2003 20:15 ]


Acties:
  • 0 Henk 'm!

  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 23-08 22:47

dArtagnan

Een voor allen, allen voor een

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?
mysql_connect("$host","$user","$pass");
mysql_select_db("$database");

$perpagina = 15; // aantal records per pagina
if (isset($_GET['sort']) 
{ 
    // Dit uitvoeren als de var sort bekend is
    $q = mysql_query("Select * From cars where cat='Clubs' Limit ".$begin.",".$perpagina." ORDER BY ".$_GET['sort']);
    $aantal = mysql_num_rows($q);
    $eigenpagina = $_SERVER['PHP_SELF']."?sort=".$_GET['sort']."&";
}
else
{
    // dit uitvoeren als de var sort niet bekend is
    $q = mysql_query("Select * From cars where cat='Clubs' Limit ".$begin.",".$perpagina." ORDER BY 'tabel_naam_waar_je_standaard_op_sorteert");
    $aantal = mysql_num_rows($q);
    $eigenpagina = $_SERVER['PHP_SELF']."?";
}

$p = (isset($_GET['p'])) ? $_GET['p'] - 1 : 0;

$begin = $perpagina * $p;

$aantalpagina = ceil($aantal / $perpagina);

$Back = ($p == 0) ? '« Back' :
         '<a href='.$eigenpagina.'p='.$p.'>« Back</a>';
$Next = (($p + 1) == $aantalpagina) ? 'Next »' :
         '<a href='.$eigenpagina.'p='.($p + 2).'>Next »</a>';

$i = 1;
for($i = 1; $i <= $aantalpagina; $i++) {
    $paginas .= ($i == ($p +1)) ? ' '.$i .' |' : '
         <a href='.$eigenpagina.'p='.$i.'>'.$i.'</a> |';
}

$nav = $Back .' | '. $paginas .' '. $Next.'';
?> 


ixi: Je moet toch een . gebruiken en niet een +, die gebruik je bij Javascript (of zie ik het nu verkeerd?)

[ Voor 20% gewijzigd door dArtagnan op 30-09-2003 22:37 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ixi / koraalduidel

Bovenstaande code van koraalduivel gecopyd-pasted; nu een parse 8)7 error m.b.t.
PHP:
1
....if (isset($_GET['sort']) ......
(= regel 6 van code Koraalduivel)

[ Voor 5% gewijzigd door Verwijderd op 30-09-2003 23:00 ]


Acties:
  • 0 Henk 'm!

  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 23-08 22:47

dArtagnan

Een voor allen, allen voor een

Verwijderd schreef op 30 September 2003 @ 22:59:
ixi / koraalduidel

Bovenstaande code van koraalduivel gecopyd-pasted; nu een parse 8)7 error m.b.t.
PHP:
1
....if (isset($_GET['sort']) ......
(= regel 6 van code Koraalduivel)
Er mist een haakje

PHP:
1
2
if ( isset($_GET['sort']) ) #<-- haakje mist
[..]


parse errors komen altijd door het ontbreken van ; of { of } of ( of ) of . enz.
parse error, expecting `','' or `';'' in *.php on line XX
Prijs je gelukkig! Dit klinkt gek, maar als je deze foutmelding krijgt, is het vaak vrij gemakkelijk op te lossen. Je zult zoals de foutmelding zelf al zegt moeten zoeken in regel XX naar het ontrbreken van een ', " of ;. Let op: sommige HTML/PHP editors geven de lijnen fout aan, PHP telt de lijnen bij een [enter] (in de bestanden terug te vinden als n), maar sommige editors tellen het aantal regels dat op het scherm staat, kijk dus ook even in de regels erboven of eronder, ook bij het vergeten van een ; wil de fout wil eens regel verder geven worden als waar de ; is vergeten.

[ Voor 68% gewijzigd door dArtagnan op 30-09-2003 23:07 . Reden: typo ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ixi en Koraalduidel met alle goede bedoelingen jullie kant, script is niet aan de gang te schoppuh naar m'n zin :O

Zal eens proberen een dag te skippuh 8er het kastje :X

Acties:
  • 0 Henk 'm!

  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 23-08 22:47

dArtagnan

Een voor allen, allen voor een

Verwijderd schreef op 30 september 2003 @ 23:49:
Ixi en Koraalduidel met alle goede bedoelingen jullie kant, script is niet aan de gang te schoppuh naar m'n zin :O

Zal eens proberen een dag te skippuh 8er het kastje :X
Wat doet hij niet?
Waar gaat het fout?

Meer informatie zou wenselijk zijn :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Koraalduivel, om topic beetje overzichtelijk te houden heb ik hem hiero neergezet

http://members.lycos.nl/den1977/ff/


Prob is nog steeds dat hij de links niet sorteert op pagina maar vanuit de gehele database...

Acties:
  • 0 Henk 'm!

  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 23-08 22:47

dArtagnan

Een voor allen, allen voor een

In die map op je website staat alleen maar een .rar bestand die ik bovendien nog niet eens kan openen.
Prob is nog steeds dat hij de links niet sorteert op pagina maar vanuit de gehele database...
Wat is nu je input en wat is je output en wat klopt er niet aan die output zijn? (waarschijnlijk helpt het ook als je de stuctuur van je tabel hier neerzet)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dat gekl@ met Lycos....

Dan maar zo, hopelijk is dit geen bezwaar

Het nav-script zoals ik hem nu heb:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
  
<?PHP

mysql_connect("$host","$user","$pass"); 
mysql_select_db("$database"); 

$perpagina = 15; // aantal records per pagina

$q = mysql_query("Select * From car  order by 'name'"); 
$aantal = mysql_num_rows($q);

$p = (isset($_GET['p'])) ? $_GET['p'] - 1 : 0;

$begin = $perpagina * $p;

$aantalpagina = ceil($aantal / $perpagina);

$Back = ($p == 0) ? '« Back' : '<a href='.$_SERVER['PHP_SELF'].'?p='.$p.'>« Back</a>';
$Next = (($p + 1) == $aantalpagina) ? 'Next »' : '<a href='.$_SERVER['PHP_SELF'].'?p='.($p + 2).'>Next »</a>';

$i = 1;
for($i = 1; $i <= $aantalpagina; $i++) {
    $paginas .= ($i == ($p +1)) ? ' '.$i .' |' : ' <a href='.$_SERVER['PHP_SELF'].'?p='.$i.'>'.$i.'</a> |';

}

$nav = $Back .' | '. $paginas .' '. $Next.'';

// deze query ook aanpassen.. behalve het Limit gebeuren:
$query = mysql_query("Select * From car ORDER BY 'name' Limit $begin,$perpagina");

?> 



Input - output

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php

$sql = "SELECT * FROM car  ORDER BY 'name'  Limit $begin,$perpagina" ; 

if ($action == 'name') {
$sql="SELECT * FROM car  ORDER BY 'name' Limit $begin,$perpagina";
}
if ($action == 'description') {
$sql="SELECT * FROM car  ORDER BY 'description' Limit $begin,$perpagina";
}
if ($action == 'car_type') {
$sql="SELECT * FROM car  ORDER BY 'car_type' Limit $begin,$perpagina";
}
if ($action == 'id') {
$sql="SELECT * FROM car  ORDER BY 'id' Limit $begin,$perpagina";
}


// connects to database
mysql_connect("$host","$user","$pass");

// selects database
mysql_select_db("$database");

   $resultaat=mysql_query($sql);
   $aantal=mysql_num_rows($resultaat);
  echo  " \n";
  
      echo "


  <TD Class=fcellmainmenu  WIDTH=\"30%\">
    <TABLE width=100% border=0 cellspacing=2 cellpadding=2>
      <TD align=left WIDTH=\"100%\">Displaying $aantal car Clubs sites      </TD></TABLE></TD>

<..... omdit dit alles niet groter te maken dan het het is diversen links naar nadere pagina's eruit gelaten>

</TR></TABLE>

<BR>

 <TABLE WIDTH=\"745\" border=\"0\" cellSpacing=0 cellPadding=0>   

<TR HEIGHT=\"35\">
  <TD Class=fcelltest  WIDTH=\"30%\">
    <TABLE width=100% border=0 cellspacing=2 cellpadding=2>
      <TD align=left WIDTH=\"100%\"><A href=$SELF?p=$_GET[p]&action=name>Name</a>
      </TD></TABLE></TD>                                                        
  <TD Class=fcelltest WIDTH=\"40%\">
    <TABLE width=100% border=0 cellspacing=2 cellpadding=2>
      <TD align=left WIDTH=\"100%\"><a href=$SELF?p=$_GET[p]&action=description>Description</a>
      </TD></TABLE></TD>    
      
      
      <TD Class=fcelltest WIDTH=\"5%\">
    <TABLE width=100% border=0 cellspacing=2 cellpadding=2>
      <TD align=left WIDTH=\"100%\<a href=$SELF?p=$_GET[p]&action=type>Type</a>
      </TD></TABLE></TD>                                                        
</TR>\n";
      
while ($record=mysql_fetch_object($resultaat)) {
    
echo "<TR HEIGHT=\"25\">

<TD Class=fcelllinkleft><a href=\"$record->url\" target=\"_new\" nd();return s('')\">$record->name</a></TD>
<TD Class=fcelllinkmiddle>$record->description </TD>
<TD Class=fcelllinkright>$record->car_type </TD></TR>\n";

}

echo "</TABLE><BR><BR>";
echo $nav;

?>
</TD>
</TR>



Tabel:
PHP:
1
2
3
4
5
6
7
8
9
10
CREATE TABLE car (
  id int(11) NOT NULL auto_increment,
  posted date default NULL,
  name char(50) default NULL,
  url char(50) default NULL,
  description char(50) default NULL,
  cat char(50) default NULL,
  car_type char(50) default NULL,
  PRIMARY KEY  (id)
) TYPE=MyISAM;



Output is ok! Ik krijg de data vanuit de database correct op het scherm; 15 standaad gesorteerd op naam, nix mee mis.

Prob is wanneer ik nu bv op één van de andere variablen wil sorteren hij op welke pagina dan ook queried vanuit de hele database ipv de pagina waarin ik me bevindt.

Acties:
  • 0 Henk 'm!

  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 23-08 22:47

dArtagnan

Een voor allen, allen voor een

Verwijderd schreef op 01 oktober 2003 @ 23:36:
Dat gekl@ met Lycos....

Dan maar zo, hopelijk is dit geen bezwaar

<knip>

Output is ok! Ik krijg de data vanuit de database correct op het scherm; 15 standaad gesorteerd op naam, nix mee mis.

Prob is wanneer ik nu bv op één van de andere variablen wil sorteren hij op welke pagina dan ook queried vanuit de hele database ipv de pagina waarin ik me bevindt.
Je wil dus die 15 resultaten die je op het scherm hebben sortereren op iets. Voor het sorteren wil je dan alleen de die 15 resultaten gebruiken.

Ik denk niet dat dit alleen met een query van mysql kan. Waarschijnlijk moet je eerst alle 15 resultaten in een array zetten en ze dan sorteren.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Suggesties hoe ik dit in dit script het best kan aanpakkuh?

Acties:
  • 0 Henk 'm!

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 17-09 14:22
Je laat je "while ($record=mysql_fetch_object($resultaat)) "-loop niet direct je output echo-en, maar in plaats daarvan een array vullen:
PHP:
1
$name[] = $record->name;


Door een counter mee te geven kun je ook een omgekeerd array opbouwen:

PHP:
1
2
3
4
5
6
7
8
$n = 0;

while ($record=mysql_fetch_object($resultaat)) {
$name[] = $record->name;
$name_R[$record->name] = $n;

$n = n +1;
}


Deze twee arrays geven je genoeg informatie om je sorteeropdrachten uit te voeren....

*T-MOB is geen volleerd programmeur - er is vast een betere oplossing - maar dit soort oplossingen helpen hem altijd uit de brand :)


In een andere loop kun je vervolgens wel je sorteer-actie uitvoeren....

[ Voor 3% gewijzigd door T-MOB op 03-10-2003 00:51 . Reden: tyyyyppooo's ]

Regeren is vooruitschuiven


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
T-mob waar integreer ik je bovenstaande code precies? Het moet niet overkomuh dat ik dit alles door een ander wil laten doen, maar ben met dit scritpje al enige tijd mee bezig... nu een beetje over-php-sql-ed :+

Acties:
  • 0 Henk 'm!

  • Suepahfly
  • Registratie: Juni 2001
  • Laatst online: 17-09 17:05
Deze functies heb ik geschreven voor mijn eigen gastenboek . Ik denk dat je daar wel wat aan hebt.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
<?

/*
$module_name en $dbi zijn niet van belang in dit voorbeeld
Defines _NEXT en _PREV vervangen door text vorige en volgende

Uiraard de queries en links ook even vervangen door je eigen
*/


/* --- <Dit blok ergens boven in je script plaatsen> ---*/
$page = $_GET['page'];
$next = $page + (1);
$prev = $page - (1);
$from = $page * $max_rec;
$to = $max_rec;  /* Maximaal aantal terug te halen records */
        
            
$query_all = sql_query("SELECT COUNT(id) FROM ".$prefix."_blather", $dbi);
$query = sql_query("SELECT * FROM ".$prefix."_blather ORDER BY id DESC LIMIT $from,$to", $dbi);
$res = sql_num_rows($query_all);
$tot_pages = $res / $max_rec;
$tot_pages =  ceil($tot_pages);
/* --- </Dit blok ergens boven in je script plaatsen> ---*/

/*
NAAM: 
   nav_list()

IN:
   int $next        Nummer van vorig pagina 
   int $prev        Nummer volgende pagina
   int $tot_pages   Totaal aantal pagina's
   int $page        Huidige pagina

Uit:
    void
*/
function nav_list($next, $prev, $tot_pages, $page)
{
    global $module_name; // Niet van belang in dit voorbeeld

    echo "\n<script language=\"JavaScript\" type=\"text/JavaScript\">\n";
    echo "\tfunction jumpMenu(targ,selObj,restore){\n";
    echo "\t\teval(targ+\".location='\"+selObj.options[selObj.selectedIndex].value+\"'\");\n";
    echo "\t\tif (restore) selObj.selectedIndex=0;\n";
    echo "\t}\n";   
    echo "</script>\n";
    echo "<select name=\"menu\" onChange=\"jumpMenu('parent',this,0)\">\n";
    echo "\t<option>"._GOTO." "._PAGE.":</option>\n";

    if($prev >= 1 || $prev == 0)
    {
        echo "\t<option value=\"modules.php?name=$module_name&amp;page=".($page-1)."\">"._PREV." "._PAGE."</option>\n";
    }
    
    if($next < $tot_pages && $tot_pages !=0)
    {
        echo "\t<option value=\"modules.php?name=$module_name&amp;page=".($page+1)."\">"._NEXT." "._PAGE."</option>\n";
    }
        
    for ($i = 0; $i <= $tot_pages; $i++) 
    {
        if($i < $tot_pages)
        {
            print ("\t<option value=\"modules.php?name=$module_name&amp;page=$i\"$sel>"._PAGE.": ".($i+1)."</option>\n");
        }
    }
    echo "</select>\n";
}



/*
NAAM: 
   nav_list()

IN:
   int $next        Nummer van vorig pagina 
   int $prev        Nummer volgende pagina
   int $tot_pages   Totaal aantal pagina's
  
Uit
    void
*/
function nav($prev, $next, $tot_pages)
{
    global $module_name; 

    if($prev >= 1 || $prev == 0)
    {
        echo "[<a href=\"modules.php?name=$module_name&amp;page=$prev\">&laquo;&laquo;"._PREV."</a>]";
    }
    else
    {
        echo "<font color=\"#999999\">[&laquo;&laquo;"._PREV."]</font>";
    }
    if($next < $tot_pages && $tot_pages !=0){
        echo "&nbsp;[<a href=\"modules.php?name=$module_name&amp;page=$next\">"._NEXT."&raquo;&raquo;</a>]\n";
    }
    else
    {
            echo "&nbsp;<font color=\"#999999\">["._NEXT."&raquo;&raquo;]</font>\n";
    }
}
?>

Acties:
  • 0 Henk 'm!

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 17-09 14:22
Dit moet komen ipv de afzonderlijke mysql-queries die je aanroept om te sorteren. IPV je mysql data sorteer je dus een array. Ik ga nu ff aan de slag met een code voorbeeld. Op php.net zoeken op array levrt overigens een hoop bruikbare info :)
BRB

Regeren is vooruitschuiven


Acties:
  • 0 Henk 'm!

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 17-09 14:22
Zoals beloofd....
De code hieronder zou het moeten doen. Misschien ff debuggen ;)

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<?php

$sql = "SELECT * FROM car  ORDER BY 'name'  Limit $begin,$perpagina" ;

// connects to database
mysql_connect("$host","$user","$pass");

// selects database
mysql_select_db("$database");

   $resultaat=mysql_query($sql);
   $aantal=mysql_num_rows($resultaat);
  echo  " \n";
  
//puts all values in arrays
while ($record=mysql_fetch_object($resultaat)) {
$name[] = $record->name;
$description[] = $record->description;
$car_type[] = $record->car_type;
$id[] = $record->id;
$url[] = $record->url;
}

//selects the sorting variable...

//...on name
if ($action == 'name') {
        asort($name); //sorteert de arraywaarden op alfabet, index-associatie blijft intact
        reset($name);

while (list($key, $val) = each($name)) {
    
$order[] = $key;                //de volgorde van het array wordt in een ander array geplaatst.
}

//...on description
if ($action == 'description') {
        asort($description); 
        reset($description);

while (list($key, $val) = each($description)) {
    
$order[] = $key;                
}

//...on car type
if ($action == 'car_type') {
        asort($car_type); 
        reset($car_type);

while (list($key, $val) = each($car_type)) {
    
$order[] = $key;                
}

//...on id
if ($action == 'id') {
        asort($id); 
        reset($id);

while (list($key, $val) = each($id)) {
    
$order[] = $key;                
}

//..... end ordering

//zoals je kunt zien is dit niet erg efficiënt, beter zou zijn om dit in een functie oid te proppen,
//of simpelweg:

//      asort(${$action});
//      reset(${$action});
//
//while (list($key, $val) = each(${$action})) {
//    
//$order[] = $key;

//dan moet je wel ff opletten of $action  altijd gedefinieerd is.... :-)


      echo "


  <TD Class=fcellmainmenu  WIDTH=\"30%\">
    <TABLE width=100% border=0 cellspacing=2 cellpadding=2>
      <TD align=left WIDTH=\"100%\">Displaying $aantal car Clubs sites      </TD></TABLE></TD>

<..... omdit dit alles niet groter te maken dan het het is diversen links naar nadere pagina's eruit gelaten>

</TR></TABLE>

<BR>

<TABLE WIDTH=\"745\" border=\"0\" cellSpacing=0 cellPadding=0>   

<TR HEIGHT=\"35\">
  <TD Class=fcelltest  WIDTH=\"30%\">
    <TABLE width=100% border=0 cellspacing=2 cellpadding=2>
      <TD align=left WIDTH=\"100%\"><A href=$SELF?p=$_GET[p]&action=name>Name</a>
      </TD></TABLE></TD>                                                         
  <TD Class=fcelltest WIDTH=\"40%\">
    <TABLE width=100% border=0 cellspacing=2 cellpadding=2>
      <TD align=left WIDTH=\"100%\"><a href=$SELF?p=$_GET[p]&action=description>Description</a>
      </TD></TABLE></TD>    
      
      
      <TD Class=fcelltest WIDTH=\"5%\">
    <TABLE width=100% border=0 cellspacing=2 cellpadding=2>
      <TD align=left WIDTH=\"100%\<a href=$SELF?p=$_GET[p]&action=type>Type</a>
      </TD></TABLE></TD>                                                        
</TR>\n";
      
while (list($key, $val) = each($order)) {

echo "<TR HEIGHT=\"25\">

<TD Class=fcelllinkleft><a href=\"$url[$val]\" target=\"_new\" nd();return s('')\">$name[$val]</a></TD>
<TD Class=fcelllinkmiddle>$description[$val] </TD>
<TD Class=fcelllinkright>$car_type[$val] </TD></TR>\n";

}

echo "</TABLE><BR><BR>";
echo $nav;

?>
</TD>
</TR>

Regeren is vooruitschuiven


Acties:
  • 0 Henk 'm!

  • Suepahfly
  • Registratie: Juni 2001
  • Laatst online: 17-09 17:05
T-MOB schreef op 03 October 2003 @ 22:39:
Zoals beloofd....
De code hieronder zou het moeten doen. Misschien ff debuggen ;)
[knip]
Ik zie het niet al te helder meer.
maar je gaat van objecten naar array's.
Kan dit niet efficienter?

Je zou bv. in 1 x een multi demensionale array kunnen maken

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
om niet ondankbaar over te komen T-MOB, ik zie het nu ook niet al te helder meer.. 8)7
eens kijken of een multi dimensionale array uitkomst biedt.. als ik deze in elkaar geknutseld krijg :+

Acties:
  • 0 Henk 'm!

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 17-09 14:22
edit:
@Suepahfly


Je bedoelt met
PHP:
1
2
3
while (mysql_fetch_array($resultaat) {
$array[] = mysql_fetch_array($resultaat)
}


oid?

Volgens mij compliceert dit het sorteerwerk enigszins. Dus wat het uiteindelijk uitmaakt ??
Maar, hoe zou je dat doen dan?

[ Voor 6% gewijzigd door T-MOB op 04-10-2003 00:13 ]

Regeren is vooruitschuiven


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
T-mob, heb je code geïntegreerd, maar wat ik ook aanpas blijf een parse - error krijgen op de laatste regel van het script....

Acties:
  • 0 Henk 'm!

  • Suepahfly
  • Registratie: Juni 2001
  • Laatst online: 17-09 17:05
Wat is de error, En post de laatse paar regels eens

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Parse error: parse error in c:\apache\htdocs\den\2links\link_car_club.php on line ..... laatste regel

Heb T- mobs code plain overgenomen, laatste regels van het script posten zijn dezelfde als in het script;
PHP:
1
2
3
4
5
6
7
8
9
.................
} 

echo "</TABLE><BR><BR>"; 
echo $nav; 

?> 
</TD> 
</TR>


edit:
parse error line

[ Voor 20% gewijzigd door Verwijderd op 04-10-2003 13:57 ]


Acties:
  • 0 Henk 'm!

  • Suepahfly
  • Registratie: Juni 2001
  • Laatst online: 17-09 17:05
De laatste ?> met je ff weghalen
Hoewel dat niet echt wat uitmagem maken. Normaal zie je dan gewoon ?> in je geparste pagina.

En waar haaal ge $action weg?

Ik zie namelijk nergens een initialisatie van deze $.

Als je die in de URL meegeeft zou ik Register_Globals toch echt uit zetten in php.ini.

An dan nog iets van
PHP:
1
$action = $_GET['action'];


in je script zetten

[ Voor 53% gewijzigd door Suepahfly op 04-10-2003 14:17 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
die haal ik hier toch weg

PHP:
1
2
3
4
5
6
7
8
9
//...on car type 
if ($action == 'car_type') { 
        asort($car_type); 
        reset($car_type); 

while (list($key, $val) = each($car_type)) { 
     
$order[] = $key;                 
}

Acties:
  • 0 Henk 'm!

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 17-09 14:22
Dat (een parse error op de laatste regel) betekent meestal dat er een }-je te weinig in staat... hier zijn het wel meer:
PHP:
1
2
3
4
5
6
7
8
9
if ($action == 'id') {
        asort($id);
        reset($id);

while (list($key, $val) = each($id)) {
    
$order[] = $key;                
} 
//*edit hier moet er dus "}" bij :-) (geldt voor alle if (action=...) loopjes


T-MOB moet leren tellen 8)7

p.s. sorry hak natuurlijk al eerder kunnen zien..

[ Voor 14% gewijzigd door T-MOB op 04-10-2003 21:25 . Reden: duidelijkheid... ]

Regeren is vooruitschuiven

Pagina: 1