sql >> Database >  >> RDS >> Mysql

query om vier willekeurige gegevens uit de database weer te geven

Je eerste Query is prima, maar de tijd is verkeerd:

Kijk maar eens wat je hier hebt gedaan:

$rows=mysql_fetch_array($query_run);
while($rows)
{
    echo $rows['banner_no'];
    echo $rows['banner_name'];
    echo "<a href=\"".$rows['Banner_website_url']. "\">";
    echo "<img src=\"".$rows['banner_image_url']."\" width=\"100px\" height=\"100px\">";
    echo"</a>";
}

dit zal eindigen in een "oneindige lus" oorzaak $rows wordt altijd ingesteld. Wat je nodig hebt is:

while($rows=mysql_fetch_array($query_run))

dit veroorzaakt myslq_fetch_array om een ​​nieuwe regel te retourneren telkens wanneer de while-voorwaarde wordt gecontroleerd. En als alle 4 rijen worden geretourneerd, $rows zal onwaar zijn en de lus wordt gestopt.

En om compleet te zijn:in je tweede voorbeeld herhaal je precies 4 keer dezelfde rij, die je slechts één keer hebt opgehaald door myslq_fetch_array aan te roepen .

Een mogelijke oplossing hiervoor is om de rij weer BINNEN de while-loop op te halen:

$i=4;
while ($i>0){
    $rows = mysql_fetch_array(...);
    $i--;
}

U zou echter de voorkeur moeten geven aan de eerste oplossing, omdat u er dan niet voor hoeft te zorgen dat het aantal resultaten overeenkomt met uw iteratorvariabele.

sidenode:Noem het $row zonder de 's', want je krijgt altijd maar EEN rij terug.



  1. update als er twee velden zijn, invoegen als dat niet het geval is (MySQL)

  2. Een kolomtype wijzigen in langere strings in rails

  3. De stuklijststructuur (BOM) in databases identificeren

  4. SQL Server 2005 Hoe creëer je een unieke beperking?