LAST_INSERT_ID met voorwaarde
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?
$sql1 = "SELECT LAST_INSERT_ID(id+1) AS `id` FROM ss_advertenties WHERE gebruikersnaam = ".$_SESSION['gebruikersnaam'];
if ($qry1 = mysql_query($sql1)) {
while ($rij1 = mysql_fetch_assoc($qry1)) {
$_SESSION['advertentie'] = $rij1['id'];
}}
?>
$sql1 = "SELECT LAST_INSERT_ID(id+1) AS `id` FROM ss_advertenties WHERE gebruikersnaam = ".$_SESSION['gebruikersnaam'];
if ($qry1 = mysql_query($sql1)) {
while ($rij1 = mysql_fetch_assoc($qry1)) {
$_SESSION['advertentie'] = $rij1['id'];
}}
?>
Dat is een php functie.
EDIT:
en je overschrijft telkens je sessie variabele
Gewijzigd op 01/01/1970 01:00:00 door - Jim -
Een idee hoe ik dit wel goed voor elkaar krijg?
dan kun je lijkt me gewoon
select id from tabel order by id desc
$rij = mysql_fetch_object($sql);
$idnew = $rij->id + 1;
?
Gewijzigd op 01/01/1970 01:00:00 door Ruud van Dijk
Danny Kater schreef op 28.01.2010 22:19:
Een idee hoe ik dit wel goed voor elkaar krijg?
Er gaat volgens jou iets fout.
Je gebruikt een php functie in een mysql query wat niet kan.
Er staat wat (dus niet werkende) code, maar hier weet denk ik niemand wat je wilt bereiken....
Dit id ken ik vervolgens toe aan een session.
Alvast bedankt
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$sql = mysql_query("select id from tabel order by id desc")
$rij = mysql_fetch_object($sql);
$idnew = $rij->id + 1; // dit word dan je volgende id (auto_increment)
$_SESSION['advertentie'] = $idnew;
?>
$sql = mysql_query("select id from tabel order by id desc")
$rij = mysql_fetch_object($sql);
$idnew = $rij->id + 1; // dit word dan je volgende id (auto_increment)
$_SESSION['advertentie'] = $idnew;
?>
Gewijzigd op 01/01/1970 01:00:00 door Ruud van Dijk
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\webroot\ss\product_keuze.php on line 12
ruud van dijk schreef op 28.01.2010 22:44:
Wat ik zonet al aangaf:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$sql = mysql_query("select id from tabel order by id desc")
$rij = mysql_fetch_object($sql);
$idnew = $rij->id + 1; // dit word dan je volgende id (auto_increment)
$_SESSION['advertentie'] = $idnew;
?>
$sql = mysql_query("select id from tabel order by id desc")
$rij = mysql_fetch_object($sql);
$idnew = $rij->id + 1; // dit word dan je volgende id (auto_increment)
$_SESSION['advertentie'] = $idnew;
?>
Voeg nog even LIMIT 1 toe aan je query omdat je anders mysql wel alle id's laat ophalen uit je tabel.
p.s. Mocht je de laatste id+1 willen gebruiken om eeen volgende aan te maken, moet je even kijken naar auto-increments.
Misschien niet van toepassing maar toch. Een nuttige toepassing hiervoor kan ik me niet bedenken.
Ook de waarde komt er niet uit, hij doet alleen +1 bij $idnew Dus $idnew = altijd 1
Wat krijg je als je dit verandert
$sql = mysql_query("select id from tabel order by id desc limit 1") or die(mysql_error());
id en tabel hierbij veranderne met je eigen waardes
Gewijzigd op 01/01/1970 01:00:00 door Ruud van Dijk
Nu alleen nog de voorwaarde, bij het toevoegen van deze krijg ik weer de mysql_fetch_object foutmelding
Code (php)
1
2
3
4
5
2
3
4
5
<?
$sql = mysql_query("SELECT `id` FROM `ss_advertenties` WHERE `gebruiker` = $_SESSION[gebruiker] ORDER BY id desc LIMIT 1");
$rij = mysql_fetch_object($sql);
$idnew = $rij->id + 1;
?>
$sql = mysql_query("SELECT `id` FROM `ss_advertenties` WHERE `gebruiker` = $_SESSION[gebruiker] ORDER BY id desc LIMIT 1");
$rij = mysql_fetch_object($sql);
$idnew = $rij->id + 1;
?>
Maak een stukje foutafhandeling en kijk eens naar sql-injection.
Wat bedoel je met voorwaarde ?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
// Sessie starten
session_start();
// Query uitvoeren
$sql = mysql_query('SELECT id FROM tabel LIMIT 1');
// Als query gelukt is
if($sql)
{
// Als er items zijn
if(mysql_num_rows($sql) > 0)
{
// $var rec aanmaken
$rec = mysql_fetch_assoc($sql);
// Sessie neergooien
$_SESSION['blaat'] = $rec['id'];
}
// Anders
else
{
// Fout
echo 'Geen id...';
}
}
// Anders
else
{
// MySql error
echo 'Fout <br />';
echo mysql_error();
}
?>
// Sessie starten
session_start();
// Query uitvoeren
$sql = mysql_query('SELECT id FROM tabel LIMIT 1');
// Als query gelukt is
if($sql)
{
// Als er items zijn
if(mysql_num_rows($sql) > 0)
{
// $var rec aanmaken
$rec = mysql_fetch_assoc($sql);
// Sessie neergooien
$_SESSION['blaat'] = $rec['id'];
}
// Anders
else
{
// Fout
echo 'Geen id...';
}
}
// Anders
else
{
// MySql error
echo 'Fout <br />';
echo mysql_error();
}
?>
Code (php)
1
2
3
4
5
2
3
4
5
<?
$sql = mysql_query("SELECT `id` FROM `ss_advertenties` WHERE gebruiker = ".$_SESSION['gebruiker']." ORDER BY id desc LIMIT 1") or die(mysql_error());
$rij = mysql_fetch_object($sql);
$idnew = $rij->id + 1;
?>
$sql = mysql_query("SELECT `id` FROM `ss_advertenties` WHERE gebruiker = ".$_SESSION['gebruiker']." ORDER BY id desc LIMIT 1") or die(mysql_error());
$rij = mysql_fetch_object($sql);
$idnew = $rij->id + 1;
?>
Geeft:
Unknown column 'dannykater' in 'where clause'
Terwijl, dannykater ($_SESSION['gebruiker']) helemaal geen kolom is maar de waarde die een kolom moet bevatten :s
ruud van dijk schreef op 28.01.2010 22:56:
$_SESSION[gebruiker moet dat niet $_SESSION['gebruiker'] zijn ?
Wat bedoel je met voorwaarde ?
Wat bedoel je met voorwaarde ?
of mysql_real_escape_string($_SESSION['gebruiker']) ....
EDIT:
Milo was eerder,.....
way2go!!!
Gewijzigd op 01/01/1970 01:00:00 door - Jim -
Quotes om de waarde want het is geen getal (integer) maar een string
EDIT:
mysql_real_escape_string gebruik ik zelf ook allemaal wel en foutafhandeling maar denk geef ff aan hoe je de id op kunt vragen maar jullie hebben volkomen gelijk :P
Gewijzigd op 01/01/1970 01:00:00 door Ruud van Dijk
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?
$sql = mysql_query("SELECT `id` FROM `ss_advertenties` WHERE gebruiker = '".$_SESSION['gebruiker']."' ORDER BY id desc LIMIT 1") or die(mysql_error());
$rij = mysql_fetch_object($sql);
$idnew = $rij->id + 1;
$_SESSION['advertentie'] = $idnew;
?>
$sql = mysql_query("SELECT `id` FROM `ss_advertenties` WHERE gebruiker = '".$_SESSION['gebruiker']."' ORDER BY id desc LIMIT 1") or die(mysql_error());
$rij = mysql_fetch_object($sql);
$idnew = $rij->id + 1;
$_SESSION['advertentie'] = $idnew;
?>
Gewijzigd op 01/01/1970 01:00:00 door Ruud van Dijk
Klinkt trouwens niet goed als je per gebruiker het hoogste nummer bij gaat houden, klinkt zelfs helemaal niet goed. KLinkt eerder slecht