Multiarray aus einem Mysql Resultset erstellen
Hi Leute,
stellt euch vor ihr habt ein resultset von mysql das ungefähr so aussieht (und ihr könnt diesen nicht ändern):
ich würde daruas gerne eine tabelle generieren die so ungefähr aussieht, das array sollte dann theoretisch genau so aussehen...
soundkarte
->kein ton
-->213 - irgendwas - schwarzes gehäuse 1x
gpu
->kein bild
-->213 - irgendwas - schwarzes gehäuse 1x
-> komisches geräusch
-->213 - irgendwas - schwarzes gehäuse 2x
-->231 - irgendwas - rotes gehäuse 1x
die anzahl der doppelten fehler müsste irgendwie berechnet werden... auf jedenfall bin ich am verzweifeln. Mein Kopf lässt mich nicht mal dazu kommen eine vernünftig überlegte Zeile zu schreiben. Könnt ihr mir helfen daraus ein gescheites Array zu basteln?
Gruß moK
EDIT:
so bin ungleiblicherweise auf eine 99%ige Lösung gekommen:
jedoch fehlt mir immer noch die anztahl der doppelten oder mehrfachen fehler...
stellt euch vor ihr habt ein resultset von mysql das ungefähr so aussieht (und ihr könnt diesen nicht ändern):
Hardware | Fehlerart | PC-NR | Fehler Zusatzinformation | PC Zusatzinformation |
---|---|---|---|---|
Soundkarte | kein ton | 213 | irgendwas | schwarzes gehäuse |
GPU | kein bild | 213 | irgendwas | schwarzes gehäuse |
GPU | komisches geräusch | 213 | irgendwas | schwarzes gehäuse |
GPU | komisches geräusch | 213 | irgendwas | schwarzes gehäuse |
GPU | komisches geräusch | 231 | irgendwas | rotes gehäuse |
ich würde daruas gerne eine tabelle generieren die so ungefähr aussieht, das array sollte dann theoretisch genau so aussehen...
soundkarte
->kein ton
-->213 - irgendwas - schwarzes gehäuse 1x
gpu
->kein bild
-->213 - irgendwas - schwarzes gehäuse 1x
-> komisches geräusch
-->213 - irgendwas - schwarzes gehäuse 2x
-->231 - irgendwas - rotes gehäuse 1x
die anzahl der doppelten fehler müsste irgendwie berechnet werden... auf jedenfall bin ich am verzweifeln. Mein Kopf lässt mich nicht mal dazu kommen eine vernünftig überlegte Zeile zu schreiben. Könnt ihr mir helfen daraus ein gescheites Array zu basteln?
Gruß moK
EDIT:
so bin ungleiblicherweise auf eine 99%ige Lösung gekommen:
$first = TRUE;
while ($row = mysqli_fetch_row($result)) {
if($first) {
$temp_fehlerart = $row[1];
$temp_hardware = $row;
$first = FALSE;
}
if($temp_fehlerart != $row[1]) {
$pcliste_array = NULL;
$temp_fehlerart = $row[1];
}
if($temp_hardware != $row) {
$pcliste_array = NULL;
$fehlerartliste_array = NULL;
$temp_hardware = $row;
}
$pcliste_array = $row[2] . ';' . $row[3] . ';' . $row[4];
$fehlerartliste_array[$row[1]] = $pcliste_array;
$hardwareliste_array[$row[0]] = $fehlerartliste_array;
}
jedoch fehlt mir immer noch die anztahl der doppelten oder mehrfachen fehler...
Please also mark the comments that contributed to the solution of the article
Content-Key: 166305
Url: https://administrator.de/contentid/166305
Printed on: April 19, 2024 at 04:04 o'clock
3 Comments
Latest comment
Und, ist doch genauso leicht...
<?php
error_reporting(E_ALL|E_STRICT);
ini_set('display_errors','On');
$sql = "SELECT * FROM tbl";
$q = mysql_query($sql);
$data = array();
while ($row = mysql_fetch_assoc($q)) {
$path = &$data[$row['Hardware']][$row['Fehlerart']][$row['PC-NR']][$row['Fehler-Zusatzinformationen']][$row['PC Zusatzinformationen']];
if($path == null)
$path = 0;
$path++;
}
var_dump($data);
?>