Visualizzazione dei risultati da 1 a 5 su 5

Discussione: parametro non visibile

  1. #1

    parametro non visibile

    codice:
    	$destinatari=explode("|",$RecMsg["IDUtenteReciver"]);
    	$utenti="";
    	foreach($destinatari as $destinatario){
    		$QueryReg=mysql_query("SELECT Nome, Cognome FROM register WHERE IDUtente='$destinatario'");
    		$RecReg=mysql_fetch_array($QueryReg);
    		($utenti=="") ? $utenti="$RecReg[Nome] $RecReg[Cognome]" : $utenti.=", $RecReg[Nome] $RecReg[Cognome]";
    	}
    	echo $utenti;
    da come si legge dal codice ho un array lo passo in foreach e prendo i dati dl database verificando la condizione IDUtente.
    ora il problema è questo $destinatario sono 4 elementi li ci sono tutti ma perchè dal database non mi estrae il Nome e Cognome del primo $destinatario?
    mi stampa:
    , Pinco Pallino, Mario Rossi, Giuseppe Bianchi

  2. #2

    Re: parametro non visibile

    Originariamente inviato da techno
    codice:
    	$destinatari=explode("|",$RecMsg["IDUtenteReciver"]);
    	$utenti="";
    	foreach($destinatari as $destinatario){
    		$QueryReg=mysql_query("SELECT Nome, Cognome FROM register WHERE IDUtente='$destinatario'");
    		$RecReg=mysql_fetch_array($QueryReg);
    		($utenti=="") ? $utenti="$RecReg[Nome] $RecReg[Cognome]" : $utenti.=", $RecReg[Nome] $RecReg[Cognome]";
    	}
    	echo $utenti;
    da come si legge dal codice ho un array lo passo in foreach e prendo i dati dl database verificando la condizione IDUtente.
    ora il problema è questo $destinatario sono 4 elementi li ci sono tutti ma perchè dal database non mi estrae il Nome e Cognome del primo $destinatario?
    mi stampa:
    , Pinco Pallino, Mario Rossi, Giuseppe Bianchi
    Intanto esegui un var_dump della query così vediamo cosa ti dà.

  3. #3
    e si infatti cho pensato dopo ed ho visto che in un dato c'era uno spazio dove non dovrebbe esserci.

  4. #4
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    Prova questo

    Codice PHP:
    <?php
    //La sorgente dati
    $destinatari explode("|"$RecMsg["IDUtenteReciver"]);

    //Preparazione e interrogazione al DB
    $where ' WHERE 0';
    foreach (
    $destinatari as $destinatario)
        
    $where .= " or IDUtente='$destinatario'";
    $sql "SELECT Nome, Cognome FROM register".$where;
    $QueryReg mysql_query($sql) or die("OOOPPS!!
    $sql");
    echo 
    "Se la query ti sembra giusta ma il risultato finale errato, copiala e provala in PhpMyAdmin. Magari manca proprio un elemento nel DB!
    $sql";

    //Elaborazione del risultato
    $utenti="";
    while (
    $RecReg mysql_fetch_array($QueryReg))
        
    $utenti .= ", {$RecReg['Nome']} {$RecReg['Cognome']}";
    if(!empty(
    $utenti))
        
    $utenti substr ($utenti2);

    //Il tanto sospirato output
    echo $utenti;
    ?>
    Siamo sempre troppo gelosi delle nostre grandi piccole opere! - Grino inedito.
    Lavori e Lavoretti

  5. #5
    IMHO
    Al di là dei problemi riscontrati per evitare di fare una query ad ogni ciclo io utilizzerei il foreach per costruire la stringa con tutti gli ID utenti e formulare una query di questo tipo:

    SELECT Nome, Cognome FROM register WHERE IDUtente IN (id separati dalla virgola)

    ... ovviamanete il result set restituito dovrebbe essere lo stesso ma (credo) con un risparmio sulla velocità di esecuzione (oltre che di eleganza sintattica della query)
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

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.