Estrazione Record multipli da MySQL in OO

  • Creatore Discussione Creatore Discussione nurbi76
  • Data di inizio Data di inizio

nurbi76

Nuovo Utente
17 Ott 2013
2
0
0
ciao a tutti,
mi sto dilettando nel convertire un piccolo sito web che ho fatto tempo fa per un'amica, basato su php+mysql+ajax, in Object Oriented, e mi sono scontrato subito con un problema: ciclare su un array che contiene le righe di una tabella.
In sostanza ho creato una classe "Mysqlimproved", seguendo come base i corsi online dell'ottimo Arthur Mamedow ( non so se posso postare il link, eventualmente prego il moderatore di rimuovere questa citazione. http://www.obiv.it/video-giornale/7-programmazione-oggetti-php-mysqli-class.html) ed ora sto cercando di inserire dei metodi che mi ritornino i miei dati.
I dati possono essere per esempio 5 righe con i campi id, nome, etc... .

Per recuperarli ho fatto un metodo pubblico che li carica in una lista ed il tutto funziona. Il problema però sorge quando devo fare chiamate che devono interagire con più query.
Provo ad incollare un pò di codice:

Codice:
# chiamate dalla pagina principale alla classe:
$db = new Mysqlimproved;
$query_obj = "SELECT C.nome_c, C.id_c FROM campionato C ORDER BY C.nome_c DESC;";
	if ($db->prepare($query_obj)) {
		$db->execute();
		$db->bind($conn);
}

# e qui la funzione bind. 
# Attualmente le righe contenute in essa sono quelle che usavo nell'approccio procedurale. funziona solo che i link che poi clicco non passano le variabili alle pagine invocate.
 
public function bind($conn){
		$this->result->bind_result($name,$id_c);
		while ($this->result->fetch()) {
echo "	<li ><a style=\"background-color:red;margin-bottom:15px; cursor:pointer;\"> $name </a>	 ";
echo "						<ul> ";
							$risCa = mysql_query("SELECT C.nome_cat,S.ex_c,S.ex_gir,S.id_mez,S.ex_cat FROM categorie C INNER JOIN sub S ON S.ex_cat = C.id_cat	WHERE S.ex_c =  $id_c group by S.ex_cat;", $conn);	
							while($rigb = mysql_fetch_row($risCa))  {
echo "							<li class=\"dcjq-current-parent\"><a href=\"#\" style=\"margin-bottom:15px;color:black; cursor: pointer;\"><b> $rigb[0]</b></a> ";			
echo "								<ul> ";
								$risCb = mysql_query("SELECT G.nome_gir,G.id_gir,S.id_mez FROM gironi G INNER JOIN sub S ON S.ex_gir = G.id_gir WHERE S.ex_c = $id_c AND S.ex_cat = $rigb[4] group by S.ex_gir;", $conn);								
								while($rigc = mysql_fetch_row($risCb))  {			
								$tmp=$rigc[0];			
								$tmp_gir=str_replace(" ","Z",$rigc[0]);				
echo "								<li class=\"dcjq-current-parent\" > ";
echo "								<a href=\"#giornata\" onClick=\"sendRequest('../giornata.php?id_sub=<?php echo $rigc[2]?>')\" style=\"margin-bottom:15px;color:black;cursor: pointer;\">$rigc[0]</a></li> ";
								} 		
echo "								</ul>		
							</li>";
							}				
echo "						</ul>
					</li> ";

			}
		return true;
	}

scusate l'oscenità del codice, ma come vi ho detto sto cercando di sistemarlo :crying:

E' possibile dalla pagina principale invocare dei metodi che mi restituiscano riga per riga il contenuto della query, in modo da tenere i cicli while fuori dalla classe e tenere le funzioni che estraggono la query nella classe? Una cosa del tipo:

while (chiamata al metodo della classe mysql che mi da una riga alla volta) {
while (chiamata al metodo della classe mysql che mi da una riga alla volta) {
html + variabili php per popolare le mie liste e/o le combo box dei risultati
}
}


Spero di essere stato chiaro nella mia domanda.

Grazie mille per l'aiuto

ciao
nick
 

Discussioni simili