2017-06-21 5 views
-3

Ich brauche Hilfe mit Schleife durch MySQL-Daten.Verschachtelte While-Schleife PHP

Ich habe auf lager tabelle wie folgt.

enter image description here

Was Ich mag würde eine select-Anweisung zu tun ist, zu tun, die alle Zeilen ab Lager Tisch bekommen würde, wenn es „numberassigned_vnr“ hat mehr als 1, eine Schleife durch das und zeigen, dass als separate Zeile.

Ich brauche Hilfe beim Schreiben von Select-Anweisung, die Schleife durch die Tabelle und Ergebnis zeigen würde und wenn "numberassigned_vnr" mehr als eins, durchlaufen und das Ergebnis auf diese Anzahl von Malen.

Also sollte ich so etwas sehen.

1 27 300 Black 
1 27 300 Black 
1 27 300 Black 
7 29 315 Black 
7 29 315 Black 
2 28 315 Black 
3 29 315 Black 
...... 
..... 

Vielen Dank im Voraus.

+1

Ich wähle diese Frage als Wegthema zu schließen, weil Sie das Handbuch lesen sollte: http://php.net/manual/en/control-structures. foreach.php –

+0

Sie fragen nach den doppelten Datensätzen. . Ich denke, Sie sollten die erforderlichen Schleifen mit PHP nur –

+0

Ja duplizieren Datensätze. Die 2. Schleife würde nach dem "numberassigned_vnr" -Wert suchen und wenn es; s mehr als eins ist; Es sollte diese Datensätze zu dieser Zeit duplizieren. –

Antwort

0

PHP:

 


while($row=mysqli_fetch_array($result,MYSQL_ASSOC)){ 

    $numberassigned_vnr=$row['numberassigned_vnr']; 

    for($i=1;$i<=$numberassigned_vnr;$i++){ 

     echo "your coloumns here like $row[coloumn1] $row[coloumn2]..."; 

    } 

} 

 

Hope this

hilft
0

Sie können tun, wie diese

// Create connection 
    $conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
    if ($conn->connect_error) { 
     die("Connection failed: " . $conn->connect_error); 
    } 

    $sql = "SELECT id, firstname, lastname FROM MyGuests"; 
    $result = $conn->query($sql); 
    if (!empty($result)) { 
     foreach ($result as $data) { 
      for ($i = 0; $i < $data->numberassigned_vnr; $i++) { 
       echo "$data->id_vnr $data->idstk_vnr $data->width_vnr $data->color_vnr "; 
      } 
     } 
    } 

ich hting es wird für Sie arbeiten.

0

wenn Sie hier mehrere Male über den Druck der Reihe nach ‚numberassigned_vnr‘ fragen ist die Lösung:

// $conn = your db connection 

$result = mysqli_query($conn,"SELECT * FROM your_table"); 

if(!empty($result)) { 
    while($row = mysqli_fetch_array($result,MYSQLI_ASSOC)){ 

     for($i=0; $i < $row['numberassigned_vnr']; $i++){ 
      echo $row['id_vnr']." ".$row['idstk_vnr']." ".$row['width_vnr']." ".$row['color_vnr']; 
     } 
    } 

    // Free result set 
    mysqli_free_result($result); 
} 

mysqli_close($conn); 
0

Mit PDO mit dem WHERE Griff an der MySQL Anweisung bekommen alle Ergebnis, wo numberassigned_vnr > 1.

Etwas wie folgt:

$db = new PDO("..."); 
$statement = $db->prepare("SELECT * FROM stock_table WHERE numberassigned_vnr > :nrassigned"); 
$statement->execute(array(':nrassigned' => 1));  
while ($row = $statement->fetchAll(PDO::FETCH_ASSOC)){ 
    var_dump($row); // var_dump complete row 
    echo $row['id_vnr'] . " " . $row['idstk_vnr'] . " " . $row['width_vnr'] . " " . $row['color_vnr']; 
} 
Verwandte Themen