mysql — PHP зависает при использовании цикла for для большого массива

У меня есть некоторые проблемы при попытке запустить этот скрипт:

<?php

$mysqli=new mysqli("localhost","root","mysqlpassword","MarcTextOldBib");
if (mysqli_connect_errno()) {echo "Failed to connect to MySQL: " . mysqli_connect_error();}
$db_abfrage = "SELECT `cid` , `field_data` FROM T1xx" ;
$j=0;
$db_ausgabe = $mysqli->query($db_abfrage);
while($row = $db_ausgabe->fetch_object()){
$names[$j] = array( "cid"           => $row->cid,
"field_data"    => $row->field_data,
);
$j++;
}$mysqli->close();

echo"<table border='1'>
<thead><tr>
<th>ID</th> <th>Name</th>
</tr></thead>";

$ID=1;
$size = count($names);

for ( $i = 0; $i <= $size; $i++ ){
$cid = $names[$i][cid];
echo "<tr>";

while( $ID != $names[$i][cid] ) {
echo "<td>".($ID)."</td>";
echo "<td></td>";
echo "</tr>";
$ID++;
}

if( ($ID) == $names[$i][cid] ) {
echo "<td>" . ($ID) . "</td>";
echo "<td>" . $names[$i][field_data] . "</td>";
echo "</tr>";
$ID++;
}

}

echo "</table>";

?>

Когда я устанавливаю цикл for только «50» вместо count ($ names), он работает как шарм. Но при использовании count ($ names) мой компьютер зависает полностью. количество ($ names) составляет 2788.

0

Решение

У вас очень странный код, я упростила столько, сколько я поняла,
но что вы пытались получить с $ID++ все еще в моем понимании.

Если ой объясню, я позабочусь об остальном за вас

<?php

$mysqli=new mysqli("localhost","root","mysqlpassword","MarcTextOldBib");
if (mysqli_connect_errno()) {echo "Failed to connect to MySQL: " . mysqli_connect_error();}
$db_abfrage = "SELECT `cid` , `field_data` FROM T1xx" ;
$db_ausgabe = $mysqli->query($db_abfrage);
$names= array()
while($row = $db_ausgabe->fetch_assoc()){
$names[] = $row
}$mysqli->close();

echo"<table border='1'>
<thead><tr>
<th>ID</th> <th>Name</th>
</tr></thead>";

$ID=1;

foreach ($names as $row ){
$cid = $row['cid'];
echo "<tr>";
echo "<td>" . ($ID) . "</td>";
echo "<td>" . ($ID != $row['cid'])?'':$row['field_data'] . "</td>";
echo "</tr>";
$ID++;}

echo "</table>";

?>
1

Другие решения

положить «cid» в кавычки.

Изменить:

$names[$i][cid]

Для того, чтобы:

$names[$i]['cid']

И то же самое касается

$names[$i]['fieldData']
2

По вопросам рекламы [email protected]