Visualizzazione dei risultati da 1 a 9 su 9

Discussione: condizione if

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    53

    condizione if

    Codice PHP:
    function nuovi_messaggi_check($id_utente){
        global 
    $_CONFIG;
        
        
        
    $messaggi mysql_query("
        SELECT id_messaggio
        FROM "
    .$_CONFIG['table_messaggi']."
        WHERE id_destinatario = "
    .$id_utente." AND
        letto <> 'y'
        "
    );
        
        if (
    mysql_query($messaggi)>0){
            
    $risultato "S";    
        }else{
            
    $risultato "N";
        }
        
        return 
    $risultato;

    E' giusto il mysql_query nella condizione if volendo estrapolare il valore S o N dei msg letti?

  2. #2
    direi di no.

    intanto esegui due volte la query, poi in $messaggi trovi il resource id # del result set ottenuto oppure FALSE in caso di errore e non il numero dei record trovati.

    Se vuoi conoscere il numero dei record trovati dalla query devi usare mysql_num_rows($messaggi)

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    53
    ciao Piero a me non interessa sapere quanti messaggi non letti ci sono ma bensi che ci sono.
    In caso positivo voglio fare in modo che questo controllo mi stampi a video, in una pagina bianca, un risultato per indicare se la condizione è vera "S" o falsa "N".
    Il problema che riscontro riguarda l'include infatti richiamo la funzione in una pagina mettenso solamente questo codice:
    Codice PHP:
    <?php
    include_once("../include/config.php");
    include_once(
    "../include/auth.lib.php"); 
    ?>
    <?
    echo nuovi_messaggi_check ($user["id_user"]); 
    ?>
    Questi sono gli errori che mi da:
    Warning: include_once(../include/config.php) [function.include-once]: failed to open stream: No such file or directory in /web/htdocs/www.********.it/home/community/log/condizione_popup.php on line 2

    Warning: include_once() [function.include]: Failed opening '../include/config.php' for inclusion (include_path='.:/php/lib/php/') in /web/htdocs/www.*****.it/home/community/log/condizione_popup.php on line 2

    Warning: include_once(../include/auth.lib.php) [function.include-once]: failed to open stream: No such file or directory in /web/htdocs/www.******.it/home/community/log/condizione_popup.php on line 3

    Warning: include_once() [function.include]: Failed opening '../include/auth.lib.php' for inclusion (include_path='.:/php/lib/php/') in /web/htdocs/www.******.it/home/community/log/condizione_popup.php on line 3

  4. #4
    significa che oltre all'errore detto prima hai pure un errore di path nei file che includi.

    la funzione in base a quanto detto prima dovresti modificarla cosi':

    Codice PHP:

    .......
        if (
    mysql_num_rows($messaggi) > 0) {
            
    $risultato "S";    
            }else{
                    
    $risultato "N";
                    }
        
        return 
    $risultato

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    53
    Piero allora io ho modificato quello che mi hai mandato ti spiego quello che sto cercando di fare
    Ricezioni di messaggi attraverso l'apertura di un popup in automatico.
    In pratica con la funzione che mi hai appena corretto voglio fare in modo che mi vengano stamapate le condizioni S o N a seconda della presenza o meno di messaggi non letti.
    Una volta stampato a video ho integrato nell'header della pagina base della mia community queste due finzioni in javascript che controllano il teso N o S e conseguentemente a seconda di quello che leggono mi attivano l'apertura di un popup nel quale inserire i parametri relativi all'estrazione del msg non letto.
    Le funzioni che utilizzo nell'header sono queste:
    codice:
    <script type="text/javascript">
    var xmlhttp
    
    function loadResponseDoc(url)
    {
    	var parameters = "";
    	
    	alert(parameters);
    	
    	url += parameters;
    	
    	alert(url);
    	
    	xmlhttp=null
    	// code for Mozilla, etc.
    	if (window.XMLHttpRequest)
    	{
    		xmlhttp=new XMLHttpRequest()
    	}
    	// code for IE
    	else if (window.ActiveXObject)
    	{
    		xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
    	}
    	if (xmlhttp!=null)
    	{
    		xmlhttp.onreadystatechange=state_Change
    		xmlhttp.open("GET",url,false)
    		xmlhttp.send(null)
    	}
    	else
    	{
    		alert("Your browser does not support XMLHTTP.")
    	}
    }
    
    function state_Change()
    {
    	// if xmlhttp shows "loaded"
    	if (xmlhttp.readyState==4)
      	{
      		// if "OK"
      		if (xmlhttp.status==200)
      		{  			
      			var response = xmlhttp.responseText;
      			
      			alert(response);	
      			
      			if(response=='S')
      			{
      				window.open('pop_msg.php','toolbar=no,location=no,directories=no,status=no,menub ar=no,scrollbar=no,resizable=no,copyhistory=yes,width='+width+',height='+height+',left='+left+', top='+top+',screenX='+left+',screenY='+top+'');
      			}
      		}
    	  	else
    	  	{
    	  		alert("Problem retrieving RESPONSE data:" + xmlhttp.statusText)
    	  	}
     	}
    }
    
    </script>

  6. #6
    per lo script in js ed per il suo corretto funzionamento dovresti rivolgerti al competente forum relativo al javascript.

    Per gli errori dell'include nel file condizione_popup.php dovresti controllare il path in cui si trovano quei due file. L'errore dice in solido che non trova i file in:

    /web/htdocs/www.eccomiqui.it/home/community/include/qui i file

    occhio che se condizione_popup.php e' a sua volta incluso, vale la posizione del file che lo ha incluso e non quella della sua propria posizione.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    53
    allora mettendo tutto il percorso cosi come mi viene visualizzto nell'errore del patch rieco a visualizzare il risultato attraverso il percorso home_1.php?uid=6620cf332899307504a0bb10e06a9632&p= condizione_popup&id=119&update=y
    Mi visualizza la pagina con il risultato S"sono in presenza di un messaggio non letto"

    Invece se vado sulla pagina condizione_popup.php direttamente , intendo quella in cui richiamo la funzione da te corretta mi da questo errore:

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /web/htdocs/www.******.it/home/community/include/auth.lib.php on line 44
    N

    fin qui credo che sia normale visto che richiamo la pagina cosi senza associare nessun id sessione e utente alla stessa.

    le funzioni in javascript funzionano ma purtroppo non sono arrivato a quello che volevo fare.
    questo perche a me servirebbe creare una condizione in cui all'utente loggato sia associata una pagina che contenga esclusivamente il carattere S o N.
    cavoli non so come uscire da questo incubo.

  8. #8
    non ho capito granche', ma e' per mio difetto. Se devi includere una pagina.php da due posizioni differenti non ti rimane che usare un percorso assoluto nell'include. Evidentemente home_1.php e' in una posizione di cartelle diversa da condizione_popup.php

    Se l'errore derivasse dalla funzione non ti darebbe la mancata inclusione del file. Include a differenza di require ti segnala l'errore di inclusione solo al momento in cui si richiede l'utilizzo delle parti incluse. Require ti darebbe l'errore immediato al momento della chiamata del file.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    53
    intendo che la pagina che richiama la condizione deve essere riferita ad un utente loggato quindi in base a quest'ultimo la pagina di controllo viene inclusa nella home_1.php indicando di essa id sessione e id utente. A questo punto la funzione nuovi_messaggi_check richiamata stampa il risultato nella pagina di controllo, ma poichè questa è inclusa nella home_1.php la funzione in javascript trovera non un solo carattere, intendo la funzione loadresponsedoc, ma bensi tutto il codice della home incluso il valore S o N del controllo.
    la funzione loadresponsedoc deve legger nella pagina di controllo e trovare un solo carattere indicativo della presenza o meno di msg non letti, se trova S quindi attiva la funzione state_change che in tal caso richiamo lato client l'apertura di un popup in cui posso mettere il codice php per la lettura del msg.
    Non so se adesso è più chiaro a me sta diventando tutto cosi cntorto forse perche ci ho perso tutto il pomeriggio?
    Ps. ho risolto appunto con il percorso assoluto.

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.