Visualizzazione dei risultati da 1 a 6 su 6

Discussione: foreach

  1. #1

    foreach

    ciao,

    ho questo codice che mi legge tutte le righe presenti nel file e mi crea tante query sql quante sono le righe stesse.

    codice:
    <?php
    
    include("dbconnect.php");
    
    $filename = file("agg-dati.sql");
    foreach($filename as $valore)
    {
    $select = mysql_query($valore) or die(mysql_error());
    
    } 
    
    ?>
    il problema è che potrebbero esserci degli errori in qualche riga. in questo caso anzichè bloccare l'esecuzione, vorrei che in ogni caso portasse a termine il ciclo e magari visualizzare un eventuale numero di righe non eseguite...
    come posso fare?

    grazie mille

  2. #2
    è solo un'idea, non l'ho provato
    però prova a vedere se fa al caso tuo:

    codice:
    include("dbconnect.php");
    $err="";
    
    $filename = file("agg-dati.sql");
    foreach($filename as $valore)
    {
    	$select = $valore;
    	if (!mysql_query($select)){
    		$err.="
    \n".$valore.": ".mysql_error();
    		continue();
    	}
    }
    
    echo "Lista errori: {$err}";





    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141
    può andare una cosa del genere?
    Crea un array con le query errate...( sinc non l'ho provata,quindi mi scuso se ci sono errori).
    Per avere il totale di queste basta che fai count($arrError);

    Codice PHP:
    <?php

    include("dbconnect.php");

    $filename file("agg-dati.sql");
    $err 0;
    foreach(
    $filename as $valore)
    {
     if(!
    mysql_query($valore))
      {    
        
    $arrError[$err] = $valore
        
    $err++;
      }



    ?>
    scusa 13manuel84, mi sono accorto solo dopo aver postato che avevi già risposto tu...

  4. #4
    Originariamente inviato da ken84
    ...
    scusa 13manuel84, mi sono accorto solo dopo aver postato che avevi già risposto tu...
    no problem figurati


    anche perché abbiamo postato due soluzioni differenti


    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  5. #5
    codice:
    <?php
    
    include("dbconnect2.php");
    
    $err="";
    
    $filename = file("agg-dati.sql");
    foreach($filename as $valore)
    {
    	$select = $valore;
    	if (!mysql_query($select)){
    		$err.="
    \n ".$valore." : ".mysql_error();
    		continue;
    	}
    }
    
    echo "Lista errori: {$err}";
    ?>
    così sembra andare bene...

    grazie ad entrambi cmq


    @13manuel84:

    perchè hai messo

    codice:
    $select = $valore;
    ?

    l'ho tolto mettendo direttamente

    codice:
    if (!mysql_query($valore)){

  6. #6
    Originariamente inviato da blur
    ...

    @13manuel84:

    perchè hai messo

    codice:
    $select = $valore;
    ?

    l'ho tolto mettendo direttamente

    codice:
    if (!mysql_query($valore)){
    si si non cambia nulla, è che io sono abiutuato prima a dichiarare la query che andrò ad eseguire e a passare quella alla funzione mysql_query e d'istinto ho fatto la stessa cosa pure qui, anche se in questo caso la query sta già dentro alla variabile $valore ed io, quindi, ho fatto un passaggio inutile
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

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.