Meerdere resultate met mysql_fetch

Status
Niet open voor verdere reacties.

sanma

Gebruiker
Lid geworden
11 dec 2008
Berichten
170
Hallo,

Ik heb nu de volgende code op mijn site:
PHP:
$aanmeldingencheck = mysql_query("SELECT * FROM aanmeldingen_done WHERE gebruiker = '".$_COOKIE['Gebruikersnaam']."'");

$lijstcheck = mysql_fetch_array($aanmeldingencheck);
$aanmeldnummercheck = $lijstcheck[aanmeldnummer];
{

$i = 1;
$sSql = "SELECT * FROM `aanmeldingen` WHERE actief = '1' and id <> '".$aanmeldnummercheck."' ORDER by id DESC LIMIT 0,100";

Dit werkt op zich goed. Ik heb een formulier dan vul ik bijvoorbeeld 45 in. In de tabel aanmeldingen_done komt dan die aanmelding te staan met nr 45. En deze verdwijnt dan ook uit de lijst zoals het moet. Maar vul ik 2 aanmeldingen in bijvoorbeeld 45 en 46 dan verdwijnen ze niet allebei maar alleen de eerste.

Alvast bedankt:)
 
Kun je even je formulier en de volledige code posten?

Deze code lijkt me niet compleet.

Daarnaast vraag ik me af wat die accolade op regel 5 doet... En aanmeldnummer moet tussen aanhalingstekens.

Hoe voer je de nummers in? Gescheiden door een komma?
 
Hallo,

bedankt voor je reactie,

Dit is het formulier:
PHP:
<form action=\"aanmeldingen.php?actie=toevoegen\" method=\"post\">
Aanmeld nummer: <input type=\"text\" name=\"aanmeld\" /><BR>
<input type=\"submit\" value=\"Bevestigen\" />
</form>

De actie toevoegen:
PHP:
if ($_POST['aanmeld']= $id)  {


Mysql_Query("INSERT INTO aanmeldingen_done (id, aanmeldnummer, gebruiker, naam, prijs, actief) VALUES ('', '$_POST[aanmeld]', '$gebruikersnaam', '$aanmeldnaam', '$waarde', '1')");

Echo Top("Aanmelding bevestigen");
echo "Uw aanmelding is bevestigd. Uw punten worden zo spoedig mogelijk toegevoegd.";
exit();

}

En hier de hele code waar de aanmeldingen, dit zijn banners getoont worden:
PHP:
$aanmeldingencheck = mysql_query("SELECT * FROM aanmeldingen_done WHERE gebruiker = '".$_COOKIE['Gebruikersnaam']."'");

$lijstcheck = mysql_fetch_array($aanmeldingencheck);
$aanmeldnummercheck = $lijstcheck[aanmeldnummer];
{

$i = 1;
$sSql = "SELECT * FROM `aanmeldingen` WHERE actief = '1' and id <> '".$aanmeldnummercheck."' ORDER by id DESC LIMIT 0,100";
$sQuery = Mysql_Query($sSql);
While($list = Mysql_Fetch_Assoc($sQuery)){

				Echo "<br><a href=\"$list[url]\" target=\"_blank\"><img src=\"$list[img]\" width=\"". $settings['width'] ."\" height=\"". $settings['height'] ."\" border=\"0\"></a><br>
					Aanmelding nummer: ".$list[id]."<br>Voor deze aanmelding krijg je ".$list[prijs]." punten. <br><br>";
					$i++;
}

Even ter verduidelijking: Het script werkt goed. In de tabel aanmeldingen_done worden de aanmeldingen toegevoegd. Dus ik vul in 45 klik op bevestigen en de entry wordt aangemaakt. Vul daarna 46 in en ook een entry voor aanmelding 46 wordt aangemaakt. Het enige wat hij niet doet is alle aanmeldingen verbergen maar alleen de eerste die is ingevuld door een bepaalde gebruiker.
 
PHP:
Mysql_Query("INSERT INTO aanmeldingen_done (id, aanmeldnummer, gebruiker, naam, prijs, actief) VALUES ('', '$_POST[aanmeld]', '$gebruikersnaam', '$aanmeldnaam', '$waarde', '1')");
 
Echo Top("Aanmelding bevestigen");
echo "Uw aanmelding is bevestigd. Uw punten worden zo spoedig mogelijk toegevoegd.";

Dat wil je eigenlijk gewoon voor alle id's die je ingeeft doen?

Dan zou je het zo kunnen doen:

PHP:
if ( $_SERVER[ 'REQUEST_METHOD' ] == 'POST' ) {

  $aanmeld = array_map ( 'trim' , explode ( ',', $_POST[ 'aanmeld' ] ) );

  foreach ( $aanmeld as $aanmelding ) {
 
    mysql_query ( "INSERT INTO aanmeldingen_done (id, aanmeldnummer, gebruiker, naam, prijs, actief) VALUES ('', '" . $aanmelding . "', '$gebruikersnaam', '$aanmeldnaam', '$waarde', '1')");
 
    echo Top("Aanmelding bevestigen");
    echo "Uw aanmelding is bevestigd. Uw punten worden zo spoedig mogelijk toegevoegd.";

  }

}
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan