Insertion en bdd

Eléphant du PHP | 372 Messages

07 janv. 2017, 18:20

Salut tout le monde.
Bon j'essai de créer pour le fun un ptit jeu de Bingo

J'arrive donc à créer mon carton de facon aléatoire et j'aimerais maintenant l'enregistré en bdd.

Sachant que j'ai donc créer une table carton avec les colonnes id, numeros

id étant donc la valeur du carton lui même et numeros doit correspondre à tous les numéros du carton ( exemple : 2,25,18,55... )
<?Php	
function getNum($nbNum,$nbr_minimum,$nbr_maximum,$nbr_de_lignes){
	$i = 1;
	$tabGrille=array();
	while ($i<=$nbNum){
		$carte = rand($nbr_minimum, $nbr_maximum); 
		if($carte > 9){
			$diz = strval($carte);
			$col = $diz{0} + 1;
			$col = "col".$col;
		}
		else
		{
			$col = "col1";
		}
		//On vérifie que le numéro n'a pas déja été tiré.
		if (!isset($tabGrille[$col]) || !in_array($carte, $tabGrille[$col])) {
			//On définie la colonne
 
			//on range le numero dans sa colonne
			if(!isset($tabGrille[$col]) || count($tabGrille[$col])<$nbr_de_lignes){
				$tabGrille[$col][] = $carte;      	 
				$i++;
			}
		}
	}	
	//on trie les colonne
	foreach($tabGrille as $key=>$value){
		sort($tabGrille[$key]);
	}		
	return($tabGrille);
}
 

//nombre de numero à afficher
$nbr_de_numero= 15;
//nombre minimum
$nbr_minimum = 1;
//nombre maximum
$nbr_maximum = 90;
//nombre de numero maximum par colonne
$nbr_de_lignes = 3;
 
//on appel notre fonction
$carton = getNum($nbr_de_numero,$nbr_minimum,$nbr_maximum,$nbr_de_lignes);


?>
<table style="border:1px solid black; border: 2px solid; border-color: #d40b67; border-radius: 3px;">
 
<?Php
//on cherche combien de cilonne il y a
$nbCol = (int)$nbr_maximum / 10;
 
//ligne
for($j = 0; $j < $nbr_de_lignes;$j++)
{
	echo"<tr style='border:1px solid black'>";
	//col
	for( $i = 1;$i <= $nbCol+1;$i++)
	{
		$key = "col".$i;
		echo "<td style='text-align:center;width:60px;height:60px;border:1px solid black;'>";
		if(isset($carton[$key][$j])){echo '<span style=" font-weight:bold">'.$carton[$key][$j].'</span>';}else
		{
		echo '<span style="border-radius:3px; padding: 20px 25px; background: #d40b67;">.</span>';
		}
		echo "</td>";
	}
	echo"</tr>";
}

?>
</table>
<br>

<form method="POST">
	<input type="text" name="id_carton" hidden="">
    <input type="text" name="numeros_carton" hidden="">
	<input class="ajt_carton" type="submit" value="AJOUTER CE CARTON">
</form>
Je cherche donc à faire une insertion en bdd mais avec les numeros biensur

Eléphant du PHP | 337 Messages

09 janv. 2017, 02:43

J'ai lu en diagonale, mais si j'ai tout bien compris ce que tu veux faire, et étant donné que la suite de numéros est une variable array, le plus simple serait de transformer ton array en json.

Un petit coup de json_encode($variable), on l'inscrit dans la base.
Puis, pour la récupérer : json_decode($valeur_de_la_base, TRUE)

Voir les fonctions :
- http://php.net/manual/fr/function.json-encode.php
- http://php.net/manual/fr/function.json-decode.php

Attention, ça doit être de l'UTF-8 pour bien fonctionner, et il ne faut pas oublier le TRUE dans json_decode, sous peine de récupérer un objet.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

09 janv. 2017, 14:24

salut,

c'est pas clair ton histoire. tu veux faire un insert into carton(id, numero) values(xxx,yyyy); ?

c'est relativement simple, qu'est ce que tu veux faire ?

@fifine : insérer des données structurée dans une champs de base de données c'est pas une bonne idée, sauf si tu ne t'en sert pas, mais si tu as besoin d'une recherche dessus c'est foutu. on utilise des SGBD autant le faire complètement XD

parce que la une fois que les numéro sont tiré et mis en base le but est p'tet d'avoir un générateur qui réalise le tirage et pour cela il faut connaitre les numéros déjà "tiré" (select distinct des numéro, le tout dans un table un rand sur les clefs et op on a fait la chose ;) ).

@+
Il en faut peu pour être heureux ......