2016-09-15 5 views
0

Ich möchte die Werte auf einige Bedingung abrufen Ich habe die Tabelle unten anfügen Sie können es überprüfen, im Grunde muss ich alle Brukt = '0' und group by Gruppe, mit 2 weiteren Bedingungen, die sind Brukernr LIKE '1612%' AND Periode = '2014-2'Nicht in der Lage, die leeren mysql-Werte zu erhalten

enter image description here

Wie Sie die Tabelle mein Zustand sehen und alle. Meine Ergebnisse müssen ein einzelnes Array mit 5 Werten von S1 bis S5 sein. Das Problem ist mit meiner aktuellen Abfrage ist, dass, wenn sie keinen Wert erhalten, dann es nicht in Array hinzufügen, und im Ergebnis enthält mein Array nur die Werte, die Ergebnisse geben.

$sq3 = "select Brukt, 
       count(*) 
     from Brukere_periode 
     where Brukt = '0' AND Brukernr LIKE '1612%' AND Periode = '2014-2' 
     group by Gruppe";  
$ru3 = mysqli_query($sq3); 

while($sh = mysqli_fetch_array($ru3)){ 
    $val[] += $sh[1]; 
} 

Es die Ergebnisse wie

Array 
(
    [0] => 28 
    [1] => 6 
    [2] => 2 
) 

in diesem Array 0 contain S1 value, 1 contain S3 und 2 contain S4, geben möchte ich meine Array return S2 and S5 sowie einen leeren muss.

+1

Hallo, ich bin hier nur daran erinnern, dass die mysql_ * Prototyp ** veraltet ** aus vielen Gründen (vor allem Sicherheit), ich daher Ich empfehle Ihnen, stattdessen zu anderen Prototypen wie mysqli_ * oder PDO zu wechseln. Obwohl Ihre Anfrage dem Client selbst nicht in irgendeiner Weise zugänglich gemacht wird, wird dennoch empfohlen, solche Prototypen zu aktualisieren, da sie bald ** nicht mehr unterstützt werden **, überprüfen Sie bitte http://stackoverflow.com/questions/12859942/why -shouldnt-ich-benutze-mysql-functions-in-php für weitere Informationen. – briosheje

+0

@briosheje Veraltet bedeutet, dass das DB-Protokoll 'MySQL_' bereits unterstützt wird und in PHP7 ** entfernt wurde. Sara, bitte benutze es nicht mehr und aktualisiere es so bald wie möglich zu MySQLi_ und/oder PDO. – Martin

+0

@Martin: Richtig, das wollte ich mit "nicht unterstützt" sagen, obwohl es tatsächlich ** entfernt wurde. – briosheje

Antwort

0

Init des Arrays Ergebnis zuerst:

$val = array('S1'=>0,'S2'=>0,'S3'=>0, 'S4'=>0, 'S5'=> 0); 

hinzufügen Gruppe Feld auf Ergebnis:

$sq3 = "select Brukt, Gruppe, count(*) 
     from Brukere_periode 
     where Brukt = '0' AND Brukernr LIKE '1612%' AND Periode = '2014-2' 
     group by Gruppe 
"; 

Dann zuweisen.

$val [ $sh[1] ] = $sh[2]; 

Ihr Array wird wie folgt aussehen:

Array 
(
    ['S0'] => 0, 
    ['S1'] => 28, 
    ['S2'] => 0, 
    ['S3'] => 6, 
    ['S4'] => 2, 
    ['S5'] = 0 
) 
+1

Vielen Dank seine Arbeit gut –

+0

Gern geschehen, vergessen Sie nicht, die Antwort als akzeptiert zu markieren. – olegsv

Verwandte Themen