Les Allergies
Alimentaires
Posez votre question Signaler

PERL boucle infini [Résolu]

Arasutoru-sama 31Messages postés 19 décembre 2009Date d'inscription 21 mai 2010Dernière intervention - Dernière réponse le 19 mai 2010 à 15:24
Bonjour,
j'ai une boucle "while" qui comme dit dans le titre est infini, j'aimerai l'utiliser pour afficher le résultat de ma requête SQL.
Voici le code :
my $dbh = DBI->connect( "dbi:mysql:dbname=$BaseDeDonnees;host=$NomHote;",  
                           $login, $MotDePass )  
                  or die "Connection impossible à la base de donnees $BaseDeDonnees !";  
   
my $lpriv = $dbh->prepare("SELECT nom, link, EPI FROM chizu_link WHERE chizu_link.nom = '$params[0]' OR chizu_link.idani = '$params[0]'ms[1]'");  
      $lpriv->execute() or die "Echec requete\n";                    
     while(@priv = $dbh->selectrow_array($lpriv))  
     {  
          $conn->privmsg($event->{'nick'}, "$priv[0] $priv[2] : $priv[1]");  
       $conn->print("<$nick>\t| $priv[0] $priv[2] : $priv[1]");  
     }  
$dbh->disconnect();

En PHP je n'ai jamais eu de soucis avec mes boucles.
J'utilise la dernières version du module DBI et DBD::Mysql .
Lire la suite 

PERL boucle infini »

2 réponses
Réponse
+0
moins plus
Hum ...
J'enlèverai l'@ de
 @priv = $dbh->selectrow_array
Ajouter un commentaire
Réponse
+0
moins plus
je viens d'essayer si j'enlève le "@" de "@priv = $dbh->selectrow_array", PERL génère une erreur de plus j'avais oublié de remettre le "my" devant "@priv..." sans il ne compile pas.

Je viens de trouver la solution. Voici le code de la boucle :

while(my @priv = $lpriv->fetchrow_array)
{
  $conn->privmsg($event->{'nick'}, "$priv[0] $priv[2] : $priv[1]");
  $conn->print("<$nick>\t| $priv[0] $priv[2] : $priv[1]");
}
Ajouter un commentaire
Ce document intitulé « PERL boucle infini » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?