2016-04-26 7 views
1

Hallo allerseits und danke für Ihre Hilfe ... Ich habe 1 Datenbank und 3 Abfragen zur gleichen Zeit. Jede Abfrage wählt ein anderes Jahr aus und nimmt die Daten aus dieser Spalte.foreach - Holen Sie sich einen bestimmten Wert aus dem zweiten oder dritten Array

Dies ist mein Code

$items = array(); 

     // while we still have rows from the db, display them 
while ($row = mysql_fetch_array($result1)) { 

    $items[] = $row; 
} 

while ($row = mysql_fetch_array($result2)) { 

    $items[] = $row; 
} 

while ($row = mysql_fetch_array($result3)) { 

    $items[] = $row; 
} 


mysql_close($connect); 

?> 

<?php foreach($items as $key => $item) : ?> 

    <?php print "I DONT KNOW WHAT TO DO"; ?> 

<?php endforeach; ?> 

Wenn ich tippe:

<?php echo print_r($keys); ?> 

ich, dass ich eine Reihe von 0, 1 und 2 haben sehen kann ich von einer bestimmten Zeile zu erhalten würde lieben das erste (1) oder zweite (2) Array.

Ich versuche, es herauszufinden, und ich kann einfach nicht ...

Danke alle so sehr!

Edit:

komplette Code:

<?php 
    include ('db.php'); // for db details 
    include ('functions.php'); 

    $connect = @mysql_connect($host,$username,$password) or die('<p class="error">Unable to connect to the database server at this time.</p>'); 
    if (!$connect) { 
     die('Could not connect: ' . mysql_error()); 
    } 



    @mysql_select_db($database,$connect) or die('<p class="error">Unable to connect to the database at this time.</p>'); 

    $query1 = "SELECT * FROM godina2015 WHERE mjesec='8' AND godina='2015'"; 
    $query2 = "SELECT * FROM godina2015 WHERE mjesec='7' AND godina='2015'"; 
    $query3 = "SELECT * FROM godina2015 WHERE mjesec='6' AND godina='2015'"; 

    $result1 = @mysql_query("$query1") or die('<p class="error">There was an unexpected error grabbing news from the database.</p>'); 
    $result2 = @mysql_query("$query2") or die('<p class="error">There was an unexpected error grabbing news from the database.</p>'); 
    $result3 = @mysql_query("$query3") or die('<p class="error">There was an unexpected error grabbing news from the database.</p>'); 


    $items = array(); 

      // while we still have rows from the db, display them 
    while ($row = mysql_fetch_array($result1)) { 

     $items[] = $row; 
    } 

    while ($row = mysql_fetch_array($result2)) { 

     $items[] = $row; 
    } 

    while ($row = mysql_fetch_array($result3)) { 

     $items[] = $row; 
    } 


    mysql_close($connect); 

    ?> 

    <?php foreach($items as $key => $item) : ?> 

     <?php print_r ($item); ?> 

    <?php endforeach; ?> 

EDIT # 2

<?php 
    include ('db.php'); // for db details 
    include ('functions.php'); 

    $connect = mysql_connect($host,$username,$password) or die('<p class="error">Unable to connect to the database server at this time.</p>'); 
    if (!$connect) { 
     die('Could not connect: ' . mysql_error()); 
    } 



    mysql_select_db($database,$connect) or die('<p class="error">Unable to connect to the database at this time.</p>'); 

    $query = "SELECT * FROM godina2015 WHERE mjesec IN(8,7,6) AND godina='2015'"; 

    $result = mysql_query("$query") or die('<p class="error">There was an unexpected error grabbing news from the database.</p>'); 

    $items = array(); 

      // while we still have rows from the db, display them 
    while ($row = mysql_fetch_array($result)) { 

     $items[] = $row; 
    } 

    mysql_close($connect); 

    ?> 

    <?php foreach($items as $key => $item) : ?> 

     <?php echo $items[1]['AWAsistCTR2']; ?> 

    <?php endforeach; ?> 
+0

Was ist, wenn Sie eine 'print_r ($ item);' in Ihrer foreach-Schleife machen? –

+0

das könnte helfen http://stackoverflow.com/questions/17139453/php-accessing-multidimensional-array-values ​​ –

+0

zeigen Sie die 'var_dump ($ items)'. Sie müssen genau zeigen/erklären, wie Ihre Datenstruktur aussieht. Aber wenn man bedenkt, wie man das Array erstellt, erhält man '$ items [0] ... $ items [n]' für die ersten Abfrageergebnisse, $ items [n + 1] ... $ items [n + m] 'für die zweite Abfrage, etc ... –

Antwort

0

Innerhalb der Schleife ein var_dump ($ item) tun.

Sie werden die Struktur des Arrays/Objekts in Ihrem Browser sehen.

Suchen Sie nach dem Feld, das die gewünschten Daten enthält (es wird wahrscheinlich den gleichen Namen wie die Spalte in Ihrer Datenbank haben).

Sie können darauf zugreifen, indem Sie innerhalb der Schleife $ item ['field'] verwenden. Oder $ items [Feldnummer hier (0,1,2)] ['Feld'].

Und ich glaube, als Sie sagten, ROW meinte Sie COLUMN.

+0

Wir könnten Ihnen besser helfen, wenn Sie anstelle des gerade hinzugefügten Codes einen var_dump ($ items) nach dem mysql_close ($ connect) und fügte die Ausgabe hier ein. – wavvves

0

Meine erste Antwort ... so aufgeregt. Ich weiß, was Sie versuchen, zu tun, wie ich manchmal das gleiche tun muss, wenn ich den Code verwende, um herauszufinden, wie die verschiedenen (dynamischen) Abfrageantworten aufeinander bezogen sind. Ich verschachtelte im Allgemeinen die Ergebnisse, so dass ich etwas Relationales habe, das logisch geparst werden kann.

while ($row = mysql_fetch_array($result1)) { 
    $items[0][] = $row; 
} 

while ($row = mysql_fetch_array($result2)) { 
    $items[1][] = $row; 
} 

while ($row = mysql_fetch_array($result3)) { 
    $items[2][] = $row; 
} 

würde unterscheidet Das die verschiedene Cord-Sets, so dass Sie das Array in welcher Weise auch immer analysieren könnten Sie auch rekursiv, wenn nötig wollten.

(array)$newArray = parseArray($items); 

Von dort ...

function parseArray($inArray) { 
    (array)$outArray = Array(); 

    foreach($inArray as $element) { 
     if('some condition with $element') {  //maybe $element['date']=10? 
      $outArray[] = parseArray($element); 
     } else { 
      $outArray[] = $element; 
     } 
    } 
    return $outArray(); 
} 

Hard (und Test) zu beantworten, ohne zu wissen, welche Daten aussieht, aber vielleicht ein paar Ideen. Ich stehe nun auf meine erste Abstimmung.

Verwandte Themen