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...
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 166305
Url: https://administrator.de/forum/multiarray-aus-einem-mysql-resultset-erstellen-166305.html
Ausgedruckt am: 25.12.2024 um 02:12 Uhr
3 Kommentare
Neuester Kommentar
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);
?>