Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [SQL] Query dubbia

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    20

    [SQL] Query dubbia

    Buongiorno a tutti,
    sto realizzando un'applicazione per un tirocinio finale ed ho dei problemi credo con il codice sql, per cui vista la poca esperienza vi pongo il seguento dubbio:

    Codice per creare le mie tabelle: [CODE]create table volantino
    ( volantinoid int unsigned not null auto_increment primary key,
    codice char(30) not null,
    nome char(30) not null,
    prezzo_offerta float(6,2),
    reparto int not null,
    dal date not null,
    al date not null,
    note text,
    )


    E questo è il codice php nella mia pagina web, premesso che la sto testando in locale con il sistema wamp:

    codice:
    <?php
    @ $db = mysql_pconnect('localhost', 'root');
    if (!$db)
    	{
    		echo 'Error: Could not connect to database. Please try again later.';		
    		exit;
    	}
    
    $fp=fopen("MioFile.dat", "r");
    while (!feof($fp)) {
    	$riga=(fgets($fp, 82));
    	$codice=substr($riga,3,13);
    	$nome=substr($riga,36,20);
    	$prezzo=(substr($riga,70,8))/100;
    	$reparto=substr($riga,16,4);
    	
    	mysql_select_db('test');
    	$query= "SELECT `prezzo_offerta` FROM `volantino` WHERE codice='$codice'";
        $prezzo_offerta= mysql_query($query);
    	echo $codice;
    	echo $prezzo_offerta;
    }//fine ciclo while
    ?>
    Il mio obiettivo è quello di collegarmi ad un database test, in cui ho le tabelle create secondo il codice che ho inserito. Ho un file di testo, MioFile, da cui prelevare il codice di un prodotto.
    Il mio problema sorge con il valore contenuto in prezzo_offerta, con la echo stampo a schermo il contenuto, ma mentre per il codice il valore è corretto, la query $prezzo_offerta mi da il seguente valore Resource id #4 con il valore al alto di # che cresce in modo incrementale per ogni ciclo while.
    Dove può esserci l'errore?

  2. #2
    Utente di HTML.it L'avatar di Avalox
    Registrato dal
    Nov 2003
    Messaggi
    302
    Ovvio....mysql_query ti restituisce una risorsa, non il risultato numerico della tua query...

    la tua risorsa può contenere una o più tuple, quindi devi risolvere in questo modo:

    codice:
    ... altro codice ...
    $result = mysql_query($query);
    if( ($row = mysql_fetch_row($result)) ) {
      echo $codice;
      echo $row[0];   // $prezzo_offerta = $row[0]
    }
    ho usato if al posto di while perchè la tua query restituisce una riga sola.

    Spero di esserti stato d'aiuto
    ByeZ

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    20
    Capisco, ti ringrazio mi hai dato un aiuto per capirci meglio. Bene, il mio ciclo while serve per leggere dal MioFile, il valore del codice di un prodotto che confrontato con quello della tabella volantino mi dovrebbe dare il valore del prezzo in offerta.Spero di essere chiaro, se volessi inserire il valore del mio prodotto con il relativo prezzo_offerta in un altra tabella, quale può essere il codice visto che devo considerare result una risorsa?

  4. #4
    Utente di HTML.it L'avatar di Avalox
    Registrato dal
    Nov 2003
    Messaggi
    302
    codice:
    ... fatta la query di prima...
    
    $strsql = "
       INSERT INTO tuatabella
       (codice, prezzo_offerta)
       VALUES('$codice','$row[0]')
       ";
    
    mysql_query($strsql) or die("Impossibile inserire il prodotto");
    
    ... altro codice ...
    dopo che hai fatto mysql_fetch_row, $row (in questo caso) contiene una riga del risultato della query...
    Ma hai mai letto il manuale di MySql?

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    20
    No sono alle prime armi e sto consultando un manuale di php con un pò di sql,dove mi consigli di trovarlo un buon manuale di sql?

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.