Bonjour à tous ,
étant nouveau sur le forum et débutant en informatique, je me permet de vous demander de l'aide par rapport à mon programme ^^ .
J'ai un site et une base de donnée , le client commande sur le site et le serveur envoi les commandes aux différents clients .
En faite j'ai fait un client serveur sous QT, j'arrive à envoyer les requêtes aux clients,du coté des clients, il n'y a aucun souci, ca marche, ils recoivent parfaitement les informations une à une. Mais lorsque le serveur envoie la requête , il affiche uniquement la dernière commande de la base de donnée sur l'ihm du serveur. Ce que je voudrai c'est qu'il affiche la première commande à envoyer ensuite la deuxième, après la troisième ...
J'espére que vous avez compris , j'ai un peu de mal à expliquer ^^ .
Voici un bout de mon code ou le problème se pose :
QString messagerecu;
in >> messagerecu;
message2->append(messagerecu);
if( messagerecu == "macommande" )
{
QSqlDatabase db ( QSqlDatabase::addDatabase("QMYSQL" ));
db.setHostName("localhost" );
db.setDatabaseName("e-commerce" );
db.setUserName("root" );
db.setPassword("" );
QString idcommande;
QString produit;
QString client;
QString qtemax;
QString qte;
db.open();
QSqlQuery query("SELECT *from commande ORDER BY idcommande ASC " );
while(query.next())
{
idcommande = query.value(0).toString();
produit =query.value(1).toString();
client=query.value(2).toString();
qtemax=query.value(3).toString();
qte=query.value(5).toString();
messageAEnvoyer ="$"+idcommande+"+"+client+"+"+produit+"+"+qtemax+"+"+qte+"$";
QByteArray paquetsend;
QDataStream out(&paquetsend, QIODevice::WriteOnly);
out << (quint16) 0;
out << messageAEnvoyer;
out.device()->seek(0);
out << (quint16) (paquetsend.size() - sizeof(quint16));
clients[0]->write(paquetsend); // On envoie le paquet
}
message2->append(tr("Message envoyer! Serveur" )+":$" +messageAEnvoyer+"$" );
Merci et bonne soirée