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

Discussione: problema con un if

  1. #1

    problema con un if

    Salve. Ho creato questa funzione per vedere se nella categoria che voglio cancellare ci sono dei prodotti:

    codice:
    function isproductincat($id)
            {
               global $db;
               $query = "SELECT id,nome,categoria FROM catalogo_prodotti WHERE categoria = '$id'";
    	   $result = mysql_query($query,$db);
               if (mysql_num_rows($result) > 0)
                 {
    		return TRUE;
    	     }
    	   else
    	     {
    	        $query = "SELECT id,nome,padre FROM catalogo_categorie WHERE padre = '$id'";
    		$result = mysql_query($query,$db);
    		while ($row = mysql_fetch_array($result))
    		     {
    			isproductincat($row['id']);
    		     }
    	     }
            }
    Per verificarne l'esito utilizzo un if in questo modo:

    codice:
    if (isproductincat($_GET['id']))
      {
         esegue del codice
      }
    Il problema è che la funzione funziona benissimo visto che ho provato a stampare i valori che estrapola. Il problema è nell'if. Sembra che non gli interessi affatto il TRUE. Cosa dovrei fare?
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  2. #2
    mysql_num_rows($result) ma il $result da dove lo prendi? manca un pezzo

  3. #3
    Avevo sbagliato io a copiare il codice. In quello originale che ho testato c'è e infatti funziona (la funzione). O almeno estrae correttamente tutti i dati che deve estrarre ma poi non ho capito perchè l'if sembra non capirlo.
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  4. #4
    Ma se lo script arriva a "return TRUE" non si dovrebbe fermare? e ritornarmi true?
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  5. #5
    Ecco un aggiornamento: se la categoria che seleziono contiene essa stessa un prodotto lo script funziona. Se invece il prodotto è contenuto in una sottocategoria della categoria selezionata estrae comunque i dati ma ignora completamente il return! Perchè fa così?
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  6. #6
    La funzione appena incontra il return interrompe quello che sta facendo e restituisce il valore, perchè non funziona potrebbe essere una sola, il mysql_num_rows non è maggiore di 0, accertati che sia maggiore di zero, poi sai se la funzione va bene oppure no

  7. #7
    All'inizio mysql_num_rows non è maggiore di 0 e quindi passa avanti con il codice. La funzione quindi richiama se stessa passando il nuovo id e anche se a questo punto mysql_num_rows è maggiore di 0 lo stesso non restituisce il return! Ho provato a stampare il mysql_num_rows prima di inviare questo post. Ho postato perchè proprio non riesco a capire!!! Deve funzionare per forza! La cosa più brutta è che quando troverò l'errore mi dovrò solo buttare dal balcone perchè sarà uno di quegli errori così cretini che non li riesci nemmeno a trovare!
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  8. #8
    Prova a far stampare qualcosa prima di return e vedi se funziona, poi fai la prova del nove

    if (isproductincat($_GET['id'])==true)

  9. #9
    Si, ho già provato a far stampare qualcosa prima di return e funziona perfettamente. Solo che stiamo sempre lì: è l'if che se ne frega del return: può essere true o false è uguale, non lo considera minimamente!
    E comunque "if (function)" non è uguale a "if (function == true)"?
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  10. #10
    Si è uguale, ma è la prova inconfutabile

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.