PHP e recupero risultati da query

liso

Nuovo Utente
18 Mar 2014
10
0
0
Buonasera a tutti, scrivo per la prima volta...perchè per la prima volta non ho trovato la soluzione da solo :)

ho uno script sql NON scritto da me, che devo far eseguire in una pagina php.
se il codice lo copio e incollo in phpmyadmin funziona correttamente e restituisce un risultato.
questo risultato dovrei mostrarlo in una pagina web
ho quindi creato un file .sql con le righe di sql
e utilizzato questa funzione nella pagina php

PHP:
<?php

mysql_connect("localhost","root",""); 
mysql_select_db("db1"); 
$file="query.sql"; // Il file SQL da eseguire 
$rows=explode(";",file_get_contents($file)); 
foreach($rows as $row){ 
echo "<br/>Eseguo la query:".$row; 
$res = mysql_query($row); 
echo "<br/>".$row; 
} 
echo "finito!"; 
echo $res;

if($res && mysql_num_rows($res)>0){
 while($row=mysql_fetch_assoc($res)){
        //echo $row['famiglia']." – ";
        }
} else
     echo "nessun risultato";
	 
	 
?>

Non mi riesce però interpretare il risultato. infatti mi viene stampato "nessun risultato" ma questo non è vero in quanto se eseguito in phpmyadmin ho il risultato.....come posso fare?

l'ultima riga (di una quarantina) di codice sql è: group by Fm3_Cod, Fm3_Des, Art_UniMis;
non so se può essere utile per capire che tipo di risultato sputa fuori


grazie infinite
 
Ultima modifica di un moderatore:

liso

Nuovo Utente
18 Mar 2014
10
0
0
Buonasera a tutti, scrivo per la prima volta...perchè per la prima volta non ho trovato la soluzione da solo :)

ho uno script sql NON scritto da me, che devo far eseguire in una pagina php.
se il codice lo copio e incollo in phpmyadmin funziona correttamente e restituisce un risultato.
questo risultato dovrei mostrarlo in una pagina web
ho quindi creato un file .sql con le righe di sql
e utilizzato questa funzione nella pagina php

Codice:
<?php

mysql_connect("localhost","root",""); 
mysql_select_db("db1"); 
$file="query.sql"; // Il file SQL da eseguire 
$rows=explode(";",file_get_contents($file)); 
foreach($rows as $row){ 
echo "<br/>Eseguo la query:".$row; 
$res = mysql_query($row); 
echo "<br/>".$row; 
} 
echo "finito!"; 
echo $res;

if($res && mysql_num_rows($res)>0){
 while($row=mysql_fetch_assoc($res)){
        //echo $row['famiglia']." – ";
        }
} else
     echo "nessun risultato";
	 
	 
?>

Non mi riesce però interpretare il risultato. infatti mi viene stampato "nessun risultato" ma questo non è vero in quanto se eseguito in phpmyadmin ho il risultato.....come posso fare?

l'ultima riga (di una quarantina) di codice sql è: group by Fm3_Cod, Fm3_Des, Art_UniMis;
non so se può essere utile per capire che tipo di risultato sputa fuori


grazie infinite


stampando direttamente $res quello che viene fuori è: Resource id #6
che vuol dire?!?!?!!?!?:eek:
 

alberto.brambilla.35

Nuovo Utente
28 Gen 2014
16
0
1
$res è simile ad un array, devi interpretarlo con mysql_fetch_row(). Ti metto due righe di codice

while($row=mysql_fetch_row($res)){
$campo1=$row[0];
$campo2=$row[1];
....
$campon=$row[n];
}

n dipende dal numero di campi che hai nel risultato della query.
 

liso

Nuovo Utente
18 Mar 2014
10
0
0
Ho provato anche così,
Codice:
while ($row = mysql_fetch_row($res)) {
	echo $row[0];
}


while ($row = mysql_fetch_assoc($res)) {
	echo $row[0] ;
}

	 
while ($row = mysql_fetch_array($res, MYSQL_BOTH)) {
	echo  $row[0];
}

ad intepretare il risultato, ma l'errore è:

Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given in

ma il codice query è corretto, perchè eseguendola in phpmyadmin funziona
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
scusa una cosa che non ho capito, cosa hai dentro il file query.sql?
una serie di select diverse separate da ;
del tipo esempio:
SELECT * FROM ecc_uno...;SELECT * FROM ecc_due...;SELECT * FROM ecc_tre...
?
spiega meglio cosa hai dentro quel file

p.s.
a parte che dovresti passare a mysqli (le istruzioni mysql sono deprecate) le mysql_fetch_assoc o mysql_fetch_array vanno bene.

ps al p.s.
usate i bccode giusti per il codice, per php ultima delle tre iconcine
 

marino51

Utente Attivo
28 Feb 2013
3.160
202
63
Lombardia
concordo con borgo, usi un codice ... diciamo "improprio"
includi la query direttamente senza usare il file
ciao
Marino

PHP:
<?php
mysql_connect("localhost","root",""); 
mysql_select_db("db1"); 

$sql = "select campo1, campo2, campo3";
$sql.= ",campo4 .....";
$sql.= ",campoN .....";
$sql.= " from tabella";
$sql.= " where condizione 1";
$sql.= " and condizione 2";
$sql.= " group by Fm3_Cod, Fm3_Des, Art_UniMis";

echo "<br/>Eseguo la query:".$sql; 
$res = mysql_query($sql);
var_dump($res);

if($res && mysql_num_rows($res)>0){
  while($row=mysql_fetch_assoc($res)){
    //echo $row['famiglia']." – ";
  }
} else
     echo "nessun risultato";
?>
 
Ultima modifica:

liso

Nuovo Utente
18 Mar 2014
10
0
0
dentro il file ho 2 select, unite da un UNION...
Codice:
select Fm3_Des as Famiglia, Rmv_Art as Codice, Art_Des as Descrizione, Art_DesUlt as Descrizione_Ulteriore, Art_UniMis,
      ...
 where Fm3_Cod = @Filtro_Fm3
   ...
 group by Rmv_Art, Art_Des, Art_DesUlt, Art_UniMis
 union
 select Fm3_Des as Famiglia, Fm3_Cod as Codice, "" as Descrizione, "Totale" as Descrizione_Ulteriore, Art_UniMis,
       ...
 where Fm3_Cod = @Filtro_Fm3
   ...
 group by Fm3_Cod, Fm3_Des, Art_UniMis;
 

marino51

Utente Attivo
28 Feb 2013
3.160
202
63
Lombardia
scusa, "cancella" il mio post precedente,

la variabile @Filtro_Fm3 è già presente nel db o viene valorizzata nel testo della query ?
where Fm3_Cod = @Filtro_Fm3

borgo, tu che conosci mysql .....
ciao
Marino
 

liso

Nuovo Utente
18 Mar 2014
10
0
0
Per fare le cose semplici, sto cercando di eseguire solo la prima select,
ho levato il file .sql e riscritto così:

PHP:
$sql = "set @Filtro_Fm3 := 'BR09'"; 
$sql.= "set @Filtro_Dal := '2013-01-01'";
$sql.= "set @Filtro_Al  := '2013-12-31'";
$sql.= "set @Filtro_Ese := 'A13';";


$sql.= "select Fm3_Des as Famiglia, Rmv_Art as Codice, Art_Des as Descrizione, Art_DesUlt as Descrizione_Ulteriore, Art_UniMis,";
$sql.= "       sum(if(Hmv_StaDoc = '1', Rmv_QtaE, 0)) - sum(if(Hmv_StaDoc = '1',Rmv_QtaU,0)) as Totale_Qta_inOrdine,";
$sql.= "       sum(if(Hmv_StaDoc != '1', Rmv_QtaE, 0)) as Totale_Qta_Entrata,";
$sql.= "       sum(if(Hmv_StaDoc != '1', Rmv_QtaU, 0)) as Totale_Qta_Uscita,";
$sql.= "       sum(if(Hmv_StaDoc != '1', Rmv_QtaE, 0)) - sum(if(Hmv_StaDoc != '1',Rmv_QtaU,0)) as Totale_Qta_inGiacenza,";
$sql.= "       sum(Rmv_QtaE)-sum(Rmv_QtaU) as Totale_Qta_Disponibile       ";
$sql.= "  from (((m_Rmv  ";
$sql.= "  left join m_Hmv on m_Hmv.Hmv_IdeHea = m_Rmv.Rmv_IdeHmv)  ";
$sql.= "  left join q_Art on q_Art.Art_Cod = m_Rmv.Rmv_Art)  ";
$sql.= "  left join r_Fm3 on r_Fm3.Fm3_Cod = q_Art.Art_Fm3) ";
$sql.= " where Fm3_Cod = @Filtro_Fm3";
$sql.= "   and Hmv_MagDat >= @Filtro_Dal  ";
$sql.= "   and Hmv_MagDat <= @Filtro_Al  ";
$sql.= "   and Rmv_EseCon = @Filtro_Ese  ";
$sql.= "   and Rmv_MovMag in ('G','D')  ";
$sql.= " group by Rmv_Art, Art_Des, Art_DesUlt, Art_UniMis";


 
 
$res = mysql_query($sql);
echo "<br/>Eseguo la query:".$sql; 


var_dump($res);


while ($row = mysql_fetch_row($res)) {
	echo $row[0];
}


while ($row = mysql_fetch_assoc($res)) {
	echo $row[0] ;
}

niente da fare, il risultato è:
Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given
queste 20 righe postate su phpmyadmin invece producono 3 righe di risultati
 

marino51

Utente Attivo
28 Feb 2013
3.160
202
63
Lombardia
il problema sta nelle variabili @....
se vuoi una soluzione rapida, sostituisci le variabili nella query con i relativi valori
altrimenti credo ... borgo
ti deve spiegare come gestire query con variabili in mysql
ciao
Marino
 

liso

Nuovo Utente
18 Mar 2014
10
0
0
PERFETTO!!! adesso qualcosa vedo....grazie mille non so come ringraziarvi!
per le variabili provo a studiarci un pò da solo...nel caso non dovessi trovare nulla tornerò a disturbarvi sul forum!


grazie mille davvero
 

liso

Nuovo Utente
18 Mar 2014
10
0
0
PERFETTO!!! adesso qualcosa vedo....grazie mille non so come ringraziarvi!
per le variabili provo a studiarci un pò da solo...nel caso non dovessi trovare nulla tornerò a disturbarvi sul forum!


grazie mille davvero
 
Discussioni simili
Autore Titolo Forum Risposte Data
L PHP e recupero risultati da query PHP 2
S [PHP] Recupero nome immagine da Form con input file PHP 3
bubino8 [PHP] Recupero id autoincrement PHP 8
S [PHP] form con metodo get e recupero id PHP 4
Emix [PHP] Check - Select e recupero variabili PHP 40
bubino8 [PHP] Recupero input senza invio PHP 1
U [PHP] Selezione con menu a tendina e recupero selezione PHP 5
L Problema con recupero dati in PHP cURL e JAVA con server PHP 1
S [PHP] Recupero più dati da form realizzata ciclo FOR PHP 5
P [PHP] Recupero dati da un array PHP 5
Alessio Gebbia [PHP] Recupero dati da un WHILE ! PHP 3
I Recupero numero file uploadati php PHP 1
F errori sul recupero dati mysql e php PHP 3
T Problema recupero dati da file [era: help script php] PHP 9
L [PHP/MYSQL] Recupero campo USER e visualizzarlo nella tabella pagine PHP 13
A Accesso e recupero informazioni su db mysql e 2 tabelle. Php lento nell'esecuzione. PHP 5
L [PHP] Recupero valore dopo il submit PHP 1
M Recupero dati da pagina php PHP 2
P recupero variabile e invio a php Flash 5
C Wp-admin a file php WordPress 3
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
csi Inviare file jpg in locale alla stampante con php PHP 0
M Passaggio variabili array php su un tasto jq PHP 3
E Php aggiornamento tabella PHP 9
G phpmailer e php 8.1 con estensione mysqli PHP 6
M Invio dati database via email php PHP 0
K [php] Problema con inner join PHP 4
K [php]form invio dati PHP 0
P Codifica caratteri speciali mysql php PHP 0
K [PHP] Problema con variabili concatenate. PHP 1
E Stampante termica escpos-php PHP 6
JeiMax Modifica codice php personalizzato PHP 2
G Come modificare un pdf in php PHP 1
U Link a doppio file PHP PHP 0
E PHP & jQuery PHP 8
N Passare array da php a javascript PHP 5
F Applicazione PHP/MySQL per prenotazioni: limitare il numero massimo di posti prenotabili PHP 20
L tipo boolean non funzionante su mariadb (mysql). E codice php 7.4. PHP 0
U PHP creare un file excel dopo ricerca nel DB PHP 0
M PHP/MySQL - Estrarre valori min e max di ogni gruppo PHP 5
F Php e fatturazione elettronica PHP 0
P lanciare script asp (o php) da jquery Javascript 1
Couting95 inserire dati da un file di testo in una tabella in php PHP 1
P Data scraping in PHP non funziona PHP 4
C Calcoli matematici in php PHP 5
F Scrivere dei dati in word con php PHP 0
D PHP leggere cartella di Windows PHP 1
I dominio aruba versione php server linux Domini 3
G Colorare menu select attraverso ricerca php PHP 0
L PHP motore di ricerca nel sito PHP 1

Discussioni simili