Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: Funzione e while

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    353

    Funzione e while

    Ciao! problemino...ho capito solo ora dopo diversi tentativi che non si può usare un ciclo while dentro una funzione...almeno penso!
    es:

    function news () {
    while ($row=mysql_fetch_array($result))
    {
    ?>
    <body bgcolor="#000000" background="0439_2.jpg">
    <?php echo $row['testo']; ?></td>

    se tolgo la funzione non mi da errore altrimenti:

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ...
    e mi segnala la riga del while

    da qui ho dedotto che non si può fare...
    qualcuno saprebbe aiutarmi???
    grazie 1000

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Certo che lo puoi usare. Il problema è come gestisci il while.
    Lo stesso errore si può ottenere anche al di fuori di una funzione.

  3. #3
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Dentro la funzione $result contiene qualcosa?

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    353
    certo. ecco:

    $query = "SELECT id,titolo,testo,data,link1,link2,data FROM news ORDER BY data DESC";
    $result = mysql_query($query, $db);

    se provo ad applicare il ciclo fuori da news () funziona!
    ho ipotizzato che sia quello...

    grazie

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Se ti va bene senza funzione ok, altrimenti posta il codice completo col codice che usi all'interno della funzione e il modo in cui la richiami.

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    353
    della funzione ho bisogno...purtroppo il codice è molto semplice, non farti spaventare..

    <?php
    include ("config.inc.php");

    //connessione db
    $db = mysql_connect($db_host, $db_user, $db_password);
    if ($db == FALSE)
    die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
    mysql_select_db($db_name, $db)
    or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
    //vediamo le news
    $query = "SELECT id,titolo,testo,data,link1,link2,data FROM news ORDER BY data DESC";
    $result = mysql_query($query, $db);
    function news (){
    while ($row = mysql_fetch_array($result))
    {
    ?>
    <body bgcolor="#000000" background="0439_2.jpg">
    <div align="center">
    <table width="726" border="0">
    <tr>
    <td width="720"><table width="228" border="0">
    <tr>
    <td height="27"><object classid="clsid27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="227" height="55">
    <param name="movie" value="images/int_up.swf">
    <param name="quality" value="high">
    <param name="wmode" value="transparent">
    <embed src="images/int_up.swf" width="227" height="55" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent"></embed></object></td>
    </tr>
    <tr>
    <td height="400"><?php echo $row['testo']; ?></td>
    </tr>
    <tr>
    <td><object classid="clsid27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="227" height="55">
    <param name="movie" value="images/int_down.swf">
    <param name="quality" value="high">
    <param name="wmode" value="transparent">
    <embed src="images/int_down.swf" width="227" height="55" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent"></embed></object></td>
    </tr>
    </table></td>
    </tr>
    </table>


    </p>
    <font color="#FFFFFF"><font size="4">
    <?php
    }
    }
    ?>
    </font>
    </font></div>

    la richiamo :

    <?php
    include ("top_foot.inc.php");
    include ("news.php");

    top();
    news();
    foot();

    ?>

    dovrebbe essere semplice??? no??
    grazie 1000!

  7. #7
    devi passarla come argomento o renderla globale
    codice:
    <?php
    $a="ciao";
    echo $a; 
    
    function saluta(){ 
    	echo $a; 
    }
    saluta(); //errore Undefined variable, possibili soluzioni:
    
    
    function saluta2($var){
    	echo $var;
    }
    saluta2($a); //stampa ciao
    
    
    function saluta3(){
    	global $a;
    	echo $a;
    }
    saluta3(); //stampa ciao
    
    ?>

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    353
    non ho capito?

    cioè:

    while ($row = mysql_fetch_array($result))
    { $testo = $row['testo'];
    }
    ?>

    <?php echo $testo ?>


    questo mi restituisce solo il primo valore che trova.
    ???

  9. #9
    allora
    $testo='';
    while ($row = mysql_fetch_array($result))
    { $testo .= $row['testo'];
    }
    ?>
    <?php echo $testo ?>

    questo messo cosi funziona.

    il tuo problema era trattare tutto come una funzione, no ?
    non puoi accedere alle variabili esterne alla funzione a meno di non dichiararle globali (o passarle come argomento, o utilizzare l'array $GLOBALS).
    "supplied argument is not a valid MySQL result resource" proprio perchè $result in realtà non esiste nella funzione (prova i miei esempi con error reporting al max, capirai cosa intendo)
    ciao

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    353
    ok. ora provo.
    grazie per la disponibilità!

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.