Array?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Array?

par Albat90 » 07 févr. 2007, 18:21

Oui c'est pensable, en même temps c'est une conversion excel.
Peut etre que celui qui l'a fais est un accro au dollars, il voit son argent dans le $ de ses tarifs :P...
Bon le principale, c'est que ça marche ;)

En tout cas, j'ai au moin bossé sur un truc innovant :D, un dollars à la fin d'une table 8-) ...

par albat » 07 févr. 2007, 17:48

Le nom de cette table me paraît étrange parce qu'il n'est pas courant
d'utiliser le symbole $ en position finale d'un identifiant.

On sait qu'en début, il désigne une variable, mais en fin, c'est du jamais vu.
Maintenant, si ça marche... Pourquoi pas ?

Peut-être que celui qui a créé la base est un ancien accro au BASIC... ;)

Je me souviens, sur mon Commodore 64... :roll:

Code : Tout sélectionner

10 REM ---- Fond noir ---- 20 POKE 53280,0 30 REM ---- texte blanc ---- 40 POKE 53281,15 50 A$ = "Hello, World !" 60 FOR A = 1 TO 20 STEP 2 70 PRINT A$ 80 NEXT A 90 GOTO 60

par Albat90 » 07 févr. 2007, 16:41

Je ne comprend pas pourquoi tu dis ça Albat???
Tu peux m'éclairer???
Oui je sais c'est un peu bizarre comme nom de table mais bon, je ne peux rien y faire, mon patron ma filer la base de données, il m'a dis tu n'y touche pas et tu me fais un système de commande avec selection multiple puis tu met un système de panier.
Bon ça va, jusqu'à maintenant, j'ai tirer pas mal de mon stage mais faut dire que j'essaye de trouver une solution pour les paniers et je cale un peu.

Merci de vos réponse ;)

par Maitrepylos » 07 févr. 2007, 10:49

Y a des fois, j'ai l'impression de parler tout seul dans le désert ...

ON SORT LES VARIABLES DES CHAÎNES DE CARACTÈRES !!! |*()
Heu :oops: désolé, j'ai pas fait attention, je me suis contenté du DISTINCT

par albat » 07 févr. 2007, 10:46

Y a des fois, j'ai l'impression de parler tout seul dans le désert ...

ON SORT LES VARIABLES DES CHAÎNES DE CARACTÈRES !!! |*()
$Base = "SELECT DISTINCT(Marques), autreChamp, autresChamps FROM tarif$ WHERE Marques = '".$form1."'";
Et puis tarif$, c'est un peu curieux comme nom de table, non ?... :-k

par Albat90 » 07 févr. 2007, 10:26

Merci pour ta réponse, ça marche du tonnerre XD...
A dire que je cherche depuis trois ou quatre jour un moyen et c'était aussi simple que ça :D

Bon je dois faire un système de cadie maintenant.

Je vous remerci de m'avoir répondu ;)

par Maitrepylos » 06 févr. 2007, 14:51

Et comme ceci
$Base = "SELECT DISTINCT(Marques),autreChamp,autesChamp FROM tarif$ WHERE Marques = '$form1'"; 

par Albat90 » 06 févr. 2007, 13:00

Bon il me semble que j'ai trouvé une solution qui en n'est pas une :?...

Voila mon code :
<?php
@$form1 = $_GET['type'];
$_GET['type'] = $form1;
@$form2 = $_GET['cartouche'];
$_GET['cartouche'] = $form2;
$based = "localhost";
$admin = "root";
$password = "";
$bdd = "base";
$connect = mysql_connect($based,$admin,$password);
mysql_select_db($bdd, $connect) or die("Impossible de se connecter");
echo '<div class="menu">
<form id="menuselect1" action="'.$_SERVER['PHP_SELF'].'" method="get"> 
<div align="center">
<select name="type" method="GET" onchange="document.forms[\'menuselect1\'].submit()"> ';
$base = "SELECT DISTINCT Types FROM tarif$";
$req = mysql_query($base) or die('Erreur SQL !'.$sql.''.mysql_error());
echo '<option selected="selected">'.$form1.'</option>';
while($data = mysql_fetch_array($req)){
echo '<option>'.$data['Types'].'</option>';
}
echo '</select>
<noscript><input type="submit" name="ok" value="ok" /></noscript>';
if ($form1 == "") {
die();
}
else {
	echo '<div class="menu">
	<div align="center">
	<select name="cartouche" method="GET" onchange="document.forms[\'menuselect1\'].submit()"> '; 
	$base2 = "SELECT * FROM tarif$ WHERE Types = '$form1'";
	$req2 = mysql_query($base2) or die('Erreur SQL !'.$sql.''.mysql_error());
	echo '<option selected="selected">'.$form2.'</option>';
	while($data2 = mysql_fetch_array($req2)){
	$tab[] = $data2['Marques'];
	}
	$i = 0;
	$tab2 = array_unique($tab);
	while(array($tab2)) {
	if ($tab2[$i] == ""){
	$i++;
	}
	else {
	echo '<option>'.$tab2[$i].'</option>';
	$i++;
	}
	}
	echo '</select>
	<noscript><input type="submit" name="ok" value="ok" /></noscript>';
		if ($form2 == "") {
		die();
		}
		else{
		echo '<div class="menu">
		<div align="center">
		<select>';
		$base3 = "SELECT * FROM tarif$ WHERE Marques = '$form2'";
		$req3 = mysql_query($base3) or die('Erreur SQL !'.$sql.''.mysql_error());
		while($data3 = mysql_fetch_array($req3)){
		echo '<option>'.$data3['Références Machines'].'</option>';
		}
		echo '</select>
		</form>';
		}
}
?>
Et voila la partie concerner pour eviter les doublons :
$base2 = "SELECT * FROM tarif$ WHERE Types = '$form1'";
	$req2 = mysql_query($base2) or die('Erreur SQL !'.$sql.''.mysql_error());
	echo '<option selected="selected">'.$form2.'</option>';
	while($data2 = mysql_fetch_array($req2)){
	$tab[] = $data2['Marques'];
	}
	$i = 0;
	$tab2 = array_unique($tab);
	while(array($tab2)) {
	if ($tab2[$i] == ""){
	$i++;
	}
	else {
	echo '<option>'.$tab2[$i].'</option>';
	$i++;
	}
	}
Bon, me demander pas de l'expliquer car c'est en faisant des test que j'ai trouver ça...
Ensuite, la fonction array_unique fonctionne bien, je n'ai plus de doublons mais le script est mauvais je pense car il met bien 3minutes avant d'afficher la page et la suite du script ne fonctionne plus, c'est a dire que le troisième formulaire ne s'affiche plus...

Vous pouvez m'eclairer???

Merci de vos réponse ;)

par Albat90 » 06 févr. 2007, 10:37

Merci pour tes liens je vais y jeter un oeil :D...

Bah pour les doublons direct depuis sql, il faut que j'utilise la commande DISTINCT dans mon SELECT.

Mais le problemes c'est que quand j'écris :
$Base = "SELECT DISTINCT * FROM tarif$ WHERE Marques = '$form1'";
Le DISTINCT ne fonctionne pas vue que ce n'est pas le champs Marques que je veux faire afficher mais le champs à coté qui dépend de Marques.
Et en plus, si je veux faire marcher le DISTINCT, faudrais que je l'ecris comme ça :
$Base = "SELECT DISTINCT Marques = '$form1' FROM tarif$";
Mais même ça, je ne suis même pas sur que ça marche vue qu'il y a une condition...

Donc mon but, c'est de selectionner la marque choisie par l'utilisateur dans $form1 puis de faire afficher toute les reference de cette marque donc moi là j'ai :
echo '<select>';
$base3 = "SELECT * FROM tarif$ WHERE Marques = '$form1'";
$req3 = mysql_query($base3) or die('Erreur SQL !'.$sql.''.mysql_error());
while($data3 = mysql_fetch_array($req3)){
echo '<option>'.$data3['Références Machines'].'</option>';
}
echo '</select>
Mais j'ai des doublons dans Reference Machines :?.
Donc je veux faire intervenir Array_unique sur les resultat de Reference à moin qu'il existe une solution plus simple?

Merci de vos réponses ;).

par ouckileou » 06 févr. 2007, 10:17

suffit de regarder dans la doc des fonctions MySQL si c'est ça que tu utilises : mysql_fetch_array() et mysql_fetch_assoc() permettent de construire des tableaux

Maintenant, pourquoi utiliser array_unique() alors que tu as la possibilité dès la requête SQL de ne pas prendre de doublons ?

Array?

par Albat90 » 06 févr. 2007, 10:14

Bonjour,

Je me pose une question depuis un certain temps et j'espère bien que quelqu'un sait y répondre :D...

Je voulais savoir si c'est possible de passer de :
$Base = "SELECT * FROM tarif$ WHERE Marques = '$form1'";
et mettre le résultat comme ça :
$marques[0] => Canon
$marques[1] => Lexmark
$marques[17] => Abaton
En gros, je veux savoir comment récuperer des informations dans une base puis construire un tableau avec array ^^.

Cela me permettrais ensuite d'effectuer un array_unique...

Merci de vos réponses ;)