Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    175

    [PHP] ciclo while impossibile

    <?php
    require_once("connect.php");
    $a=0;
    $result = mysql_query("SELECT * FROM link where parole like '%' ORDER BY `data` DESC");

    while ($row = mysql_fetch_array($result) & $a<1000) {

    echo "$row[1]</br>";

    $a=$a+1;


    }
    echo "tot=";
    echo $a;
    ?>

    Scusate sono nuovo probabilmente il mio è un problema stupidissimo ma non capisco proprio il motivo per il quale la riga:"...echo "$row[1]</br>";..." non mi stampa ( mi stampa solo l'accapo), magicamente se levo all'interno del while il controllo $a<1000 tutto viene stampato ma non posso stampare a schermo 50000 link volevo porre il limite di 1000.

  2. #2
    $result = mysql_query("SELECT * FROM link where parole like '%' ORDER BY `data` DESC LIMIT 1000");

    while( $row = &mysql_fetch_row($result) ) {
    echo ''.$row[1].'
    ';
    }
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  3. #3
    Utente di HTML.it L'avatar di *Ray*
    Registrato dal
    Oct 2000
    Messaggi
    495
    codice:
    while ($row = mysql_fetch_array($result) && $a<1000)
    In ogni caso la soluzione con LIMIT e' piu' leggera.

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    175
    Grazie mille per l'aiuto però... in realtà quel $a mi serviva per potermi gestire meglio la stampa dei risultati infatti avrei inserito nel codice un:

    $n=$_GET['n'];

    e poi :

    $a=$n*1000

    e nella condizione:

    while( ... & $a < $n*1000+1000)

    così da ottenere con la pagina 1.php?n=0
    i primi 1000 risultati

    con 2.php?n=1
    dal 1001 al 2000

    con3.php?n=2
    dal 2001 al 3000 e così via

    come posso fare??

  5. #5
    Utente di HTML.it L'avatar di *Ray*
    Registrato dal
    Oct 2000
    Messaggi
    495
    Per fare quello che vuoi tu bisogna usare il limit.. vorrai mica fare 1000*n fetch_row inutili?

    Si fa:

    SELECT quel che e' ... LIMIT PRIMO_RECORD, NUMERO_RECORD

    Quindi:

    LIMIT 1, 1000 i primi mille
    LIMIT 1001, 1000 i secondi mille

    e cosi via

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    175
    Ray : scusa ma ke significa quel doppio & come mai con uno solo non funziona qual'è la differenza?

    Come faccio a fare la stessa cosa con limit?

  7. #7
    Utente di HTML.it L'avatar di *Ray*
    Registrato dal
    Oct 2000
    Messaggi
    495
    Sono due operatori diversi.

    && e' l'operatore AND logico, & e' l'operatore AND bit a bit

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    175
    <?php
    require_once("connect.php");
    $n=$_GET['n'];
    $a=$n*1000;
    $result = mysql_query("SELECT * FROM link where parole like '%' ORDER BY `data` DESC LIMIT $a,$a+1000 ");

    while ($row = mysql_fetch_array($result) ) {

    echo "$row[1]</br>";

    $a=$a+1;


    }
    echo "tot=";
    echo $a;
    ?>


    Non funziona non mi stampa nulla possibile che io sia così impedito???
    Abbiate pazienza

    (p.s. ho provato anche con && ma non stampa nulla )

  9. #9
    Originariamente inviato da *Ray*
    Sono due operatori diversi.

    && e' l'operatore AND logico, & e' l'operatore AND bit a bit
    si, questo in C

    in PHP invece && significa che se la prima condizione e' falsa non verifica la seconda, mentre la sola & significa che controlla comunque tutte le condizioni
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  10. #10
    Utente di HTML.it L'avatar di *Ray*
    Registrato dal
    Oct 2000
    Messaggi
    495
    Non mi risulta..

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.