Avatar billede thomic Nybegynder
30. juli 2007 - 14:15 Der er 9 kommentarer

mass-update indlæg-overskrift til topics

Hej.

Jeg har et problem.

jeg har en sql-tabel, ved navn topics.
I denne tabel er kollonen "Overskrift" desværre blevet tom - jeg har så selv ved hjælp af search/replace i notesblok indsat "Ingen overskrift" ved alle records.
Dette betyder, at alle mine 550 tråde ikke har nogen overskrift men bare "ingen overskrift".
Dette er naturligvis ikke brugbart og her håbede jeg så, at I kunne hjælp.

Overskriften ligger nemlig også i tabellen "posts" som posts_overskrift - denne tabel har også som også har "Topic_id" som svarer til id'et på det topic, indlægget ligger under

Her tænkte jeg så på, om man ikke kan lave et script som mass-updaterer alle records i "topics"

Således at når jeg trykker på en knap, så opdaterer den tabellen "topics", hvor den indsætter "posts_overskrift" fra tabllen "posts" i "topics_overskrift" i tabellen "topics" hvor id'et er ens - og det gør den så ved alle records.


Håber det er til at forstå, og at der er nogen, der vil hjælpe.
På forhånd tak.

ps. lagde det i php, da det er det jeg er mest velkendt med, hvis det kan gøres nemmere på en anden måde, så sig endelig til.
Avatar billede expnet Seniormester
30. juli 2007 - 14:32 #1
skal det forstås at id i posts er lige med topi_id i topics
Avatar billede expnet Seniormester
30. juli 2007 - 14:50 #2
[utest tage ect. lige backup af de to tabeller der tale om]

---kode start---

<?
$dbhost ="localhost";
$dbuser ="dit brugernavn";
$dbpass ="dit password";
$dbname ="din database's navn";

$conn = mysql_connect($dbhost, $dbuser, $dbpass);
mysql_select_db($dbname);

if(isset($_POST[startupdate])){
$sqlposts = mysql_query("select * from posts") or die ( mysql_error() );

while($post_rs = mysql_fetch_array($sqlposts) ){

mysql_query("update topics set topics_overskrift = '$post_rs[posts_overskrift]' where Topic_id ='$post_rs[id]'") or die ( mysql_error() );

echo "records-updates er succesfuldt gennemført...";
}
?>
<form method="post" action="">
<input type="submit" value="Start [records-updates]" name="startupdate">
</form>

--- kode slut ---
Avatar billede expnet Seniormester
30. juli 2007 - 14:51 #3
UPS: rettet 1 fejl

<?
$dbhost ="localhost";
$dbuser ="dit brugernavn";
$dbpass ="dit password";
$dbname ="din database's navn";

$conn = mysql_connect($dbhost, $dbuser, $dbpass);
mysql_select_db($dbname);

if(isset($_POST[startupdate])){
$sqlposts = mysql_query("select * from posts") or die ( mysql_error() );

while($post_rs = mysql_fetch_array($sqlposts) ){

mysql_query("update topics set topics_overskrift = '$post_rs[posts_overskrift]' where Topic_id ='$post_rs[id]'") or die ( mysql_error() );

echo "records-updates er succesfuldt gennemført...";
}
}
?>
<form method="post" action="">
<input type="submit" value="Start [records-updates]" name="startupdate">
</form>
Avatar billede thomic Nybegynder
30. juli 2007 - 15:11 #4
Hej.

Tak for dit hurtige svar :)
Der er dog desværre nogle fejl.

Jeg får denne fejlmeddelse:


records-updates er succesfuldt gennemført...records-updates er succesfuldt gennemført...records-updates er succesfuldt gennemført...records-updates er succesfuldt gennemført...records-updates er succesfuldt gennemført...records-updates er succesfuldt gennemført...records-updates er succesfuldt gennemført...records-updates er succesfuldt gennemført...records-updates er succesfuldt gennemført...records-updates er succesfuldt gennemført...records-updates er succesfuldt gennemført...records-updates er succesfuldt gennemført...records-updates er succesfuldt gennemført...records-updates er succesfuldt gennemført...records-updates er succesfuldt gennemført...records-updates er succesfuldt gennemført...records-updates er succesfuldt gennemført...records-updates er succesfuldt gennemført...records-updates er succesfuldt gennemført...records-updates er succesfuldt gennemført...records-updates er succesfuldt gennemført...records-updates er succesfuldt gennemført...records-updates er succesfuldt gennemført...records-updates er succesfuldt gennemført...records-updates er succesfuldt gennemført...records-updates er succesfuldt gennemført...You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'er der deltog i muhammedvideoen.' where id= '20'' at line 1


Så den har kun opdateret nogle af trådene - og et andet problem er, at de tråde, den har opdateret der har mange af dem samme overskrift, hvilket jo ikke burde kunne ske.

Kan man evt. også gøre sådan, at det indlæg den tager overskriften fra, det er der hvor post_id er lavest - så den altså tager overskriften fra det første indlæg i tråden og kun fra det.

Men kanon hjælp indtil videre.
Avatar billede majbom Novice
30. juli 2007 - 21:55 #5
den fejl du får, tyder på at der er en ' i en af strengene der bliver smidt i databsen og den tror så at linjen er slut, fordi du bruger ' til at pakke vriabler ind i...
Avatar billede thomic Nybegynder
30. juli 2007 - 23:23 #6
Ja, men hvordan kan jeg så komme forbi det - hvordan får jeg den til at se bort fra tegn såsom " og '
Avatar billede thomic Nybegynder
31. juli 2007 - 01:58 #7
Nevermind - expnet smid et svar og få point
Avatar billede majbom Novice
21. januar 2009 - 09:59 #8
expnet?
Avatar billede majbom Novice
04. november 2010 - 10:26 #9
kan vi lukke her?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester