LAST_INSERT_ID met voorwaarde

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Danny Kater

Danny Kater

28/01/2010 22:15:00
Quote Anchor link
Wat gaat er fout?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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'];

}}



?>
 
PHP hulp

PHP hulp

23/11/2024 01:16:49
 
- Jim  -

- Jim -

28/01/2010 22:18:00
Quote Anchor link
Mysql kent geen LAST_INSERT_ID.
Dat is een php functie.

EDIT:
en je overschrijft telkens je sessie variabele
Gewijzigd op 01/01/1970 01:00:00 door - Jim -
 
Danny Kater

Danny Kater

28/01/2010 22:19:00
Quote Anchor link
Een idee hoe ik dit wel goed voor elkaar krijg?
 
Ruud van Dijk

Ruud van Dijk

28/01/2010 22:29:00
Quote Anchor link
LAST_INSERT_ID heb ff gekeken op php.net maar word niet egt duidelijk de commando maar is je bedoeling om er achter te komen wat je volgende id word?

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
 
- Jim  -

- Jim -

28/01/2010 22:34:00
Quote Anchor link
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....
 
Danny Kater

Danny Kater

28/01/2010 22:42:00
Quote Anchor link
Ik wil graag de volgende ID uit een tabel ophalen van een bepaalde gebruiker.

Dit id ken ik vervolgens toe aan een session.

Alvast bedankt
 
Ruud van Dijk

Ruud van Dijk

28/01/2010 22:44:00
Quote Anchor link
Wat ik zonet al aangaf:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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;

?>
Gewijzigd op 01/01/1970 01:00:00 door Ruud van Dijk
 
Danny Kater

Danny Kater

28/01/2010 22:48:00
Quote Anchor link
Ik heb nu wel de waarde eruit maar ik krijg de volgende foutmelding:

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\webroot\ss\product_keuze.php on line 12
 
- Jim  -

- Jim -

28/01/2010 22:50:00
Quote Anchor link
ruud van dijk schreef op 28.01.2010 22:44:
Wat ik zonet al aangaf:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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;

?>


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.
 
Danny Kater

Danny Kater

28/01/2010 22:50:00
Quote Anchor link
Ook de waarde komt er niet uit, hij doet alleen +1 bij $idnew Dus $idnew = altijd 1
 
Ruud van Dijk

Ruud van Dijk

28/01/2010 22:52:00
Quote Anchor link
heb je id en tabel in de sql al aangepast naar je eigen waardes??

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
 
Danny Kater

Danny Kater

28/01/2010 22:54:00
Quote Anchor link
Okee, foutmelding opgelost. Ik krijg nu de volgende ID uit de tabel! TOP

Nu alleen nog de voorwaarde, bij het toevoegen van deze krijg ik weer de mysql_fetch_object foutmelding

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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;
?>
 
- Jim  -

- Jim -

28/01/2010 22:56:00
Quote Anchor link
Maak een stukje foutafhandeling en kijk eens naar sql-injection.
 
Ruud van Dijk

Ruud van Dijk

28/01/2010 22:56:00
Quote Anchor link
$_SESSION[gebruiker moet dat niet $_SESSION['gebruiker'] zijn ?

Wat bedoel je met voorwaarde ?
 
Milo

Milo

28/01/2010 22:58:00
Quote Anchor link
Mensen mensen waar is de foutafhandeling?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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();
}

?>
 
Danny Kater

Danny Kater

28/01/2010 22:58:00
Quote Anchor link
WHERE = de voorwaarde

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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;
?>


Geeft:
Unknown column 'dannykater' in 'where clause'

Terwijl, dannykater ($_SESSION['gebruiker']) helemaal geen kolom is maar de waarde die een kolom moet bevatten :s
 
- Jim  -

- Jim -

28/01/2010 22:58:00
Quote Anchor link
ruud van dijk schreef op 28.01.2010 22:56:
$_SESSION[gebruiker moet dat niet $_SESSION['gebruiker'] zijn ?

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 -
 
Ruud van Dijk

Ruud van Dijk

28/01/2010 23:01:00
Quote Anchor link
WHERE 'gebruiker' = '".$_SESSION['gebruiker']."'


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
 
Danny Kater

Danny Kater

28/01/2010 23:03:00
Quote Anchor link
Onderstaande is het geworden, werkt perfect. Nu alleen nog even aan die foutafhandeling werken!

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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;
?>
 
Ruud van Dijk

Ruud van Dijk

28/01/2010 23:05:00
Quote Anchor link
eventueel je veldnaam gebruiker nog even quoten ;)
Gewijzigd op 01/01/1970 01:00:00 door Ruud van Dijk
 
Klaasjan Boven

Klaasjan Boven

29/01/2010 06:07:00
Quote Anchor link
Klinkt trouwens niet goed als je per gebruiker het hoogste nummer bij gaat houden, klinkt zelfs helemaal niet goed. KLinkt eerder slecht
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.