Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di eraclito
    Registrato dal
    May 2002
    Messaggi
    1,273

    ciclo while dentro foreach. ho esagerato?

    ciao a tutti.

    nella parte gestionale di un sito permetto di duplicare n. record limitandomi a cambiare un parametro.
    Fatto questo duplico anche le eevntuali immagini collegate.

    lo script è così:

    codice:
    foreach ($n_record as $id)
    	{
    	$result= mysql_query ("select * from tabella where id=$id"); 
    	while ($rig = mysql_fetch_array ($result))
    		{
    		$inserimento="INSERT INTO inserzioni ( campi) 
    					VALUES (valori ricavati dal cilo while)";	
    mysql_query ($inserimento) or die ("errore 1");
    $nuovo_id=mysql_insert_id();
    if (file_exists($uploaddir.$id."_1.jpg")) {copy($uploaddir.$id."_1.jpg", $uploaddir.$nuovo_id."_1.jpg");}
    if (file_exists($uploaddir.$id."_2.jpg")) {copy($uploaddir.$id."_1.jpg", $uploaddir.$nuovo_id."_2.jpg");}
    		}
    	}
    se seleziono un numero basso di record (una decina) tutto funge,

    ma se aumento il numero ad un certo punto siblocca e da errore 1 (quindi errore della query)

    Può essere un problema di carico eccessivo?
    e sapete dirmi se lo script può essere ottimizzato?

    eraclito
    L'apprendere molte cose non insegna l'intelligenza
    Voglio avere dubbi più chiari

  2. #2
    where id = $id presume l'estrazione di un solo record e quindi e' inutile il ciclo while.

    Invece di or die ("errore 1"); prova a mettere or die(mysql_error()); cosi' sai esattamente di che errore si tratta.


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

  3. #3
    Utente di HTML.it L'avatar di eraclito
    Registrato dal
    May 2002
    Messaggi
    1,273
    hai ragione, ma se so che ho solo una riga, come faccio ad estrarre i valori senza il ciclo while?
    L'apprendere molte cose non insegna l'intelligenza
    Voglio avere dubbi più chiari

  4. #4
    Toglilo... con le sue parentesi graffe.
    codice:
    $result= mysql_query ("select * from tabella where id=$id"); 
    
    	 $rig = mysql_fetch_array ($result);
    		
    	 $inserimento="INSERT INTO ......


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

  5. #5
    Utente di HTML.it L'avatar di eraclito
    Registrato dal
    May 2002
    Messaggi
    1,273
    meglio, ho alzato un po' il numero di record...

    ma mi sembra che la cosa più probelmatica sia duplicatre le immagini...

    è possibile ottimizzare quella parte o devo limitare il numero di recor che vengono duplicati??
    L'apprendere molte cose non insegna l'intelligenza
    Voglio avere dubbi più chiari

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.