Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 20 su 20

Discussione: query complessa

  1. #11
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    ciao piero.mac, forse ho copiato male ma l'errore è questo
    codice:
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1
    codice:
    <?php
    require_once('../Connections/conf.inc.php');
    
    if(!empty($_GET['id']))
        {
    
            $id = $_GET['id'];
    		$arr = explode('|',$id);  
    		foreach ($arr as $k => $v) {  
    		  if ( is_numeric( $v ) ) 
    		    { 
    		      $arr[$k] = "'$v'";  
    		    } 
    		}  
    		$id = implode(',',$arr);  
    
    	foreach($arr as $id) {
    		
    		mysql_select_db($conn);
    		$query_Recordset1 = "select * from scarico where ID in ($id)";
    		$Recordset1 = mysql_query($query_Recordset1, $conn) or die(mysql_error());
    		$totalRows_Recordset1 = mysql_num_rows($Recordset1);
    
    		$row_Recordset1 = mysql_fetch_assoc($Recordset1);
    
    		$capacita = $row_Recordset1['capacita'];
            $fornitore = $row_Recordset1['fornitore'];
            $prodotto = $row_Recordset1['prodotto'];
            $descrizione = $row_Recordset1['descrizione'];
    		$quantita = $row_Recordset1['quantita'];
    		$prezzo = $row_Recordset1['prezzo'];
    		$categoria = $row_Recordset1['categoria'];
    		$riferimento = $row_Recordset1['riferimento'];
    		$marca = $row_Recordset1['marca'];
    		$codice = $row_Recordset1['codice'];
            $datacarico = $row_Recordset1['datascarico'];
            $idreparto = $row_Recordset1['idreparto'];
            $residuo = "0";
            $scarico = $row_Recordset1['residuo'];
            $datascarico = $row_Recordset1['datascarico'];
    		
    		echo $capacita;
    		$query = mysql_query($row_Recordset1);	
    
            $query =  "INSERT INTO scarico (fornitore, prodotto, descrizione, quantita,prezzo,categoria,capacita,riferimento,codice,marca,datacarico,idreparto,residuo,scarico,datascarico)
                        VALUES ('$fornitore', '$prodotto', '$descrizione','$quantita','$prezzo','$categoria','$capacita','$riferimento','$codice','$marca','$datacarico','$idreparto','$residuo','$scarico','$datascarico')";
    
    	  $result=mysql_query($query);
    
    	  if(!$result) {
    
    		    echo "errore sulla query :".$query."
    ";
    
    		    echo mysql_error();
    
    		  }
    
    	
    
    	}
    
    }
    ?>

  2. #12
    Non ho capito bene il giro del fumo su quel foreach... sopratutto questo:

    $arr[$k] = "'$v'";

    perche' doppi apici e apici...

    comunque sia tu stampati la query e vedendo quello che contiene magari risolvi pure da sola...

    echo $query_Recordset1;

    ovviamente "prima" di mysql_query....


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #13
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    mm..


    allora ho fatto come hai detto
    e ho apportato le mmodifiche
    codice:
    $arr[$k] = "$v";  
    .....
    $query_Recordset1 = "select * from scarico where ID = $id";
    echo $query_Recordset1;
    solo che cmq mi viene fuori cosi
    codice:
    select * from scarico where ID = 192select * from scarico where ID = You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
    credo dipenda dal come passo il valore, ma come potrei risolvere
    codice:
    script/file.php?id=192|

    :master:

    Grazie mille

  4. #14
    Guarda che non ho letto tutto il thread... si evolve man mano e non ci capisco un belino.

    Domande:

    cosa contiene $_GET[id] ?
    presumo un id .. e allora che esplodi?

    mi sembra un castello fatato piu' che un algoritmo....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #15
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    io passo una stringa del genere
    codice:
    script/file.php?id=548|547|64|498|499|500|501|502|
    ogni numero corrisponde ad un ID nella tabella io devo inserire una nuova riga nella stessa tabella cambiando due valori

    quindi prima li esplodo in modo da ricavare un'array con tutti gli id separati poi prendo l'id cerco nel database e inserisco una nuova riga con tutti i valori uguali a quelli dell'id tranne che per due

    spero di essere stata chiara, grazie mille per la disponibilità


  6. #16
    si adesso e' piu chiaro.

    Allora non puoi usare IN($id) ma devi eseguire una query per ogni id estratto. Mi manca ancora la comprensione di quello che vuoi ottenere. Perche cerchi un id e poi duplichi il record?

    Se e' solo per modificare un valore fai un update... che te ne fai di record duplicati?

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #17
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    Originariamente inviato da piero.mac
    Se e' solo per modificare un valore fai un update... che te ne fai di record duplicati?
    e no, non posso semplicemente aggiornare serve per dei conti... se aggiorno sballa uno storico....

    è una cosa molto articolata, pultroppo non posso

  8. #18
    Guarda devi fare una cosa del genere.... ad ogni query fai l'INSERT..
    codice:
    <?php
    $id = "548|547|64|498|499|500|501|502|";
    
          $arr1 = explode('|', $id);
    
    	foreach ($arr1 as $k => $v) {
    	    if (is_numeric($v) )
    	    {
         	    $query_Recordset1 = "select * from scarico where ID = $v";
    
                echo $query_Recordset1."
    ";    // test per la query
                // altro codice
                // query insert
                //fine if
                }
            } // fine foreach
    ?>
    puoi provare questo script, dovrebbe essere funzionante..

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #19
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    sembra funzionare

    codice:
    <?php
    require_once('../Connections/conf.inc.php');
    if(!empty($_GET['id']))
        {
    
    	$id = $_GET['id'];
          $arr1 = explode('|', $id);
    
    	foreach ($arr1 as $k => $v) {
    	    if (is_numeric($v) )
    	    {
         	    mysql_select_db($conn);
    			$query_Recordset1 = "select * from scarico where ID = $v";
    
                echo $query_Recordset1."
    ";    // test per la query
    		$Recordset1 = mysql_query($query_Recordset1, $conn) or die(mysql_error());
    		$totalRows_Recordset1 = mysql_num_rows($Recordset1);
    
    		$row_Recordset1 = mysql_fetch_assoc($Recordset1);
    
    		$capacita = $row_Recordset1['capacita'];
            $fornitore = $row_Recordset1['fornitore'];
            $prodotto = $row_Recordset1['prodotto'];
            $descrizione = $row_Recordset1['descrizione'];
    		$quantita = $row_Recordset1['quantita'];
    		$prezzo = $row_Recordset1['prezzo'];
    		$categoria = $row_Recordset1['categoria'];
    		$riferimento = $row_Recordset1['riferimento'];
    		$marca = $row_Recordset1['marca'];
    		$codice = $row_Recordset1['codice'];
            $datacarico = $row_Recordset1['datascarico'];
            $idreparto = $row_Recordset1['idreparto'];
            $residuo = "0";
            $scarico = $row_Recordset1['residuo'];
            $datascarico = $row_Recordset1['datascarico'];
    		
    		echo $capacita;
    		$query = mysql_query($row_Recordset1);	
    
            $query =  "INSERT INTO scarico (fornitore, prodotto, descrizione, quantita,prezzo,categoria,capacita,riferimento,codice,marca,datacarico,idreparto,residuo,scarico,datascarico)
                        VALUES ('$fornitore', '$prodotto', '$descrizione','$quantita','$prezzo','$categoria','$capacita','$riferimento','$codice','$marca','$datacarico','$idreparto','$residuo','$scarico','$datascarico')";
    
    	  $result=mysql_query($query);
    
                //fine if
                }
            } // fine foreach
    }
    ?>
    domani faccio delle prove piu serie grazie mille

  10. #20
    la selezione del db lasciala fuori dal ciclo . e' inutile ripeterla n volte...


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.