Eli tuli pikku ongelma.Yritän väsätä CMS:ää mutta admin paneeli vähän reistailee.Eli yhdistän tietokantaan ja kaikki menee hyvin mutta kun tallennan sen se reistailee.Käytän tallenuksessa sql komentoa nimeltä update.Yritän updatetaa sivua mutta ei vain toimi
tässä koodi.
<?php include("fun.php"); yhdista(); $id = $_GET['id']; $tekbox11 = stripslashes($_POST['tekbox1']); $box11 = stripslashes($_POST['box1']); $tekbox21 = stripslashes($_POST['tekbox2']); $box21 = stripslashes($_POST['box2']); $tekbox31 = stripslashes($_POST['tekbox3']); $box31 = stripslashes($_POST['box3']); $tekbox1 = mysql_real_escape_string($tekbox11,$yhteys); $box1 = mysql_real_escape_string($box11,$yhteys); $tekbox2 = mysql_real_escape_string($tekbox21,$yhteys); $box2 = mysql_real_escape_string($box21,$yhteys); $tekbox3 = mysql_real_escape_string($tekbox31,$yhteys); $box3 = mysql_real_escape_string($box31,$yhteys); $etusivu = mysql_real_escape_string($_POST['etusivu'],$yhteys); $sql = "update kala_page set etusivu = '$etusivu' tekbox1 = '$tekbox1' box1 = '$box1' tekbox2 = '$tekbox2' box2 = '$box2' tekbox3 = '$tekbox3' box3 = '$box3' where id = $id"; $tulos = mysql_query($sql); if (!$tulos) { echo "MYSQL VIRHE!!!!!"; } ?>
Muokkaus laatikot ovat teksti laatikkoja.joilla on nimi esim.box1 jne.
SQL-lauseestasi puuttuu pilkut eri sijoitusten väliltä:
$sql = "update kala_page set etusivu = '$etusivu', tekbox1 = '$tekbox1', box1 = '$box1', tekbox2 = '$tekbox2', box2 = '$box2', tekbox3 = '$tekbox3', box3 = '$box3' where id = $id";
Voisit alusta asti kertoa aina, millä tavalla koodi "reistailee". Ilmiselvästi vika ei myöskään ole PHP:ssä vaan koodissasi, joten alkuperäinen otsikkosi oli huono. Onneksi se on nyt korjattu.
Sivulle tulostettavan virheilmoituksen mukaan kannattaa kehitysvaiheessa lisätä aina mysql_error-funktiolta saatava virheilmoitus. Tämän virheilmoituksen ja minkä tahansa UPDATE-lauseesta kertovan oppaan perusteella selviää, että peräkkäisten sijoitusten väliin täytyy laittaa pilkku: SET a = 1, b = 2
.
Warning: mysql_real_escape_string() expects parameter 2 to be resource, null given in /home/fames/www/kulta/tallenna.php on line 11
Warning: mysql_real_escape_string() expects parameter 2 to be resource, null given in /home/fames/www/kulta/tallenna.php on line 12
Warning: mysql_real_escape_string() expects parameter 2 to be resource, null given in /home/fames/www/kulta/tallenna.php on line 13
Warning: mysql_real_escape_string() expects parameter 2 to be resource, null given in /home/fames/www/kulta/tallenna.php on line 14
Warning: mysql_real_escape_string() expects parameter 2 to be resource, null given in /home/fames/www/kulta/tallenna.php on line 15
Warning: mysql_real_escape_string() expects parameter 2 to be resource, null given in /home/fames/www/kulta/tallenna.php on line 16
Warning: mysql_real_escape_string() expects parameter 2 to be resource, null given in /home/fames/www/kulta/tallenna.php on line 17
Tuo tapahtui nyt.=((
Tuo tarkoittanee, että $yhteys-muuttujaa ei ole määritelty (globaalisti), joten se on null.
Jälkimmäiseen vastaan, että muuttujasi $yhteys on huonosti muodostettu / se ei ole tuolle funktiolle näkyvillä. Se oletettvasti luodaan tiedostossa fun.php? Siellä lienee virhe. mysql_connect taitaa antaa resurssiksi NULL:n, jos muodostus epäonnistuu.
Muuttuja $yhteys ei ole pakollinen funktiossa mysql_real_escape_string, joten voit ottaa sen pois ja antaa funktiolle vain yhden parametrin.
Aihe on jo aika vanha, joten et voi enää vastata siihen.