sql >> Database teknologi >  >> RDS >> Mysql

Hvorfor fungerer min foreach loop ikke som forventet?

mysqli_query() returnerer ikke et array eller et array-objekt, som du kan bruge med foreach(). Returtypen af ​​mysqli_query() er en ressource. Du henter fra den i en løkke, ligesom din anden løsning.

Det er nemmere at bruge while() i stedet for for():

$cast_list = mysqli_query($dblink, $sql);
while ($role = mysqli_fetch_assoc($cast_list)) {
    echo "<tr><td width='50%'>".$role['appeared_as']."</td>";
}

Sløjfen afsluttes automatisk, når den hentede række er NULL i slutningen af ​​resultatsættet. Du behøver ikke at kende antallet af rækker før løkken.

Om din kommentar:

Efter at har slået nogle fakta op , jeg må indrømme, at mit svar ovenfor ikke er helt sandt. Eller er det ikke sandt for nogle versioner af PHP.

I PHP 5.4 tilføjede en mysqli_result-ressource Iterator funktionalitet, du faktisk kan brug det i en foreach() . Men din vært bruger tilsyneladende en ældre version af PHP.

Den bedste praksis er at udvikle på den samme version af all software, som du vil implementere til, så du ikke bliver fanget af denne form for overraskelse.




  1. Hvordan kan jeg afkorte en datetime i SQL Server?

  2. FEJL:tilladelse nægtet for skema user1_gmail_com ved tegn 46

  3. Postgres-fejl:nullværdi i kolonne-id - under indsættelsesoperation

  4. Hvordan kopierer man docker-volumen fra én maskine til en anden?