sql >> Database >  >> RDS >> Mysql

Hoe het eerste resultaat van de query van de rest te scheiden?

Probeer iets als:

$results = $stm1->fetch();
print_r($results);

while($results = $stm1->fetch()){
    print_r($results);
}

Je hebt eigenlijk geen lus nodig om het eerste element te krijgen, en dan kun je de iteratie hervatten met wat vroeger je tweede lus was.

Het probleem met

is dat als er een of meer resultaten in de resultatenset zijn, u altijd bel $stm1->fetch() tweemaal:eenmaal de eerste keer dat u de lus binnengaat, en dan een tweede keer bij de tweede iteratie voordat u daadwerkelijk controleert dat ($iterator == 1) is niet langer waar.

Als er slechts twee resultaten in uw resultatenset zijn, zal dat zich manifesteren in de tweede lus die nooit wordt ingevoerd (omdat fetch geen resultaten meer zal hebben).



  1. flyway kan geen verbinding maken met de postgres-container in het docker-entrypoint-initdb.d-script

  2. hoe alle databases te laten vallen, behalve enkele in postgres

  3. Hoe ' of een speciaal teken in bij gebruik van XMLELEMENT Oracle

  4. Trek jaren af ​​van een datum in PostgreSQL