Kolom importeren in bestaande tabel
Het lukt nog steeds niet om de code werkend te krijgen. Voor 'username' en 'password' vul ik 'root' en '' in zoals ik bij installatie heb ingesteld.
Met de code bij 2.IvoP hierboven en afsluitend met jouw code om de hits over te zetten ben ik er bijna echter missen de overige kolommen nog. Is het wellicht ook mogelijk om die nog toe te voegen middels de SQL tab?
Kijk onder de tab Structuur van de tabel die je wil aanpassen en dan zie je [1] Kolom(men) toevoegen na [...]
Klik op de Starten knop en je kunt je nieuwe kolom voorzien van een Naam, type, lengte etc.
Toevoeging op 01/04/2022 00:04:56:
Of in de sql tab met de query
Waarbij varchar een van de vele mogelijke datatypen is en 255 is de lengte, in dit geval het aantal karakters (wat ook niet de waarheid is maar dat laten we maar even in het midden)
Sorry voor mijn onvolledigheid. Zoals je eerder aangaf ben ik begonnen met een lege tabel met alle kolommen maar zonder records. Na de voorgaande SQL code (in de tab van phpadmin) zijn nu id, title, created en hits netjes overgenomen maar mis ik nog de inhoud van de andere kolommen.
Het is dan gewoon een kwestie van je Query uitbreiden van
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$sql = "INSERT INTO 'deb27035_joomla'.'kjmm_content-nieuw' (id, title, created) VALUES (?,?,?)";
$stmt2 = $pdo->prepare($sql);
$stmt2->execute([$id++, $row['title'], $row['created']]);
?>
$sql = "INSERT INTO 'deb27035_joomla'.'kjmm_content-nieuw' (id, title, created) VALUES (?,?,?)";
$stmt2 = $pdo->prepare($sql);
$stmt2->execute([$id++, $row['title'], $row['created']]);
?>
naar
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$sql = "INSERT INTO 'deb27035_joomla'.'kjmm_content-nieuw' (id, title, created, col4, col5, col6) VALUES (?,?,?,?,?,?)";
$stmt2 = $pdo->prepare($sql);
$stmt2->execute([$id++, $row['title'], $row['created'], $row['col4'], $row['col5'], $row['col6']]);
?>
$sql = "INSERT INTO 'deb27035_joomla'.'kjmm_content-nieuw' (id, title, created, col4, col5, col6) VALUES (?,?,?,?,?,?)";
$stmt2 = $pdo->prepare($sql);
$stmt2->execute([$id++, $row['title'], $row['created'], $row['col4'], $row['col5'], $row['col6']]);
?>
Als voorbeeld met 6 kolommen in plaats van 3 en ook 6 vraagtekens in de query in plaats van 3.
Als je er niet uitkomt is het misschien handig om even de structuur van je oude tabel te exporteren en dan het sql bestand te openen en het stukje met CREATE TABLE hier te delen. Je krijgt dan zoiets:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
--
-- Tabelstructuur voor tabel `faq`
--
CREATE TABLE `faq` (
`id` int(11) NOT NULL,
`question` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
`answer` longtext COLLATE utf8mb4_unicode_ci NOT NULL,
`position` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Tabelstructuur voor tabel `faq`
--
CREATE TABLE `faq` (
`id` int(11) NOT NULL,
`question` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
`answer` longtext COLLATE utf8mb4_unicode_ci NOT NULL,
`position` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
Wij weten dan ook welke kolommen je hebt.
Gewijzigd op 01/04/2022 19:15:30 door Frank Nietbelangrijk
Tenslotte met jouw code de actuele hits overgezet. Met enkele steekproeven lijken de hits bij de juiste artikelen te staan.
Het heeft "even" geduurd maar het lijkt nu in orde te zijn. Hartelijk dank voor je hulp.
Goed om te horen :-)