Pas de transmission de donnees

Répondre
isitien
le 22/12/2006 à 13:19
isitien
Salut,

je voudrais creer un pti flash news mais je me suis croise au cote admin, j'arrive pas a supprimer / modifier les donnees, mes requetes sont vide:

voir les donnees dans une table scroll_view.php
<?php
include ('config.php');

$titre = isset($_POST['titre']) ? $_POST['titre'] : '';
$message = isset($_POST['message']) ? $_POST['message'] : '';
$url = isset($_POST['url']) ? $_POST['url'] : '';
$date = isset($_POST['date']) ? $_POST['date'] : '';
$id = isset($_GET['id']) ? $_GET['id'] : '';


$date = date("d/m/Y");

$connection = mysql_connect($dbhost, $dblogin, $dbpassword) or die ($ErrorConnection);
$db = mysql_select_db($dbname, $connection) or die ($ErrorDBase);
$select = "SELECT * FROM $scroll_table";
$result = mysql_query($select,$connection) or die ($ErrorSelect);
$Total = mysql_num_rows($result);

if($Total=='0')
{
echo $ErrorScroll1;
}
else
{
?>
<form method="POST" name="scroll_view" action="index.php?rub=Scroll_Action">
<div align="center" dir="rtl">
<table width="100%">
<tr><td colspan="4">&#1575;&#1604;&#1605;&#1580;&#1605;&#1608;&#1593;:&nbsp;&nbsp; <? echo $Total; ?></td>
<tr>
<td>Titre</td>
<td>Message</td>
<td>URL</td>
<td>Action</td></tr>
<?
//////// multipages partie 1 debut /////
//donner une valeur au nombre de message par page
$NombreDeMessagesParPage = '4'; // Essayez de changer ce nombre pour voir :o)
//calculer le nombre de page avec arrondissement sup ceil()
$NombreDePages = ceil($Total / $NombreDeMessagesParPage); // Total = 10 => 10/4=2.5 => ceil=3 pages

//on met page comme variable
if (isset($_GET['page']))
{
// $page = $_GET['page']; // On r&#43317;p&#40165; le num&#44271; de la page indiqu&#39012;ans l'adresse (admin.php?page=4)
$page = intval($_GET['page']);
}
else // La variable n'existe pas, c'est la premi&#40165; fois qu'on charge la page
{
$page = 1; // On se met sur la page 1 (par d&#43489;ut)
}

// On calcule le num&#44271; du premier message qu'on prend pour le LIMIT de MySQL
$PremierMessageAafficher = ($page - 1) * $NombreDeMessagesParPage;
$select1 = 'SELECT * FROM '.$scroll_table.' ORDER BY id DESC LIMIT '. $PremierMessageAafficher . ', '. $NombreDeMessagesParPage;
$result1 = mysql_query($select1,$connection) or die ($ErrorSelect);
/// multipages partie 1 fin ////////////

// on va scanner tous les tuples un par un
while ($data = mysql_fetch_array($result1)) {
// on affiches les r&#44341;ltats dans la <table>
$titre = $data['titre'];
$message = $data['message'];
$url = $data['url'];
$id = $data['id'];

?>

<tr><td>
<input type="text" name="titre" size="20" maxlength="50" value="<? echo $titre; ?>" class="input01">
</td>
<td>
<textarea name="message" cols="45" rows="8" class="textarea01"><? echo $message; ?></textarea>
</td>
<td>
<input type="text" name="url" size="20" maxlength="50" value="<? echo $url; ?>" class="input01">
</td>
<td>
<?

echo '<a href="'.$url_admin.'/index.php?rub=Scroll_Action&act=update&id='.$id.'"><img src="'.$url_du_site.'/Images/update.gif" alt="&#1578;&#1593;&#1583;&#1610;&#1604; &#1575;&#1604;&#1576;&#1610;&#1575;&#1606;&#1575;&#1578;" class="imglink"></a>';
echo '&nbsp;&nbsp';
echo '<a href="'.$url_admin.'/index.php?rub=Scroll_Action&act=del&id='.$id.'"><img src="'.$url_du_site.'/Images/delete.gif" alt="&#1605;&#1587;&#1581; &#1575;&#1604;&#1576;&#1610;&#1575;&#1606;&#1575;&#1578;" class="imglink"></a>';
?>
</td></tr>
</div>
<?php
} // fermeture de while
?>
<td>
<form name="formpages" action="POST">
<?
//http://www.htmlcodetutorial.com/forms/_SELECT_onChange.html
?>
<SELECT name="ListeUrl" size=1 ONCHANGE="location = this.options[this.selectedIndex].value;" class="select01">
<option selected>&#1575;&#1606;&#1578;&#1602;&#1604; &#1573;&#1604;&#1609; &#1575;&#1604;&#1589;&#1601;&#1581;&#1577;</option>
<?
for ($i = 1 ; $i <= $NombreDePages ; $i++)
{
echo '<center><option value="'.$url_admin.'/index.php?rub=Scroll_View&page=' . $i . '"><a href="'.$url_admin.'/index.php?rub=Scroll_View&pagepage=' . $i . '">' . $i . '</a></option></center>';
}
?>
</select>
</form>
</td></tr>
<tr><td>&#1593;&#1583;&#1583; &#1575;&#1604;&#1589;&#1601;&#1581;&#1575;&#1578;:&nbsp;&nbsp; <? echo $NombreDePages; ?></td></tr>
<?

mysql_close ();
} // fermeture de else {}
?>
</table>
</form>
<?
/*
if ($i != '0' && $i > '1' && $i < $NombreDePage){
$suivant = $_GET[i] + 1; // on ajoute 1 au numero de page en cours
echo '<a href="'.$url_admin.'/index.php?rub=Scroll_View&page='.$suivant.'">&#1575;&#1604;&#1578;&#1575;&#1604;&#1610;</a>'; //le lien pour les pages suivantes
}
if($NombreDePages !='0' && $i > '1' && $i< '10')
{
echo '&nbsp;&nbsp;<a href="javascript: history.back();">&#1575;&#1604;&#1587;&#1575;&#1576;&#1602;</a>'; // retour page précédente, ici version javascript
}
*/
?>


executer l'action supp/modi scroll_action.php:

<?php
include ('config.php');

if(isset($_POST['date'])) $date = $_POST['date'];
else $date = '';
if(isset($_POST['url'])) $url = $_POST['url'];
else $url = '';
if(isset($_POST['titre'])) $titre = $_POST['titre'];
else $titre = '';
if(isset($_POST['message'])) $message = $_POST['message'];
else $message = '';
if(isset($_POST['act'])) $act = $_POST['act'];
else $act = '';

$date = date("d/m/Y");

echo $titre;

$connection = mysql_connect($dbhost, $dblogin, $dbpassword) or die ($ErrorConnection);
$db = mysql_select_db($dbname, $connection) or die ($ErrorDBase);
$select = 'SELECT * FROM '.$scroll_table;
$result = mysql_query($select,$connection) or die ($ErrorSelect);
$Total = mysql_num_rows($result);

if($act=="del")
{
$qryDelete = 'Delete from '.$scroll_table.' WHERE id='.$_GET['id'];
mysql_query ($qryDelete) or die('ERR_SQL :'. $qryDelete . '' . mysql_error());
echo $qryDelete;
$Total1 = mysql_affected_rows($result);
if ($Total1 !== false){
echo $ErrorDeleteQuery1;
echo $Refresh1;
}
else
{
echo $ErrorDeleteQuery2;
echo $ErrorReturn;
}
}
if($act=="update")
{
$qryUpdate = 'Update '.$scroll_table.' set titre="'.$titre.'", url="'.$url.'", message="'.$message.'" WHERE id='.$_GET['id'];
mysql_query ($qryUpdate) or die('ERR_SQL :'. $qryUpdate . '' . mysql_error());

$Total2 = mysql_affected_rows($result);
if ($Total2 !== false){
echo $ErrorUpdateQuery1;
echo $Refresh1;
}
else
{
echo $ErrorUpdateQuery2;
echo $ErrorReturn;
}
mysql_close();
}
?>
isitien
le 05/01/2007 à 18:50
isitien
y a personne qui peut m aider a pourquoi mes variables ne sont pas transmissibles d une page a une autre§
LA GLOBULE
le 05/01/2007 à 19:41
LA GLOBULE
Ben c'est quelle requete qui pose problème ? Nan, parce que la, tu as un peu balancé 10 000 lignes de code.
i M@N
le 05/01/2007 à 19:50
i M@N
Hello !

Je pense que le problème vient de la variable $id issue de $_GET qui n'est pas initialisée.

Au début de scroll_action.php ajoute :
if(isset($_GET['id'])) $date = $_GET['id'];
else $id = '';

Puis remplace
WHERE id='.$_GET['id'];

par :
WHERE id='.$id;


@+...
One Love, One Heart, One Unity.
LA GLOBULE
le 06/01/2007 à 11:37
LA GLOBULE
Ca ne change rien de faire ça.

Parce que si $_GET['id'] n'arrive pas sur la page, ton truc fera que tu lances une requete du genre :

sql = "SELECT ... FROM ... WHERE id=";

Bref, mysql, il aimera pas.

Il faut checker plus en amont si $_GET['id'] est la, et si il n'est pas la, agir en consequence et ne pas permettre l'execution du script avec un header par exemple ou l'affichage d'un message d'erreur.
isitien
le 07/01/2007 à 17:42
isitien
voila la requete qui marche pas

<?php
elseif($act=="update")
{
$sql2 = "Update ". $scroll_table ." ".
"SET titre = '". $titre ."' ,
url = '". $url ."' ,
message = '". $message ."' ".
"WHERE id=".$id;
$result2 = mysql_query($sql2,$connection) or die ($ErrorUpdate);
$Total2 = mysql_affected_rows($result2);
echo $sql2.'<br>';
if ($Total2 == '1')
{
echo "item updated";
?>


quand je modifie les champs et je click sur le lien modifier, il passe les champs que j ai modifie en VIDE, ils ne sont pas rempli, je teste avec echo var_dump($variable); il donne string 0.
LA GLOBULE
le 07/01/2007 à 22:41
LA GLOBULE
Deja, change ta requete en :

$sql2 = "Update ". $scroll_table ." ".
"SET titre = '". mysql_escape_string($titre) ."' ,
url = '". mysql_escape_string($url) ."' ,
message = '". mysql_escape_string($message) ."' ".
"WHERE id=".mysql_escape_string($id);

Ensuite, un echo de $sql2 donne quoi ?
isitien
le 12/01/2007 à 16:59
isitien
ca donne:

Update scroll_table SET titre = '' , url = '' , message = '' WHERE id=53

avrc resultat: item not updated
un var_dump sur titre donne: string(0) ""
bibi
le 12/01/2007 à 20:45
bibi
ca sera pas un projet de target dans tes form ?

si tu fais print_r($_POST); ca donne quoi ?
commit suicide
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours