Topic: Reikalinga pagalba. Dingsta kintamasis

<?session_start(); 
if (isset($_SESSION['username']))     { 

include "connect.php"; 

echo" <table border='0' align='center'>  
<form action='TestoKurimas.php?KID=$KID' method='GET'> 
<tr> 
<th>Klausimas:</th><th><input type='text' name='question'></th><th><input type='submit' name='OK'></th> 
</tr> 
</form> 
</table> 
"; 

$name=$_GET['test']; 
echo "<br> Testo pavadinimas  $name"; 
$question=$_GET['question']; 

echo "<br> Naujausiai prideto klausimo pavadinimas $question"; 

$Atsakymoid= mysql_query("SELECT ID from klausimai WHERE klausimas='$question'"); 
$aAID = mysql_fetch_array($Atsakymoid); 
$AID=$aAID['ID']; 

$Klausimoid= mysql_query("SELECT ID from testai WHERE name='$name'"); 
$aKID = mysql_fetch_array($Klausimoid); 
$KID=$aKID['ID']; 

echo "<br> Klausimo  kid = $KID"; // $KID  Turi buti priskirtas i duomenu bazeje esancioje eiluteje KID. Sitoje vietoje isspausdinamas teisingai. $KID&nbs p;reiksme paimta. 


if($_GET['question']!=""){ 

        $klausimai="INSERT INTO klausimai(klausimas)VALUES('$_GET[question]')"; // Viskas priskiriama kaip turi buti. 
        mysql_query($klausimai); 
         
        $putKID= "UPDATE klausimai SET KID=$KID WHERE klausimas='$question'";//  $KID - tampa 0. Vietoje tikrosios reiksmes kuri buvo is spausdinta ECHO. 
        mysql_query($putKID); 
         
        $resultK = mysql_query("SELECT * FROM klausimai WHERE KID='$KID'"); 
          
                while($row = mysql_fetch_array($resultK)) 
                       { 
                        echo"<table border='1'>"; 
                        echo "<tr>"; 
                        echo "<td>" . $row['klausimas'] . "</td>"; 
                        echo "<td><a href=ats.php?KID=$row[KID]>Prideti atsakyma</a></td>"; 
                        echo "<td><a href=Delete.php?ID=$AID>Trinti</a></td>"; 
                        echo "</tr>"; 
                        echo"</table>"; 
                       }  
                } 
error_reporting(-1); 
} else { 
    echo "Pirmiausia prisijunkite!<br><a href='log.php'>Prisijungti.</a><br><a href='reg.php'>Prisiregistruoti</a><br><a href='Home.php'>I&nb sp;pradzia</a>"; 
}  
?>

Sveiki, niekaip neišsprendžiu problemos. Dingsta kintamajo "$KID" reikšmė. Galbūt jūsų akis pastebės klaidą, Ačiū.

P.S. Jeigu matote dar kokių klaidų ar kažko nesuprantate paklauskit.

Re: Reikalinga pagalba. Dingsta kintamasis

Padebugink, kaip atrodo užklausa....:

$putKID= "UPDATE klausimai SET KID=$KID WHERE klausimas='$question'";//  $KID - tampa 0. Vietoje tikrosios reiksmes kuri buvo is spausdinta ECHO. 
echo "Užklausa: <pre>" . $putKID . "</pre>";
mysql_query($putKID);

O šiaip, jeigu taip kintamuosius klijuoji į eilutes, tai pastoviai kažką pametinėsi... jau nekalbant bendrai, kad tokį kodą debugink, nors jis ir labai mažas, bus DIDELIų PROBLEMų.

Re: Reikalinga pagalba. Dingsta kintamasis

Na tu perrašinėji $KID, matyt ten ir bus klaida, patkrink užklausos grąžinamą rez.

Re: Reikalinga pagalba. Dingsta kintamasis

Ačiū už atsakymą Mindaugai, problemos dar neišsprendžiau.

Prieš submitinant klausimą turiu tokią informaciją.

UPDATE klausimai SET KID=243 WHERE klausimas=' '

po paspaudimo turiu tokią informaciją.

UPDATE klausimai SET KID= WHERE klausimas='Keturi?'

Dingsta KID ir vistiek nesuprantu kaip. Esu naujokas, todėl nusimanau dar labai mažai.

"O šiaip, jeigu taip kintamuosius klijuoji į eilutes tai pastoviai kažką pametinėsi..." Gal galima būtų paaiškinti detaliau. Galbūt duoti pavyzdį kaip reikia daryti teisingai. Arba rekomenduoti php video pamokas? Ačiū už atsakymą.

Aivaras37 - Norėčiau tikslumo, ačiū.

Re: Reikalinga pagalba. Dingsta kintamasis

1) (tarp kitko) Kokia $KID reikšmė būna sekančioje eilutėje ir kodėl?

<form action='TestoKurimas.php?KID=$KID' method='GET'>

2) Kokia $name reikšmė būna sekančioje eilutėje ir kodėl?

$name=$_GET['test'];

Automatiškai niekada neturint $name reikšmės sekanti užklausa+kodas visada nieko negrąžins, todėl ir $KID bus paimamas tik tais atvejais, kai stulpelio name reikšmė bus tuščia.

$Klausimoid= mysql_query("SELECT ID from testai WHERE name='$name'");
$aKID = mysql_fetch_array($Klausimoid);
$KID=$aKID['ID'];

Išvados: reikia pasimokyti elementariai švariai ir aiškiai rašyti kodą, tikrinti kintamuosius, atskirti HTML'ą, nuo PHP, tikrinti klaidas, apdoroti įvedamus duomenis, papildomai juos apdoroti siunčiant į mysql užklausas.

Re: Reikalinga pagalba. Dingsta kintamasis

<form action='TestoKurimas.php?KID=$KID' method='GET'> Ištryniau įą KID=$KID vietą. Ekspermentavau ir palikau.


$name=$_GET['test'] Pasiema iš URL.  --- http://122.lt/mok11/TestoKurimas.php?te … amp;ID=244

tas ID = 244. Turėtų būti priskirtas $KID.

$KID = 244;

Problemos dar neišprendžiau.

Pradinis puslapis ------ http://www.122.lt/mok11/Home.php

Re: Reikalinga pagalba. Dingsta kintamasis

Tai vat kai programuoji nesamones tai nesamonė ir gaunasi.

Parodyk, man tą formą/URL, kuri vienu metu paduoda abu sekančius parametrus:

$name=$_GET['test'];
$question=$_GET['question'];

Re: Reikalinga pagalba. Dingsta kintamasis

<?php session_start();
if (isset($_SESSION['username']))  { 

include "connect.php";



echo" <table border='0' align='center'>
<form action='Darbaz.php' method='GET'>
<tr>


<th>TestoPavadinimas:</th><th><input type='text' name='test'></th><th><input type='submit' name='OKT'></th>

</form>
</table>
";
$user=$_SESSION['username'];
$testoid = mysql_query("SELECT ID from vartotojai WHERE username='$user'");
$aUID = mysql_fetch_array($testoid);
$UID=$aUID['ID'];

$testas=$_GET['test'];
$Klausimoid= mysql_query("SELECT ID from testai WHERE name='$testas'");
$aKID = mysql_fetch_array($Klausimoid);
$KID=$aKID['ID'];



if($_GET['OKT']!="")
  {
$testas=$_GET['test'];
echo " Jūsų testo pavadinimas - $testas";
$test =" INSERT INTO testai(name)VALUES('$_GET[test]')";
mysql_query($test);   
  $putUID = "UPDATE testai SET UID = '$UID' WHERE name='$_GET[test]'";
   mysql_query($putUID);
    $resultT = mysql_query("SELECT * FROM testai WHERE UID='$UID'");
      while($row = mysql_fetch_array($resultT))

                       {
                    
                       echo"<table>";
                       echo "<tr>";
                       echo "<td>" . $row['name'] . "</td>";
                        echo "<td><a href='TestoKurimas.php?test=$testas&ID=$row[ID]'>Prideti klausimus</a></td>"; // ta vieta kur perduodami kintamieji
                        echo "<td><a href='Delete.php'>Trinti</a></td>";
                       echo "</tr>";
                       echo"</table>";
                       }   
  }
                      
} else{

echo "Jūs nesate prisijungęs.<br><a href='log.php'>Prisijungti.</a><br><a href='reg.php'>Prisiregistruoti</a><br><a href='Home.php'>I pradzia</a>";
}


?>
      
   }
*/
} else{

echo "Jūs nesate prisijungęs.<br><a href='log.php'>Prisijungti.</a><br><a href='reg.php'>Prisiregistruoti</a><br><a href='Home.php'>I pradzia</a>";
}


?>

Re: Reikalinga pagalba. Dingsta kintamasis

<form action='Darbaz.php' method='GET'>
<tr>
<th>TestoPavadinimas:</th><th><input type='text' name='test'></th><th><input type='submit' name='OKT'></th>
</form>

Nematau question.

Re: Reikalinga pagalba. Dingsta kintamasis

Ai atsiprašau netaip perskaičiau. Tai yra dvi formos skirtingose failuose. Viena forma testo pavadinimo. Faile Darbaz.php

<form action='Darbaz.php' method='GET'>
<tr>


<th>TestoPavadinimas:</th><th><input type='text' name='test'></th><th><input type='submit' name='OKT'></th>

kita forma faile TestoKurimas.php


<form action='TestoKurimas.php' method='GET'>
<tr>
<th>Klausimas:</th><th><input type='text' name='question'></th><th><input type='submit' name='OK'></th>

Re: Reikalinga pagalba. Dingsta kintamasis

Tai tame ir esmė, kad sekantis kodas visada bus neteisingas:

$name=$_GET['test'];
$question=$_GET['question'];

Re: Reikalinga pagalba. Dingsta kintamasis

Aišku. Gal turite pasiūlymų kaip būtų galima pakeisti juos. Ar šiems kintamiesiams $name ir $question priskirti reikšmes?