Insert en update probleempje
Ik heb hier een klein probleempje:
Code (php)
1
2
3
4
5
6
7
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'");
}
?>
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:
Gewijzigd op 01/01/1970 01:00:00 door Tim
2. vars buiten quotes
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
en als je deze apart in phpmyadmin gooid (of wat je ook gebruikt) wat krijg je dan te zien?
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
mysql_affected_rows() schittert door afwezigheid... Wie zegt dat jouw queries ook iets uitvoeren? En wie zegt dat ze technisch wel zijn gelukt?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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;
?>
$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.
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.
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
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>";
}
?>
$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
Gr Tim
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
Quote:
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.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.
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?
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
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