[php] Sorteren van kolommen

Status
Niet open voor verdere reacties.

Nooto

Gebruiker
Lid geworden
22 okt 2002
Berichten
21
Ik hoop dat iemand mij kan helpen met een probleempje dat ik heb met php. Nu ben ik nog wel een beetje een noob op dit gebied dus ik hoop dat ik het goed zeg, hier is mijn probleem:

Ik heb een database met wat gegevens van computers (gebruiker, afdeling, processor type, processor snelheid, geheugen en computernaam)
Ik heb 2 tabellen hierin, processor en system.

In de system tabel staat gebruiker, afdeling, geheugen en computernaam. Nu staat in de processor tabel dus processor snelheid en het processor type. Met de onderstaande code weergeeft ie alles eigenlijk al goed, en kan ik bijvoorbeeld door "system_username" te veranderen in
PHP:
$result1 = mysql_query("SELECT * FROM system ORDER BY system_username ASC");
in "system_memory" het sorteren op gebruiker of op geheugen.(of op computernaam of afdeling als ik dat wil)

Maar als ik dit dus wil sorteren op "processor type" dan gaat dit niet. Zelfde geldt voor de "snelheid", dat gaat ook niet. Dit heeft waarschijnlijk te maken met het feit dat deze in een andere tabel zit.

Er wordt trouwens gecontroleerd op mac adress van de netwerk kaart. Deze staat in beide tabellen. En het wordt ook allemaal goed weergeven, ik kan het alleen niet sorteren op processor type of snelheid :(

Wat ik al wel heb geprobeerd is om bij
PHP:
result2 = mysql_query("SELECT * FROM processor WHERE processor_mac_address = '" . $mac . "'");
bijvoorbeeld ORDER BY processor_current_clock_speed erachter te zetten, maar dan gebeurt er niets.


Weet iemand misschien de oplossing voor dit (waarschijnlijk) simpele probleem?

Hieronder de volledige code:



<?php

$db = mysql_connect(localhost,root,xxx);
mysql_select_db(inventarisatie,$db);
$result1 = mysql_query("SELECT * FROM system ORDER BY system_username ASC");

echo "<head><title>Computer Overzicht</title>";
echo "<body style='font-family: Arial; font-size: 10pt'>";
echo "<table border='0' style='border-collapse: collapse' width='930' cellpadding='0'>";
echo "<tr>";
echo "<td width='869'><b><font size='3'>Overzicht Computers 14-07-2004</font></b></td>";
echo "<td>";
echo "<b>PRINT</b></td>";
echo "</tr>";
echo "</table>";
echo "<br>";
echo "<br>";
echo "<table border='0' style='border-style:solid; border-width:1px; border-collapse: collapse; font-family:Arial; font-size:10pt; padding-left:2px; padding-right:0px; padding-top:1px; padding-bottom:1px' width='930' bordercolor='#000000'>";
echo "<tr>";
echo "<td bgcolor='#D6D6D6' width='180' style='border-style: solid; border-width: 1px; padding-left: 3px; padding-right: 0px; padding-top: 2px; padding-bottom: 2px'><b>Gebruikersnaam</b></td>";
echo "<td bgcolor='#E0E0E0' width='162' style='border-style: solid; border-width: 1px; padding-left: 3px; padding-right: 0px; padding-top: 2px; padding-bottom: 2px'><b>Afdeling</b></td>";
echo "<td bgcolor='#D6D6D6' width='245' style='border-style: solid; border-width: 1px; padding-left: 3px; padding-right: 0px; padding-top: 2px; padding-bottom: 2px'><b>Processor Type</b></td>";
echo "<td bgcolor='#E0E0E0' width='92' style='border-left-style: solid; border-left-width: 1px; border-top-style: solid; border-top-width: 1px; border-bottom-style: solid; border-bottom-width: 1px; padding-left: 3px; padding-right: 0px; padding-top: 2px; padding-bottom: 2px' colspan='2'><b>Snelheid</b></td>";
echo "<td bgcolor='#D6D6D6' width='83' style='border-style: solid; border-width: 1px; padding-left: 3px; padding-right: 0px; padding-top: 2px; padding-bottom: 2px' colspan='2'><b>Geheugen</b></td>";
echo "<td bgcolor='#E0E0E0' style='border-style: solid; border-width: 1px; padding-left: 3px; padding-right: 0px; padding-top: 2px; padding-bottom: 2px'><b>Computernaam</b></td>";
echo "</tr>";



while ($row1 = mysql_fetch_array($result1, MYSQL_ASSOC)):
$mac = $row1["net_mac_address"];
$result2 = mysql_query("SELECT * FROM processor WHERE processor_mac_address = '" . $mac . "'");

$row2 = mysql_fetch_array($result2, MYSQL_ASSOC);
$naam = $row1["system_username"];
$afdeling = $row1["system_man_location"];
$processor = $row2["processor_name"];
$snelheid = $row2["processor_current_clock_speed"];
$geheugen = $row1["system_memory"];
$computernaam = $row1["net_dns_host_name"];


echo "<tr>";
echo "<td width='180' style='border-style: solid; border-width: 1px; padding-left: 3px; padding-right: 0px; padding-top: 1px; padding-bottom: 1px'>$naam</td>";
echo "<td width='162' style='border-style: solid; border-width: 1px; padding-left: 3px; padding-right: 0px; padding-top: 1px; padding-bottom: 1px'>$afdeling</td>";
echo "<td width='245' style='border-style: solid; border-width: 1px; padding-left: 3px; padding-right: 0px; padding-top: 1px; padding-bottom: 1px'>$processor</td>";
echo "<td width='39' style='border-left-style: solid; border-left-width: 1px; border-top-style: solid; border-top-width: 1px; border-bottom-style: solid; border-bottom-width: 1px; padding-left: 3px; padding-right: 0px; padding-top: 1px; padding-bottom: 1px'><p align='right'>$snelheid</td>";
echo "<td width='53' style='border-right-style: solid; border-right-width: 1px; border-top-style: solid; border-top-width: 1px; border-bottom-style: solid; border-bottom-width: 1px; padding-left: 3px; padding-right: 0px; padding-top: 1px; padding-bottom: 1px'><p align='left'> MHZ</td>";
echo "<td width='42' style='border-left-style: solid; border-left-width: 1px; border-top-style: solid; border-top-width: 1px; border-bottom-style: solid; border-bottom-width: 1px; padding-left: 3px; padding-right: 0px; padding-top: 1px; padding-bottom: 1px'><p align='right'>$geheugen</td>";
echo "<td width='41' style='border-right-style: solid; border-right-width: 1px; border-top-style: solid; border-top-width: 1px; border-bottom-style: solid; border-bottom-width: 1px; padding-left: 3px; padding-right: 0px; padding-top: 1px; padding-bottom: 1px'><p align='left'> MB</td>";
echo "<td style='border-style: solid; border-width: 1px; padding-left: 3px; padding-right: 0px; padding-top: 1px; padding-bottom: 1px'>$computernaam</td>";

endwhile;

echo "</tr>";
echo "</table>";

?>
 
Misschien simpel, misschien niet. Als 't niet zo is, dan moet je iets gebruiken dat ik ook nog ken :o
Waar 't vanaf hangt: Het aantal rijen dat $result2 ophaalt. Is dat 1 rij, of zijn het meerdere ?

Btw, tis handig om 'or die(mysql_error();' achter je query's te zetten ;)
PHP:
$result = mysql_query("QUERY") or die(mysql_error());
 
Ik heb toch maar besloten om die processor gegevens in dezelfde tabel te zetten, wel zo makkelijk :). Nu kan ie gewoon op alle kolommen sorteren.


Btw, tis handig om 'or die(mysql_error();' achter je query's te zetten

Toch nog bedankt voor de tip JPeetje :thumb:

Is het trouwens heel erg als ik het niet doe? Want ik had denk ik nog wat andere pagina's waar ik dat dus niet op heb.
 
Geplaatst door Nooto
Ik heb toch maar besloten om die processor gegevens in dezelfde tabel te zetten, wel zo makkelijk :). Nu kan ie gewoon op alle kolommen sorteren.
Met andere woorden, je selecteert dus 1 rij uit de andere tabel, waardoor de oplossing makkelijk was geweest, een meerdere tabellen query ;)
Maar wat jij hebt gedaan was ook een mogelijkheid ... :p]
Toch nog bedankt voor de tip JPeetje :thumb:
No prob :)
Is het trouwens heel erg als ik het niet doe? Want ik had denk ik nog wat andere pagina's waar ik dat dus niet op heb.
Elk goed script heeft een error handling. Dus ook wanneer query's niet uitgevoert kunnen worden, wordt er een melding getoond. Wat jij postte heeft geen error handling, waardoor ik dat script niet echt 'goed' kan noemen :)
Of je je scripts wil aanpassen of niet laat ik aan jou over ... :D
 
Code:
SELECT tabel1.kolom1,tabel1.kolom2,tabel2.kolom8 FROM tabel1,tabel2 WHERE tabel1.kolom4 = tabel2.kolom2 ORDER BY tabel1.kolom1 ASC
Bijv. :)

Succes :thumb:
 
Ok thanx! Ik wil wedden dat ik dit in de toekomst nog wel eens nodig zal hebben :)

PS: Ik zei toch dat het simpel was :P maar door mijn noobyness kon ik het niet uitleggen :(
 
Laatst bewerkt:
Je legde 't heel redelijk uit voor een n00b :p
Er zijn ook PHP beginners die een foutmelding geven en verwachten dat de PHPers een exact rijtje van oplossingen gaan presenteren ... Jij plaatste meteen je code, legde 't probleem uit en stelde de centrale vraag. Zo hoort 't ;)
Enige verbetering is dat je de PHP codes wel tussen
PHP:
 [/[i][/i]php] hadden mogen staan ;)
 
Ik wilde het ook doen, maar omdat sommige regels ZO lang waren ging het hele forum met een horizontaal scrollbalkje en moest je de heletijd van links naar rechts scrollen ook niet zo fijn ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan