par
king93310 » 17 janv. 2008, 23:08
Bonjour,
Je suis sur MySQL 4.1.9 et j'ai un problemme avec une request sql, je m'explique: (mon script si dessous concerne deux Table.)
Table 'login': account_id (en chiffre ) - userid (en chiffre et/ou lettre) - user.... (le reste n'a pas d'importance)
Table 'donate': account_id - amount - claimed (tous en chiffre)
Code : Tout sélectionner
CREATE TABLE `donate` (
`account_id` int(11) unsigned NOT NULL,
`amount` float(5,2) unsigned NOT NULL,
`claimed` float(5,2) unsigned NOT NULL,
PRIMARY KEY (`account_id`,`amount`)
) TYPE=MyISAM;
DROP TABLE IF EXISTS `login`;
CREATE TABLE `login` (
`account_id` int(11) unsigned NOT NULL auto_increment,
`userid` varchar(255) NOT NULL default '',
PRIMARY KEY (`account_id`),
KEY `name` (`userid`)
) TYPE=MyISAM AUTO_INCREMENT=2000000;
Ce que je voudrais est que le script récupère la valeur 'account_id' de la table 'login' devant 'userid' tapé précédement dans un formulaire. Puis insère dans la table 'donate':
'account_id'(avec la valeur récupérée)
'amount' = 2
et 'claimed' = 0
Exemples:
table login: 2000002 - king93310
---------> table donate: 2000002 - 2 - 0
Je présice que je suis débutant en script php et que j'apprend en fesant des erreures, voila le script que j'ai fait:
<?php
$root = "localhost";
$login="xxxx";
$pass="xxxx";
$db="xxxx";
if(isset($_POST['username'])) {
$mysql = mysql_connect( $root, $login, $pass ) or die( "Impossible de se connecter au serveur MySQL [1]" );
mysql_select_db( $db, $mysql) or die( "Impossible de se connecter au serveur MySQL [2]" );
$username = trim($_POST['username']);
$result = mysql_query("SELECT `userid` FROM `login` WHERE userid = '$username'", $mysql);
$query = "INSERT INTO `donate` (`account_id`, `amount`, `claimed`) VALUES ('$result', '2.00', '0.00');";
$result = mysql_query($query, $mysql) or die("<center>Erreur dans l'écriture des données...</center>");
if ($result) die("<center>Inscription terminée.</center>");
}
?>
<center>
<table border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<th class="title" height="28">Inscription - Création de Compte</th>
</tr>
<tr>
<td>
<form id="account" action="" method="post">
<table>
<tbody>
<tr>
<td align="right">Nom du Compte:</td>
<td align="left"><input name="username" maxlength="23" size="23" type="text"></td>
</tr>
<tr>
<td align="right">Mot de Passe:</td>
<td align="left"><input name="password" maxlength="23" size="23" type="password"></td>
</tr>
<tr>
<td> </td>
<td><input name="create" value="Créer" type="submit"></td>
</tr>
</tbody>
</table>
</form>
</td>
</tr>
</tbody>
</table>
</center>
Le problemme est le suivant: Tout s'insère bien dans la table 'donate' sauf la valeur 'account_id' qui au lieu de récupéré celle - ci dans la table 'login', le script met comme valeur '0' .
Je ne sais pas d'ou vien le problemme, pouvez vous m'aider ?
Cordialement.
Bonjour,
Je suis sur MySQL 4.1.9 et j'ai un problemme avec une request sql, je m'explique: (mon script si dessous concerne deux Table.)
Table 'login': account_id (en chiffre ) - userid (en chiffre et/ou lettre) - user.... (le reste n'a pas d'importance)
Table 'donate': account_id - amount - claimed (tous en chiffre)
[code]CREATE TABLE `donate` (
`account_id` int(11) unsigned NOT NULL,
`amount` float(5,2) unsigned NOT NULL,
`claimed` float(5,2) unsigned NOT NULL,
PRIMARY KEY (`account_id`,`amount`)
) TYPE=MyISAM;
DROP TABLE IF EXISTS `login`;
CREATE TABLE `login` (
`account_id` int(11) unsigned NOT NULL auto_increment,
`userid` varchar(255) NOT NULL default '',
PRIMARY KEY (`account_id`),
KEY `name` (`userid`)
) TYPE=MyISAM AUTO_INCREMENT=2000000; [/code]
Ce que je voudrais est que le script récupère la valeur 'account_id' de la table 'login' devant 'userid' tapé précédement dans un formulaire. Puis insère dans la table 'donate':
'account_id'(avec la valeur récupérée)
'amount' = 2
et 'claimed' = 0
Exemples:
table login: 2000002 - king93310
---------> table donate: 2000002 - 2 - 0
Je présice que je suis débutant en script php et que j'apprend en fesant des erreures, voila le script que j'ai fait:
[php]<?php
$root = "localhost";
$login="xxxx";
$pass="xxxx";
$db="xxxx";
if(isset($_POST['username'])) {
$mysql = mysql_connect( $root, $login, $pass ) or die( "Impossible de se connecter au serveur MySQL [1]" );
mysql_select_db( $db, $mysql) or die( "Impossible de se connecter au serveur MySQL [2]" );
$username = trim($_POST['username']);
$result = mysql_query("SELECT `userid` FROM `login` WHERE userid = '$username'", $mysql);
$query = "INSERT INTO `donate` (`account_id`, `amount`, `claimed`) VALUES ('$result', '2.00', '0.00');";
$result = mysql_query($query, $mysql) or die("<center>Erreur dans l'écriture des données...</center>");
if ($result) die("<center>Inscription terminée.</center>");
}
?>
<center>
<table border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<th class="title" height="28">Inscription - Création de Compte</th>
</tr>
<tr>
<td>
<form id="account" action="" method="post">
<table>
<tbody>
<tr>
<td align="right">Nom du Compte:</td>
<td align="left"><input name="username" maxlength="23" size="23" type="text"></td>
</tr>
<tr>
<td align="right">Mot de Passe:</td>
<td align="left"><input name="password" maxlength="23" size="23" type="password"></td>
</tr>
<tr>
<td> </td>
<td><input name="create" value="Créer" type="submit"></td>
</tr>
</tbody>
</table>
</form>
</td>
</tr>
</tbody>
</table>
</center>
[/php]
Le problemme est le suivant: Tout s'insère bien dans la table 'donate' sauf la valeur 'account_id' qui au lieu de récupéré celle - ci dans la table 'login', le script met comme valeur '0' .
Je ne sais pas d'ou vien le problemme, pouvez vous m'aider ?
Cordialement.