Chiamata di una funzione che contenga un array

mediasteno

Utente Attivo
25 Gen 2010
120
0
0
Ho difficoltà a capire come impostare la funzione di una SELECT e la sua chiamata.
Per estrarre i dati dal database utilizzo una SELECT
PHP:
$iniziativa = "SELECT eventi.*, edizione.*,location.luogo,location.citta, location.descrizione, location.img FROM eventi
LEFT JOIN edizione ON eventi.id = edizione.id_evento 
LEFT JOIN location ON edizione.id_location = location.id 
WHERE eventi.nome LIKE '$manifestazione' LIMIT 0,1"; 
$sql_evento = mysql_query("$iniziativa",$link) or die("Errore query database: ".mysql_error()); 
if(mysql_num_rows($sql_evento) < 1) {echo "Non &egrave; stato trovato nessun evento!";} 
                       else 
                       { 
                           while ($row = mysql_fetch_array($sql_evento)) 
                           { 
                              $num_id = ($row['id']); 
                              $titolo_evento = stripslashes($row['titolo_evento']); 
                              $sottotitolo = stripslashes($row['sottotitolo']); 
                              $datainiz = date("d-m-Y", $row['datainizio']); 
                              $datafin = date("d-m-Y", $row['datafine']); 
                              $luogo = stripslashes($row['luogo']); 
                              $citta = stripslashes($row['citta']); 
                              $descrizione = stripslashes($row['descrizione']); 
                              $obiettivo = stripslashes($row['obiettivo']); 
                              $programma = stripslashes($row['programma']); 
                              $linkgalleria = stripslashes($row['linkgalleria']); 
                              $img_location = stripslashes($row['img']); 
                              $id_loc = ($row['id_location']);   
....

Ora vorrei inserire questa SELECT in una funzione function evento ($manifestazione) {...}.
La mia difficoltà sta nel capire come devo impostare la funzione e richiamare la funzione in modo tale da poter recuperare i valori dell'array singolarmente e poterli inserire in diverse parti della pagina permettendo la stampa dei vari elementi dell'array.
 
Ultima modifica:

mediasteno

Utente Attivo
25 Gen 2010
120
0
0
Nessuna risposta? :crying:
Praticamente io devo ottenere la stessa cosa che ho impostando il codice nel seguente modo:
PHP:
<?php
  if (isset($_GET['evento']))
  {
    $manifestazione = ($_GET['evento']);
            require 'connessione.php';
            $iniziativa = "SELECT eventi.*, edizione.*,location.luogo,location.citta, location.descrizione, location.img FROM eventi
                           LEFT JOIN edizione ON eventi.id = edizione.id_evento
                           LEFT JOIN location ON edizione.id_location = location.id
                           WHERE eventi.nome LIKE '$manifestazione' LIMIT 0,1";
                      $sql_evento = mysql_query("$iniziativa",$link) or die("Errore query database: ".mysql_error());
                      if(mysql_num_rows($sql_evento) < 1) {echo "Non &egrave; stato trovato nessun evento!";}
                       else
                       {
                           while ($row = mysql_fetch_array($sql_evento))
                           {
                              $num_id = ($row['id']);
                              $titolo_evento = stripslashes($row['titolo_evento']);
                              $sottotitolo = stripslashes($row['sottotitolo']);
                              $datainiz = date("d-m-Y", $row['datainizio']);
                              $datafin = date("d-m-Y", $row['datafine']);
                              $luogo = stripslashes($row['luogo']);
                              $citta = stripslashes($row['citta']);
                              $descrizione = stripslashes($row['descrizione']);
                              $obiettivo = stripslashes($row['obiettivo']);
                              $programma = stripslashes($row['programma']);
                              $linkgalleria = stripslashes($row['linkgalleria']);
                              $img_location = stripslashes($row['img']);
                              $id_loc = ($row['id_location']);
?>
<div id="content">
        <div class="post">
		<h2 class="title"><?php echo $titolo_evento; ?></h2>
		<p class="meta"><?php  echo $sottotitolo ?></p>
		...
        </div>

        <div class="post">
                 <h3>Obiettivo</h3>
             <div class="entry">
                   <p>
                      <?php
                        $intro = intro($manifestazione,$obiettivo,obiettivo);
                        echo ("$intro");
                      ?>
                   </p>
	      </div>
	</div>
...
</div>
<?php
}
                               }
                       }
?>


ma inserendo la SELECT in una funzione, in modo tale che non devo ripetere il codice per tutte le pagine ma effettuo la CHIAMATA ALLA FUNZIONE passando come argomento $manifestazione.

Ho provato con LIST ma senza risultato. Non sono brava con gli array :(
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Prova in questo modo:
PHP:
function evento($manifestazione)
{
    $sql = "SELECT eventi.*, edizione.*,location.luogo,location.citta, location.descrizione, location.img FROM eventi
    LEFT JOIN edizione ON eventi.id = edizione.id_evento
    LEFT JOIN location ON edizione.id_location = location.id
    WHERE eventi.nome LIKE '{$manifestazione}' LIMIT 1";
    $query = mysql_query($sql) or die(sprintf('Errore del database: "%s".', mysql_error()));

    if (mysql_num_rows($query) == 0) {
        return false;
    }
    
    $row = mysql_fetch_assoc($query);

    foreach ($row as $key => $value) {
        $row[$key] = stripslashes($value);
    }

    return $row;
}
Restituisce false se nessun evento è stato trovato, oppure un array contenente i dati dell'evento.
 

mediasteno

Utente Attivo
25 Gen 2010
120
0
0
a questo punto ho il problema di come posso stampare i vari elementi dell'array. Nella mia pagina devo richiamare la funzione e stampare a video i vari elementi dell'array in diversi punti
 

mediasteno

Utente Attivo
25 Gen 2010
120
0
0
Ah grazie! io non mettevo le graffe e non ottenevo alcun risultato. Ho adattato il codice alla mia pagina ed ora ho risolto tutto. Grazie
 

rober23

Utente Attivo
4 Ott 2013
32
0
0
ciao, e se la select contenesse molti valori, esempio 10!!! come le visualizzavamo nella pagina?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
se non ho capito male, ecco un esempio

PHP:
<?php
//...
$result = mysqli_query($link, "SELECT * FROM tua_tabella");//ipotizziamo due campi campo_1 e campo_2
if(mysqli_num_rows($result)==0){
	echo "nessun record";
}else{
	echo "<table><tr><th>Campo 1</th><th>Campo 2</th></tr>";
	while ($row = mysqli_fetch_assoc($result)) {//e qui stampi i campi dei vari record
		echo "<tr><td>{$row['campo_1']}</td><td>{$row['campo_2']}</td></tr>";
	}
	echo "</table>";
}
//...
?>
 

rober23

Utente Attivo
4 Ott 2013
32
0
0
mi spiego... ho due file:

1° file con la funzione che mi fa la query:

PHP:
function clienti_lista(){
		$con=connetti();
		
		$sql='SELECT * FROM `tabella`';
		if ($num!=0){
			$sql.='  LIMIT 0 , 10';
		}
		$res=mysql_query($sql) or die(mysql_error());
		if ($res){
			$num=mysql_num_rows($res);
			if ($num!=1){
				return 0;
			}
			$cnt = 0;
			$data = array();
			while($row =  mysql_fetch_array($res)){
				$data[$cnt]['nominativo']=$row['0'];
				$data[$cnt]['indirizzo']=$row['1'];
				
                $cnt++;
			}

			return $date;

secondo file dove vado a chiamarmi la funzione e visualizzare i contnuti:

PHP:
<?php 
												
$data = clienti_lista();
foreach ($data as $riga) {
echo "<tr>
<td><a href='#'>".$riga['nominativo']."</td>
<td><span class='label label-important'>waiting</span></td>
</tr> ";
 }
?>

solo che mi dà un errore nel foreach
 
Ultima modifica di un moderatore:

rober23

Utente Attivo
4 Ott 2013
32
0
0
si

PHP:
<?php
	function clienti_lista($num=0,$start=0){
		$con=connetti();
		
		$sql='SELECT NOMINATIVO,INDIRIZZO FROM `tabella`';
		if ($num!=0){
			$sql.='  LIMIT $start , $num';
		}
		$res=mysql_query($sql) or die(mysql_error());
		if ($res){
			$num=mysql_num_rows($res);
			if ($num!=1){
				return 0;
			}
			$cnt = 0;
			$data = array();
			while($row =  mysql_fetch_array($res)){
				$data[$cnt]['nominativo']=$row['0'];
				$data[$cnt]['indirizzo']=$row['1'];
				
                $cnt++;
			}

			return $date;
			disconnetti($con);
		}else{
			disconnetti($con);
			return 0;
		}
		
	}
?>
 
Ultima modifica di un moderatore:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ho dato un occhio e secondo, se non hai sbagliato nel copy/paste, valorizzi l'array $data e fai il return con $date
PHP:
<?php
//....
$cnt = 0;
$data = array();
            while($row =  mysql_fetch_array($res)){
                $data[$cnt]['nominativo']=$row['0'];
                $data[$cnt]['indirizzo']=$row['1'];
                $cnt++;
            }

            return $date;//qui dovrebbe essere return $data;
            disconnetti($con);//questa non viene mai eseguita
//....
?>
poi l'istruzione disconetti posta li non viene mai eseguita, col return esce, a parte che non servirebbe ci pensa php a chiudere quando serve.
ultimo, dulcis in fundo, abbandona le vecchie istruzioni mysql deprecate e passa a mysqli o alla classe pdo
 
Discussioni simili
Autore Titolo Forum Risposte Data
C [Javascript] Chiamata di una funzione da *.js esterno Javascript 1
A chiamata di una funzione esterna rispetto al file js chiamante jQuery 3
G Funzione che resta in ascolto per una chiamata esterna Javascript 1
D Problema nella chiamata ad una funzione javascript da href Ajax 2
M Problema funzione chiamata una volta solo in javascript Javascript 1
M [XAMARIN] Accettare una chiamata telefonica al click su bottone Sviluppo app per Android 3
D [PHP] chiamata metodi da una classe PHP 3
A progressbar con conteggio record da una chiamata Ajax Ajax 1
U Fare una chiamata post con Angularjs Javascript 3
P Portare fuori il contenuto di una chiamata ajax dentro un iframe Ajax 0
D Visibilità del codice restituito da una chiamata Ajax Ajax 8
R valore value di un id da passare in chiamata ajax Ajax 3
M Fullcalendar in Codeigniter, un aiuto per la chiamata $ajax ? jQuery 0
M PHP e chiamata SOAP PHP 6
felino ASP.net MVC: Exception e chiamata AJAX ASP.NET 1
motleyrulez Chiamata Rest Api durante Redirect PHP 1
C la chiamata ajax non ritorna alcun dato Ajax 1
motleyrulez Chiamata ajax per tabella php PHP 3
G Eseguire codice solo al termine della chiamata ajax Ajax 1
A [PHP] Web app Rest chiamata Get PHP 4
A [PHP] Web App REST chiamata GET PHP 3
M [Xamarin] personalizzare la schermata della chiamata in arrivo Sviluppo app per Android 0
otto9due Chiamata ajax su due url è possibile? Ajax 0
G Chiamata ajax restituisce errore random Ajax 1
A redirect da pagina php chiamata da ajax PHP 2
C Problema chiamata Ajax Ajax 2
A Chiamata funzione PHP con onclick PHP 8
localhost.nicola [Javascript] JS non esegue funzioni su bottoni stampati da chiamata AJAX Javascript 1
F Chiamata HTML da form PHP 6
L Chiamata node js Javascript 0
P Chiamata ajax che non ne vuole sapere di funzionare Ajax 5
M Problema chiamata Ajax per vista Griglia o vista Lista Ajax 1
T [JavaScript & Ajax] Eseguire script dopo chiamata A Ajax 2
B Evento blur chiamata file php jQuery 1
V Chiamata funzione php da javascript Ajax 3
A non esegue sempre la chiamata al server Ajax 1
A problema con chiamata ajax Ajax 1
L Chiamata ajax su input in tabella jQuery 1
A Problema recupero valori da select con chiamata ajax Ajax 1
S Gallery con Tag foto: problema doppia chiamata ajax con JQuery jQuery 2
GoshMaledetto problema ritorno valori php da chiamata ajax Ajax 9
C Chiamata AJAX con metodo load non va, cosa sbaglio? Ajax 2
minatore Errore di chiamata PHP 9
M ajax chiamata sincrona funziona con ie e non con firefox Javascript 3
M problema scope variabili chiamata ajax Javascript 2
P Registrazione audio in chiamata Java 2
L errore:stato della chiamata 0. MA PERCHE??? Ajax 0
Eugene Chiamata multipla di query PHP 3
M pulsante per aprire una maschera che contiene controllo schede MS Access 0
M Leggere in un report il valore di una casella combinata di una maschera Database 0

Discussioni simili