Visualizzazione dei risultati da 1 a 10 su 10

Discussione: errore nel ciclo

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929

    errore nel ciclo

    ciao a tutti,

    ho un'errore in un ciclo while.. che non riesco a capire

    l'errore è questo
    codice:
    Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource
    e si riferisce alla linea evidenziata

    Codice PHP:
    <?php
    $query_menu 
    "SELECT * FROM menu WHERE id_linea = 1";
    $menu mysql_query($query_menu$connessione) or die(mysql_error());
    $row_menu mysql_fetch_assoc($menu);
    $totalRows_menu mysql_num_rows($menu);

    $questo $row_menu['id'];
    $titolo $row_menu['titolo'];

    echo 
    $stampa "<script type=\"text/javascript\">a.add(".$questo.", 0,'".$titolo."','javascript:void(0);');</script>";

    $query_sotto "SELECT * FROM sottomenu WHERE id_menu = '$questo'";
    $sotto mysql_query($query_sotto$connessione) or die(mysql_error());
    $row_sotto mysql_fetch_assoc($sotto);
    $totalRows_sotto mysql_num_rows($sotto);

    do { 
    $sotto $row_sotto['id'];
    $titolo_sotto $row_sotto['titolo'];
    echo 
    $stampa "<script type=\"text/javascript\">a.add(".$sotto.", ".$questo.",'".$titolo_sotto."','javascript:void(0);');</script>";
    } while (
    $row_sotto mysql_fetch_assoc($sotto)); ?>

    [b] <script type="text/javascript">document.write(a);</script></div></td></tr>[/b]

    :master: grazie

  2. #2
    Innanzi tutto, la tua variabile $sotto, contiene un id e quindi un intero e non una risorsa.

    $sotto = $row_sotto['id'];

    $sotto = mysql_query($query_sotto, $connessione) or die(mysql_error());

    cambia nome alla riga che prende il record:

    $sottoId = $row_sotto['id'];

    Perché usi un do while?
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    Codice PHP:
    $query_menu "SELECT * FROM menu WHERE id_linea = 1";
    $menu mysql_query($query_menu$connessione) or die(mysql_error());
    $row_menu mysql_fetch_assoc($menu);
    $totalRows_menu mysql_num_rows($menu);

    $questo $row_menu['id'];
    $titolo $row_menu['titolo'];

    echo 
    $stampa "<script type=\"text/javascript\">a.add(".$questo.", 0,'".$titolo."','javascript:void(0);');</script>";

    $query_sotto "SELECT * FROM sottomenu WHERE id_menu = '$questo'";
    $sotto mysql_query($query_sotto$connessione) or die(mysql_error());
    $row_sotto mysql_fetch_assoc($sotto);
    $totalRows_sotto mysql_num_rows($sotto);

    do { 
    $sottoId $row_sotto['id']; 
    $titolo_sotto $row_sotto['titolo'];
    echo 
    $stampa "<script type=\"text/javascript\">a.add(".$sottoId.", ".$questo.",'".$titolo_sotto."','javascript:void(0);');</script>";
    } while (
    $row_sotto mysql_fetch_assoc($sotto)); 
    non capisco :master: scusa....

  4. #4
    Nel tuo codice hai due righe che sovrascrivono la stessa variabile. Questa variabile è di tipo diverso:




    $query_menu = "SELECT * FROM menu WHERE id_linea = 1";
    $menu = mysql_query($query_menu, $connessione) or die(mysql_error());
    $row_menu = mysql_fetch_assoc($menu);
    $totalRows_menu = mysql_num_rows($menu);

    $questo = $row_menu['id'];
    $titolo = $row_menu['titolo'];

    echo $stampa = "<script type=\"text/javascript\">a.add(".$questo.", 0,'".$titolo."','java script:void(0);');</script>";

    $query_sotto = "SELECT * FROM sottomenu WHERE id_menu = '$questo'";
    $sotto = mysql_query($query_sotto, $connessione) or die(mysql_error()) ;
    $row_sotto = mysql_fetch_assoc($sotto);
    $totalRows_sotto = mysql_num_rows($sotto);

    do {
    $sotto = $row_sotto['id']; // <== devi modificare questa riga cambiando il nome della variabile $sotto, che usi già per indicare una risorsa.
    $titolo_sotto = $row_sotto['titolo'];
    echo $stampa = "<script type=\"text/javascript\">a.add(".$sottoId.", ".$questo.",'".$titolo_sotto."','java script:void(0);');</script>";
    } while ($row_sotto = mysql_fetch_assoc($sotto));


    Poi se vuoi fare una cosa migliore cambia il codice in questo modo!:



    $query_sotto = "SELECT * FROM sottomenu WHERE id_menu = '$questo'";
    $sotto = mysql_query($query_sotto, $connessione) or die(mysql_error());

    $totalRows_sotto = mysql_num_rows($sotto);

    while ($row_sotto = mysql_fetch_assoc($sotto)){

    $sottoId = $row_sotto['id'];
    $titolo_sotto = $row_sotto['titolo'];
    echo $stampa = "<script type=\"text/javascript\">a.add(".$sottoId.", ".$questo.",'".$titolo_sotto."','java script:void(0);');</script>";
    }
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    adesso ho fatto cosi

    Codice PHP:
    $query_menu "SELECT * FROM menu WHERE id_linea = 1"
    $menu mysql_query($query_menu$connessione) or die(mysql_error()); 
    $row_menu mysql_fetch_assoc($menu); 
    $totalRows_menu mysql_num_rows($menu); 

    $questo $row_menu['id']; 
    $titolo $row_menu['titolo']; 

    echo 
    $stampa "<script type=\"text/javascript\">a.add(".$questo.", 0,'".$titolo."','java script:void(0);');</script>"

    $query_sotto "SELECT * FROM sottomenu WHERE id_menu = '$questo'"
    $sotto mysql_query($query_sotto$connessione) or die(mysql_error()); 

    $totalRows_sotto mysql_num_rows($sotto); 

    while (
    $row_sotto mysql_fetch_assoc($sotto)){ 

    $sottoId $row_sotto['id']; 
    $titolo_sotto $row_sotto['titolo']; 
    echo 
    $stampa "<script type=\"text/javascript\">a.add(".$sottoId.", ".$questo.",'".$titolo_sotto."','java script:void(0);');</script>"

    e quando provo la pagina, dopo 5 minuti si apre e esce fuori undefined

    :master:

  6. #6
    Non ho capito, incolla la riga dell'errore!
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    cosi non dà nessun errore, ma non viene fuori nulla

    Codice PHP:
    $query_menu "SELECT * FROM menu WHERE id_linea = 1"
    $menu mysql_query($query_menu$connessione) or die(mysql_error()); 
    $row_menu mysql_fetch_assoc($menu); 
    $totalRows_menu mysql_num_rows($menu); 

    $questo $row_menu['id']; 
    $titolo $row_menu['titolo']; 
    echo 
    $stampa "
            <script type=\"text/javascript\">
            a = new dTree('a');
            a.config.folderLinks=false;
            a.config.useIcons=false;
            a.config.useLines=false;
            a.config.useSelection=true;
            a.config.useCookies=true;
            a.add(0,-1,'','javascript: void(0);');
            a.add("
    .$questo.", 0,'".$titolo."','java script:void(0);');\n";

    $query_sotto "SELECT * FROM sottomenu WHERE id_menu = '$questo'"
    $sotto mysql_query($query_sotto$connessione) or die(mysql_error()); 
    $totalRows_sotto mysql_num_rows($sotto); 
    while (
    $row_sotto mysql_fetch_assoc($sotto)){ 
    $sottoId $row_sotto['id']; 
    $titolo_sotto $row_sotto['titolo']; 

    echo 
    $stampa += "a.add(".$sottoId.", ".$questo.",'".$titolo_sotto."','java script:void(0);');"
    }
    echo 
    $stampa += "</script>"

    nella pagina html ottengo questo
    codice:
    <script type="text/javascript">
    		a = new dTree('a');
    		a.config.folderLinks=false;
    		a.config.useIcons=false;
    		a.config.useLines=false;
    		a.config.useSelection=true;
    		a.config.useCookies=true;
    		a.add(0,-1,'','javascript: void(0);');
    		a.add(1, 0,'Ho.re.ca','java script:void(0);');
    0000 <script type="text/javascript">document.write(a);</script>
    0000 al posto della stringa.... :master:

  8. #8
    Cosa dovrebbe fare lo script?
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    grazie mille, ho risolto tutto.


  10. #10
    Bene, posta la soluzione però così se qualcuno ha un problema simile ne sarà aiutato!
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

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.