Insert en update probleempje

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Tim

Tim

16/04/2008 16:39:00
Quote Anchor link
Hej Allemaal,

Ik heb hier een klein probleempje:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
        if ($fab_id !== "0") {
    mysql_query("UPDATE SIRIS_data_link SET nws_id='$nws_id' WHERE m_id='$fab_id'");
    mysql_query("UPDATE SIRIS_data_link SET fab_id='$fab_id' WHERE m_id='$nws_id'");
    }

    
?>


Alleen de eerste update word ook uitgevoerd, de tweede werkt niet, hetr maakt geen verschil als ik ze omdraai.

Iemand een sugestie?

Bedankt, Tim

Slechte topictitel:
Zorg ervoor dat je topic titel een goede, duidelijke naam heeft; 'hulp gevraagd', 'help' en 'hij doet het niet' zijn dus geen goede voorbeelden. Je kan je titel wijzigen door in je eerste post op het Afbeelding te klikken.
Gewijzigd op 01/01/1970 01:00:00 door Tim
 
PHP hulp

PHP hulp

22/12/2024 23:26:36
 
Eduard

Eduard

16/04/2008 16:45:00
Quote Anchor link
1. foutafhandeling, zonder errors kunnen we het probleem wel moeilijk vinden
2. vars buiten quotes
 
Tim

Tim

16/04/2008 16:58:00
Quote Anchor link
Ik heb de vars nu buiten de quotus. Maar dat maakt niks uit.
En er zijn ook geen errors te zien, helemaal niks. De eerste regel word ook zonder problemen uitgevoerd, de 2e doet helemaal niets.

PHP staat op reporting all errors.

Tim
 
- wes  -

- wes -

16/04/2008 17:01:00
Quote Anchor link
en als je deze apart in phpmyadmin gooid (of wat je ook gebruikt) wat krijg je dan te zien?
 
Eduard

Eduard

16/04/2008 17:03:00
Quote Anchor link
volgens me is het probleem dat $nws_id nergens in m_id attribuut voorkomt


echo die var eens vooraleer je je update-query doet en ga na of die var wel degelijk in m_id tussen zit
Gewijzigd op 01/01/1970 01:00:00 door Eduard
 
Frank -

Frank -

16/04/2008 17:08:00
Quote Anchor link
mysql_affected_rows() schittert door afwezigheid... Wie zegt dat jouw queries ook iets uitvoeren? En wie zegt dat ze technisch wel zijn gelukt?
 
Tim

Tim

16/04/2008 17:09:00
Quote Anchor link
nws_id komt wel degelijk voor, want als ik ze omdraai werkt de bovenste gewoon (de anderen regel dus). Onder deze regels echo ik de 2 vars en die komen er dan ook gewoon te staan.

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
<?php
$pub_date
= date("Y-m-d H:i:s");

    // vraag het laatste ID op.
    $nws_id= mysql_insert_id();

    // maak een data entry aan.
    mysql_query("INSERT INTO SIRIS_data_link (m_id,nws_id) VALUES ('$nws_id','$nws_id')");
    
    // update de nieuwe rij, en de tegen partij.
    if ($fab_id !== "0") {
    mysql_query("UPDATE SIRIS_data_link SET nws_id=$nws_id WHERE m_id=$fab_id");
    mysql_query("UPDATE SIRIS_data_link SET fab_id=$fab_id WHERE m_id=$nws_id");
    }

    
    print $nws_id;
?>


in phpmyadmin werken ze (zonder de vars) ook gewoon.
 
Frank -

Frank -

16/04/2008 17:17:00
Quote Anchor link
Leg eens uit wat nu de bedoelling is, van bovenstaande code klopt namelijk maar weinig. Waarom wil je in hemelsnaam een record invoeren en dit zelfde record met 2 aparte queries gaan updaten? Voer gewoon 1 goede INSERT uit en je bent vele malen sneller klaar.

Eerst het id opvragen in MySQL en dan pas de INSERT uitvoeren, kan niet, MySQL is namelijk niet zo'n hele slimme database. Om het héél voorzichtig uit te drukken...

Maar goed, zorg eerst maar voor een goede logica.
 
Tim

Tim

17/04/2008 00:57:00
Quote Anchor link
Dit lijkt zo omdat dit alleen een deel is van het script:

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
<?php
    $pub_date
= date("Y-m-d H:i:s");
    
    mysql_query("INSERT INTO SIRIS_nieuws (pub_date,edit_date,title,alinea1,alinea2,cate,link,foto1,foto2,foto3,foto4,foto5,soort,status)
    VALUES ('$pub_date','$pub_date','$titel','$alinea1','$alinea2','$categorie','$link','$filename1','$filename2','$filename3','$filename4','$filename5','$soort','$status') "
);
    
    // vraag het laatste ID op.
    $nws_id= mysql_insert_id();

    // maak een data entry aan.
    mysql_query("INSERT INTO SIRIS_data_link (m_id,nws_id) VALUES ('$nws_id','$nws_id')");
    
    // update de nieuwe rij, en de tegen partij.
    if ($fab_id !== "0") {
    mysql_query("UPDATE SIRIS_data_link SET nws_id=$nws_id WHERE m_id=$fab_id");
    mysql_query("UPDATE SIRIS_data_link SET fab_id=$fab_id WHERE m_id=$nws_id");
    }

    
    print $nws_id;    
    
    echo"<script language='JavaScript'>window.alert('Nieuwsbericht is toegevoegd');</script>";    
    }

?>


In de tabel data_link staat voor elke bericht een record.
De bedoeling is dus, dat er bij een nieuw bericht eerst een nieuw record word aangemaakt, en daarna word geupdate met het juist link naar een ander bericht, het anderen bericht heeft ook een record en deze moet dus ook zeg maar wederzijds worden geupdate, met de link van dit nieuwe bericht.

gr Tim
 
Tim

Tim

17/04/2008 16:13:00
Quote Anchor link
Niemand die hier een oplossing voor weer ?

Gr Tim
 
Eduard

Eduard

17/04/2008 17:08:00
Quote Anchor link
1. niet bumpen aub
2. ik snap niet waarom je het moet updaten en niet rechstreeks in een INSERT kan toevoegen, mischien kan een uitgewerkte voorbeeld wonderen doen
Gewijzigd op 01/01/1970 01:00:00 door Eduard
 
Joren de Wit

Joren de Wit

17/04/2008 17:17:00
Quote Anchor link
Quote:
De bedoeling is dus, dat er bij een nieuw bericht eerst een nieuw record word aangemaakt, en daarna word geupdate met het juist link naar een ander bericht, het anderen bericht heeft ook een record en deze moet dus ook zeg maar wederzijds worden geupdate, met de link van dit nieuwe bericht.
Dit is wel een hele kromme opzet en aanpak. Sowieso is die tweede UPDATE query overbodig aangezien je het record update dat je net ingevoegd hebt. Zorg dan gewoon dat je een goede INSERT query uitvoert.

Verder zie ik niet welke relaties je nou binnen 1 tabel probeert te leggen. Je link op een of andere manier berichten aan elkaar, maar het lijkt mij dat deze aanpak niet juist kan zijn. Misschien dat je nog eens uit kan leggen wat je nu precies probeert te bereiken?
 
Tim

Tim

18/04/2008 13:28:00
Quote Anchor link
Voor elk bericht word een insert gedaan in de tabel, daarna word indien van toepassing een ander bericht lees Fotoalbum, Audio Fragment of Video fragment, gekoppeld. Het id van dit gekopppelde bericht word dan in de row van het 'hoofd' bericht gezet, en daarna in de row van het gekoppelde bericht. Dus dat is de bedoeling.

Daarom staat er eerst een insert (die dus altijd moet worden gedaan) en daarna indien nodig een update om een link te krijgen naar een van de anderen berichten.

Dus dit is zeg maar de bedoeling.

Tabel ziet er zo uit:

master_id (id van het hoofdbericht)
nws_id (id van nieuwsbericht)
fab_id (id van fotoalbums)
ugma_id (audio fragment)
ugmv_id (video fragment)
prog_id (link naar een programma uit de programmering.)

Gr Tim
 
Tim

Tim

28/04/2008 12:16:00
Quote Anchor link
Hej allemaal,

Hoe zou ik dit dan het beste doen, als we vanaf 0 beginnen.
Het koppelen van verschillende type berichten aan elkaar.

Alvast bedankt voor de input :D
Gr Tim
 



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.