Buona sera, il mio problema riguarda l'utilizzo di una query UPDATE allo scopo di modificare i nomi di alcuni record. Non riesco bene a capire cosa devo fare.
Questo è il mio codice
Quello che non capisco è: voglio che la mia variabile get sia, a seconda delle caselle, il nuovo nome delle pagine. Detto questo la clausola WHERE che cosa deve dire? Laddove cosa? Io voglio dire qualcosa tipo "laddove $modifica_pagina è uguale al nuovo nome_pagina". Come si fa?
Grazie!
Questo è il mio codice
PHP:
function show_pagina($db,$sql,$q) {
$pagina = htmlentities($_GET['modifica_pagina']);
echo $pagina;
try {
$sql = $db->prepare("SELECT * FROM pagine");
$sql->execute();
$result = $sql->fetchAll(PDO::FETCH_ASSOC);
$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
echo 'Elenco pagine';
echo '<ul>';
foreach ($result as $value) {
echo "<a href='{$value['slug']}'><li>{$value['nome_pagina']}</li></a>";
echo "<label for 'modifica_pagina'>";
echo "<form name='form' method='get' action=''>";
echo "<input type='text' name='modifica_pagina'>";
echo "<input type='submit' name='edit_pages' value='Modifica pagina'>";
echo "</form>";
}
echo '</ul>';
} catch (PDOException $e) {
echo 'Selezione fallita'.$e->getMessage();
}
try {
if (isset($_POST['edit_pages'])) {
$sql = "UPDATE pagine SET nome_pagina = :modifica_pagina, slug = :modifica_pagina WHERE modifica_pagina = '".$modifica_pagina."'";
$q = $db->prepare($sql);
$q->execute(array(':modifica_pagina'=>$_POST['modifica_pagina'],':slug'=>$_POST['modifica_pagina']));
$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
}
} catch(PDOException $e) {
echo 'Modifica fallita'.$e->getMessage();
}
}
Quello che non capisco è: voglio che la mia variabile get sia, a seconda delle caselle, il nuovo nome delle pagine. Detto questo la clausola WHERE che cosa deve dire? Laddove cosa? Io voglio dire qualcosa tipo "laddove $modifica_pagina è uguale al nuovo nome_pagina". Come si fa?
Grazie!