Seite 1 von 1

Nachhilfe in PHPlib

Verfasst: Sa 30. Apr 2005, 11:27
von Karl
Beim Schreiben eines Moduls hab ich folgenden Stolperstein

Code: Alles auswählen

                    $sql="SELECT A.id, A.bucherid, A.datum, B.id
                              FROM bel_buchungen AS A,
                                       bel_lehrer AS B
                                       
                              WHERE A.bucherid = B.id 
                              ORDER BY datum Desc
                    ";
                    $db->query($sql);

                    while ($db->next_record())
                    {
                         echo $db->f('B.id');
                    }
Die Abfrage klappt, aber $db->f('B.id') scheint falsche Syntax zu sein, denn es wird nix ausgegeben. Lass ich das B. weg, gehts, aber die id ist nicht eindeutig.

Kann mir jemand unbürokratisch helfen?

Verfasst: Sa 30. Apr 2005, 14:28
von Beleuchtfix
Versuch es mal mit
echo ($db->f("B.id"));

Viel Erfolg
Florian

Verfasst: Sa 30. Apr 2005, 22:30
von HerrB
Außerdem gäbe es da noch was in SQL:

Code: Alles auswählen

$sql="SELECT A.id, A.bucherid, A.datum, B.id AS BiD ...
dann wäre es natürlich echo ($db->f("BiD"));

Etwas sprechender dürfte es natürlich schon sein... :wink:

Gruß
HerrB

Verfasst: Sa 7. Mai 2005, 11:55
von Karl
Das mit dem Alias funktioniert (danke!) ...
aber schon lande ich bei einem seltsamen Problem. Der Alias "kummerkasten" bezieht sich auf ein auto_increment Feld "id" und dieses will sich partout nicht per POST verschicken lassen, es wird immer 1 oder 2 übergeben. Alle anderen Felder machen keine Probleme.

Code: Alles auswählen

 
<input type='image' name='buchung_loeschen'  
         value=".$db->f('kummerkasten')." src='$icon' >
Falls jemand hierzu eine Idee hat, ich wäre dankbar.

Verfasst: Sa 7. Mai 2005, 12:14
von kummer
das wird wohl kein post-problem sein. ich vermute mal, der entsprechende wert ist richtig.

wenn du den autoincrement-wert unmittelbar nach einem insert herausfinden möchtest, muss du die last_insert_id verwenden.

Code: Alles auswählen

SELECT LAST_INSERT_ID();
diese gibt dir den autoincrement-wert zurück. der wert ist session-spezifisch. du erhälst also den wert der letzten einfügen innerhalb genau deines scriptes. sollte ein anderes script auch eine einfügung vornehmen, wirst du trotzdem deine id erhalten und nicht jene des später ausgeführten fremden scripts.

ich hoffe, ich habe die problematik richtig verstanden. sonst muss du halt noch den zughörigen query posten. dann kann man vielleicht mehr sagen.

gruss,
andreas