info:3dimarraylime.php

Un script pour faire un loop sur 3 arrays php, avec du mysql

exemeple: ici pour renvoyer un message d'information suite à un limesurvey qui vise à s'inscrire à un séminaire pour lequel le nombre de place est limité - l'utilisateur inscrivant lui-même le nombre de places, le script suivant (url de sortie) calcule s'il a dépassé le nombre de places lors de son inscription.

<!DOCTYPE html 
     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>Confirmation</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<?
error_reporting(E_ALL ^ E_NOTICE); //tests
/* var passed by lime */
$id=$_GET['var1'];
$sid=$_GET['var3'];
/* var to adapt */
/* nb of places by workshop*/
$nbplaces=25;
#$mailto="su@admin.org"; //test
$mailto="admin@admin.org"; //prod
$mailsubject="Tentative d'inscription infructeuse seminaire XXX";
$mailbody="Tentative d'inscription infructeuse pour: https://[limesurvey_url]/admin/admin.php?action=browse&sid=".$sid ."&subaction=id&id=".$id;
$ko="Malheureusement, la limite des " .$nbplaces ." personnes est dépassée. Veuillez s'il vous plait essayer de vous inscrire à une autre date.
En cas de problème, écrivez un e-mail à <a href=\"mailto:" .$mailto."\">" .$mailto."</a>";

/* arrays with items */
/*limesurveys id*/
$quiz=array(
"123",
"456",
"789"
);
/*dates*/
$quizlib=array(
"Vendredi 18 avril &agrave; 18h",
"Vendredi 18 avril 20h",
"Samedi 19 avril &agrave; 14h",

);
/*limesurvey answers*/
$quizanswer=array(
"123X3303X24965",
"456X3323X25163",
"789X3324X25169",
);

/*
#tests
echo "Total quiz id: " .count($quiz) ."<br>";
echo "Total quizlib: " .count($quizlib) ."<br>";
echo "Total quizansw: " .count($quizanswer) ."<br>";
*/
if(count($quiz)!=count($quizanswer)||count($quiz)!=count($quizlib)||count($quizanswer)!=count($quizlib)) {
	echo "Bug on arrays count! Check"; exit;
}


#connect to database
include("connect.inc.php");
$db=connect_db();
$db_name=db_name();
mysql_select_db($db_name,$db);

#loop on arrays
for($i=0;$i<count($quiz);$i++) {
	$sql="
		SELECT id, SUM(".$quizanswer[$i] .") AS total
		FROM `lime_survey_" .$quiz[$i] ."` ORDER BY id DESC
	";
	$sql2=mysql_query($sql);
	if(!$sql2) {
		echo mysql_error(); exit;
	}
	$sql2=mysql_result($sql2,0,'total');
		if($sql2>=$nbplaces) {
		echo $ko; 
			mail($mailto,$mailsubject,$mailbody); //send notification to admin
		exit;
		}
		/*
		#tests
	echo "Quiz id: " .$quiz[$i]."<br>";
	echo $quizlib[$i]."<br>";
	echo "SQL:<br>".$sql."<br>";
	echo "Total places:<br>".$sql2."";
	echo "<hr>";*/
}

?>
<p>
Merci de votre inscription!<br />
<br />
Nous vous donnons donc rendez-vous le...<br />
<br />
Si vous avez des questions, n'hésitez pas à prendre contact avec ADMIN ou par e-mail à <a href="mailto:<? echo $mailto; ?>"><? echo $mailto; ?></a><br />
</p>
</pre>
 </body>
 </html>
  • info/3dimarraylime.php.txt
  • Dernière modification : 2018/07/18 09:45
  • de radeff