par
topvision » 22 nov. 2015, 03:21
Excuse pour le retard c’est juste que j’ai perdu ma tablette sur laquelle je me connectais. Oui il ya une colonne idnote(PRIMARY KEY) qui sert d’identifiant, mais l’utilisateur n’est pas censé le savoir comme je l’avais montre sur ma première requête pour le update, il faut une combinaison de $idelevenote et $matierenote pour l’identifier.
En fait je me suis pris autrement en recherchant l’idnote pour faire un update si ca existe déjà dans la base et de faire une insersion s’il y’en a pas. Le voici
<?php
include('fonctions.inc.php');
if(isset($_POST["submit"]))
{
$file = $_FILES['file']['tmp_name'];
$handle = fopen($file, "r");
$c = 0;
while(($filesop = fgetcsv($handle, 1024, ";")) !== false)
{
{
$req= mysql_query("select * FROM note where idelevenote='".$filesop[0]."' and matierenote='".$filesop[1]."' ");
if(mysql_num_rows($req)>0)
{
$id=mysql_fetch_array($req);
$idnote=$id['idnote'];
$idelevenote=$filesop[0];
$matierenote=$filesop[1];
$note1=$filesop[2];
$note2=$filesop[3];
$note3=$filesop[4];
$compo1=$filesop[5];
$trim1=$filesop[6];
$note4=$filesop[7];
$note5=$filesop[8];
$note6=$filesop[9];
$compo2=$filesop[10];
$trim2=$filesop[11];
$sql="UPDATE note SET note1='".
$note1."', note2='".$note2."', note3='".$note3."',compo1='".$compo1."', trim1='".$trim1."', note4='".
$note4."', note5='".$note5."', note6='".$note6."', compo2='".$compo2."', trim2='".$trim2."'
WHERE idelevenote='".$idelevenote."' AND matierenote='".$matierenote."' ";
if($result=mysql_query($sql))
{
echo "<script language='javascript'>";
echo "alert('Note mise a jour');";
echo "window.location.replace('../admin/note.php');" ;
echo "</script>";
}
else
{
echo "<script language='javascript'>";
echo "alert('Insersion echoue');";
echo "window.location.replace('../admin/note.php');" ;
echo "</script>";
}
}
else
{
$idelevenote=$filesop[0];
$matierenote=$filesop[1];
$note1=$filesop[2];
$note2=$filesop[3];
$note3=$filesop[4];
$compo1=$filesop[5];
$trim1=$filesop[6];
$note4=$filesop[7];
$note5=$filesop[8];
$note6=$filesop[9];
$compo2=$filesop[10];
$trim2=$filesop[11];
$sql="INSERT INTO note VALUES ('','$idelevenote','$matierenote','$note1','$note2', '$note3','$compo1','$trim1',
'$note4','$note5','$note6','$compo2','$trim2')";
if($result=mysql_query($sql))
{
echo "<script language='javascript'>";
echo "alert('Note Inserer');";
echo "window.location.replace('../admin/note.php');" ;
echo "</script>";
}
else
{
echo "<script language='javascript'>";
echo "alert('Echec Insersion');";
echo "window.location.replace('../admin/note.php');" ;
echo "</script>";
}
}//Fin else
}//fin ok
}
}
?>
Ca marche et je me demande comment le trouvez-vous
--
-- Structure de la table `note`
--
CREATE TABLE IF NOT EXISTS `note` (
`idnote` int(11) NOT NULL,
`idelevenote` int(11) NOT NULL,
`matierenote` varchar(25) NOT NULL,
`note1` varchar(5) NOT NULL,
`note2` varchar(5) NOT NULL,
`note3` varchar(5) NOT NULL,
`compo1` varchar(5) NOT NULL,
`trim1` varchar(6) NOT NULL,
`note4` varchar(5) NOT NULL,
`note5` varchar(5) NOT NULL,
`note6` varchar(5) NOT NULL,
`compo2` varchar(5) NOT NULL,
`trim2` varchar(6) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=54 DEFAULT CHARSET=utf8;
--
-- Contenu de la table `note`
--
INSERT INTO `note` (`idnote`, `idelevenote`, `matierenote`, `note1`, `note2`, `note3`, `compo1`, `trim1`, `note4`, `note5`, `note6`, `compo2`, `trim2`) VALUES
(1, 1, 'Maths', '10', '11', '12', '11', '11', '12', '13', '13', '11', '12,25'),
(48, 2, 'Maths', '10', '12', '11', '10', '15,75', '13', '12', '12', '12', '12,25'),
(51, 3, 'Maths', '10', '12', '11', '13', '11,50', '12', '11', '', '11', '11,33'),
(52, 4, 'Maths', '10', '14', '', '', '12', '15', '11', '', '12', '12,67'),
(53, 4, 'Philo', '10', '11', '', '0', '7,5', '', '', '', '', '');
--
-- Index pour les tables exportées
--
--
-- Index pour la table `note`
--
ALTER TABLE `note`
ADD PRIMARY KEY (`idnote`),
ADD KEY `idelevenote` (`idelevenote`),
ADD KEY `matierenote` (`matierenote`);
--
-- AUTO_INCREMENT pour les tables exportées
--
--
-- AUTO_INCREMENT pour la table `note`
--
ALTER TABLE `note`
MODIFY `idnote` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=54;
Si c'est bon comment je peux ignorer la 1ière ligne pour avoir des titres
Excuse pour le retard c’est juste que j’ai perdu ma tablette sur laquelle je me connectais. Oui il ya une colonne idnote(PRIMARY KEY) qui sert d’identifiant, mais l’utilisateur n’est pas censé le savoir comme je l’avais montre sur ma première requête pour le update, il faut une combinaison de $idelevenote et $matierenote pour l’identifier.
En fait je me suis pris autrement en recherchant l’idnote pour faire un update si ca existe déjà dans la base et de faire une insersion s’il y’en a pas. Le voici
[php]<?php
include('fonctions.inc.php');
if(isset($_POST["submit"]))
{
$file = $_FILES['file']['tmp_name'];
$handle = fopen($file, "r");
$c = 0;
while(($filesop = fgetcsv($handle, 1024, ";")) !== false)
{
{
$req= mysql_query("select * FROM note where idelevenote='".$filesop[0]."' and matierenote='".$filesop[1]."' ");
if(mysql_num_rows($req)>0)
{
$id=mysql_fetch_array($req);
$idnote=$id['idnote'];
$idelevenote=$filesop[0];
$matierenote=$filesop[1];
$note1=$filesop[2];
$note2=$filesop[3];
$note3=$filesop[4];
$compo1=$filesop[5];
$trim1=$filesop[6];
$note4=$filesop[7];
$note5=$filesop[8];
$note6=$filesop[9];
$compo2=$filesop[10];
$trim2=$filesop[11];
$sql="UPDATE note SET note1='".
$note1."', note2='".$note2."', note3='".$note3."',compo1='".$compo1."', trim1='".$trim1."', note4='".
$note4."', note5='".$note5."', note6='".$note6."', compo2='".$compo2."', trim2='".$trim2."'
WHERE idelevenote='".$idelevenote."' AND matierenote='".$matierenote."' ";
if($result=mysql_query($sql))
{
echo "<script language='javascript'>";
echo "alert('Note mise a jour');";
echo "window.location.replace('../admin/note.php');" ;
echo "</script>";
}
else
{
echo "<script language='javascript'>";
echo "alert('Insersion echoue');";
echo "window.location.replace('../admin/note.php');" ;
echo "</script>";
}
}
else
{
$idelevenote=$filesop[0];
$matierenote=$filesop[1];
$note1=$filesop[2];
$note2=$filesop[3];
$note3=$filesop[4];
$compo1=$filesop[5];
$trim1=$filesop[6];
$note4=$filesop[7];
$note5=$filesop[8];
$note6=$filesop[9];
$compo2=$filesop[10];
$trim2=$filesop[11];
$sql="INSERT INTO note VALUES ('','$idelevenote','$matierenote','$note1','$note2', '$note3','$compo1','$trim1',
'$note4','$note5','$note6','$compo2','$trim2')";
if($result=mysql_query($sql))
{
echo "<script language='javascript'>";
echo "alert('Note Inserer');";
echo "window.location.replace('../admin/note.php');" ;
echo "</script>";
}
else
{
echo "<script language='javascript'>";
echo "alert('Echec Insersion');";
echo "window.location.replace('../admin/note.php');" ;
echo "</script>";
}
}//Fin else
}//fin ok
}
}
?>[/php]
[b]Ca marche et je me demande comment le trouvez-vous[/b]
[quote]
--
-- Structure de la table `note`
--
CREATE TABLE IF NOT EXISTS `note` (
`idnote` int(11) NOT NULL,
`idelevenote` int(11) NOT NULL,
`matierenote` varchar(25) NOT NULL,
`note1` varchar(5) NOT NULL,
`note2` varchar(5) NOT NULL,
`note3` varchar(5) NOT NULL,
`compo1` varchar(5) NOT NULL,
`trim1` varchar(6) NOT NULL,
`note4` varchar(5) NOT NULL,
`note5` varchar(5) NOT NULL,
`note6` varchar(5) NOT NULL,
`compo2` varchar(5) NOT NULL,
`trim2` varchar(6) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=54 DEFAULT CHARSET=utf8;
--
-- Contenu de la table `note`
--
INSERT INTO `note` (`idnote`, `idelevenote`, `matierenote`, `note1`, `note2`, `note3`, `compo1`, `trim1`, `note4`, `note5`, `note6`, `compo2`, `trim2`) VALUES
(1, 1, 'Maths', '10', '11', '12', '11', '11', '12', '13', '13', '11', '12,25'),
(48, 2, 'Maths', '10', '12', '11', '10', '15,75', '13', '12', '12', '12', '12,25'),
(51, 3, 'Maths', '10', '12', '11', '13', '11,50', '12', '11', '', '11', '11,33'),
(52, 4, 'Maths', '10', '14', '', '', '12', '15', '11', '', '12', '12,67'),
(53, 4, 'Philo', '10', '11', '', '0', '7,5', '', '', '', '', '');
--
-- Index pour les tables exportées
--
--
-- Index pour la table `note`
--
ALTER TABLE `note`
ADD PRIMARY KEY (`idnote`),
ADD KEY `idelevenote` (`idelevenote`),
ADD KEY `matierenote` (`matierenote`);
--
-- AUTO_INCREMENT pour les tables exportées
--
--
-- AUTO_INCREMENT pour la table `note`
--
ALTER TABLE `note`
MODIFY `idnote` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=54;
[/quote]
[b] Si c'est bon comment je peux ignorer la 1ière ligne pour avoir des titres[/b]