site VS database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jeroen Verstraete

Jeroen Verstraete

11/09/2011 23:18:32
Quote Anchor link
Hallo

Ik heb recent dit probleem:

Mijn database komt niet overeen met wat er op m'n site staat.

even meer duidelijkheid:
Ik stuur bv een tekstje in als: 'dit is een test'. Dit zou dan naar mijn database gestuurd moeten worden. Maar op m'n database wordt dit niet ontvangen. Hetzelfde geldt als ik mijn tekst verander en/of bijwerk bv: 'dit is een test voor de duidelijkheid'.

Het rare er van is dat ik op een andere pagina, die de database aanroept om alle tekstjes die ingestuurd werden onder elkaar te zetten, wel de aangepaste versie zie. Op database zie ik alleen de oude.

Nu is het ook zo dat nieuwe teksten die ingestuurd worden niet getoond worden in de database en ook niet op die pagina.

Weet iemand hoe dit komt?

Onderaan m'n database (phpmyadmin) is dit te lezen:
Quote:
Een recentere versie van phpMyAdmin is beschikbaar, u zou een upgrade kunnen overwegen. De nieuwe versie is 3.4.4, uitgebracht op 2011-08-24.
De phpMyAdmin configuratie opslag is niet volledig ingesteld, sommige uitgebreide mogelijkheden zijn uitgeschakeld. Om te weten te komen waarom klik hier.[/QUOTE]

Hoe ik m'n database moet updaten weet ik niet en ook dat ondere snap ik niet helemaal.

Toch alvast bedankt!

mvg,
Jeroen

ps: wegens een drukke week kan het even duren voor ik terug antwoord.
 
PHP hulp

PHP hulp

22/12/2024 22:00:50
 
PH Piet

PH Piet

11/09/2011 23:22:48
Quote Anchor link
Post je code even van de verschillende pagina's.
 
Jeroen Verstraete

Jeroen Verstraete

11/09/2011 23:39:54
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?
session_start();
$dbhost = 'localhost'; //De server waar je database gehost word. Meestal 'localhost'.
$dbuser = 'XXXXX'; //Je gebruikersnaam van je database.
$dbpass = 'XXXXX'; //Het wachtwoord van je database.
$dbname = 'raadselm_joom1'; //De naam van je database.

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

$user =& JFactory::getUser();
$gebruiker = $user->get('username');


$result=mysql_query("SELECT * FROM Teller WHERE wat = 'welkevraag'");
$row = mysql_fetch_array($result);
$vraag = $row['aantal'];

$result2=mysql_query("SELECT * From raadsel WHERE id = '$vraag'");
$row2 = mysql_fetch_array($result2);
$vraag2= $row2['vraag'];

$result3=mysql_query("SELECT * From raadsell WHERE id = '$vraag'");
$row3 = mysql_fetch_array($result3);
$vraag3= $row3['vraag'];

$user1= mysql_query("SELECT * FROM antwoorden WHERE vraag = '$vraag' AND user = '$gebruiker'");
$user2= mysql_num_rows($user1);
$row9 = mysql_fetch_array($user1);
$antw = $row9['antwoord'];

echo "<b>We zitten aan week "  .$vraag;
echo "</b><br></br><p><b>Wiskunde:</b><br />";

if($user2==0) {
    ?>

        <form name="input" method="POST">
            Klikken op de 'ik doe mee!' knop heeft als gevolgt dat er geregistreerd wordt dat je meezoekt voor deze week (de 2 vragen). Ook als je niets instuurd zal je goed/fout ratio benvloed worden. <br>
        <input type="submit" value="Ik doe mee!" />
        </form>
    <?
        if($_SERVER['REQUEST_METHOD'] == 'POST') {
            mysql_query("INSERT INTO `antwoorden` (vraag,antwoord,datum,user) VALUES ( '".$vraag."', 'Schrijf hier je antwoord.' ,'".date("d/m/Y")."', '".$gebruiker."') ") OR DIE(mysql_error());
            mysql_query("UPDATE `Teller` SET `aantal`=`aantal`+1 WHERE Wat = 'antwoorden'");mysql_query("UPDATE `joom_users` SET `meedoen`=`meedoen`+1 WHERE username = '$gebruiker'");
            mysql_query("INSERT INTO `antwoordenl` (vraag,antwoord,datum,user) VALUES ( '".$vraag."', 'Schrijf hier je antwoord.' ,'".date("d/m/Y")."', '".$gebruiker."') ") OR DIE(mysql_error());
            header( 'refresh: 1; URL=http://www.raadselman.be/index.php/vragen-vd-week' );
        }
}

else{
echo "<br />De vraag is: <br></br>"  .$vraag2;

?>

<form name="input" method="POST">
antwoord: <br /><textarea name="antwoord" rows=5 cols=100><? echo "" .$antw. " "; ?> </textarea>
<input type="submit" value="insturen" />
</form>


<?
$punt
= $row2['punten'];
echo "Deze vraag is "  .$punt. " punten waard.<br />";
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$antw =mysql_real_escape_string($_POST['antwoord']);
if (!empty($antw)){
    mysql_query("UPDATE `antwoorden` SET antwoord ='$antw' WHERE vraag = '$vraag' AND user = '$gebruiker' ") ;
header( 'refresh: 1; URL=http://www.raadselman.be/index.php/vragen-vd-week' );
}}
}



?>

Hierboven het invoeren van een antwoord.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?
session_start();
$dbhost = 'localhost'; //De server waar je database gehost word. Meestal 'localhost'.
$dbuser = 'XXXXX'; //Je gebruikersnaam van je database.
$dbpass = 'XXXXX'; //Het wachtwoord van je database.
$dbname = 'raadselm_joom1'; //De naam van je database.
$user =& JFactory::getUser();
$gebruiker = $user->get('username');
mysql_select_db($dbname,mysql_connect($dbhost,$dbuser,$dbpass));
$result=mysql_query("SELECT * FROM Teller WHERE wat = 'welkevraag'");
$row = mysql_fetch_array($result);
$vraag = $row['aantal']; //vraag nummer


?>

<b>Wiskunde:</b>
<table width="100%">
<tr><td>nr</td><? if ($gebruiker == raadselman){ ?><td>User</td><? } ?><td>Antwoord</td></tr>
<?
$top2
= "SELECT * FROM `antwoorden` ORDER BY id ASC";
$top1 = mysql_query($top2);
$i=0;
while($top = mysql_fetch_assoc($top1)){

if ($top['user']==admin){}
else{
if ($top['user']==raadselman){}
else{
    if($top['gecontroleerd'] == 0){
    if($top['vraag'] == $vraag){
$i=$i+1;
echo '<tr><td>'.$i.'</td>';  if ($gebruiker == raadselman){ echo '<td>'.$top['user'].'</td>'; } echo '<td>'.$top['antwoord'].'</td></tr>';
}}}}}

?>

</table>
<br /><br />
<b>Logica:</b><p></p>
<table width="100%">
<tr><td>nr</td><? if ($gebruiker == raadselman){ ?><td>User</td><? }?><td>Antwoord</td></tr>
<?
$top2l
= "SELECT * FROM `antwoordenl` ORDER BY id ASC";
$top1l = mysql_query($top2l);
$il=0;
while($topl=mysql_fetch_assoc($top1l)){

if ($topl['user']==admin){}
else{
if ($topl['user']==raadselman){}
else{
    if($topl['vraag'] == $vraag){
$il=$il+1;
echo '<tr><td>'.$il.'</td>';  if ($gebruiker == raadselman){ echo '<td>'.$topl['user'].'</td>'; } echo '<td>'.$topl['antwoord'].'</td></tr>';
}}}}

?>

</table>

Het opvragen van alle antwoorden.
Gewijzigd op 11/09/2011 23:50:42 door Jeroen Verstraete
 
- Ariën  -
Beheerder

- Ariën -

11/09/2011 23:43:15
Quote Anchor link
Kan je de code even tussen code-tags plaatsen?
 
Jasper DS

Jasper DS

12/09/2011 09:10:29
Quote Anchor link
Ruim je code alleszins al even op. Denk aan foutafhandeling etc. Neem een voorbeeld aan dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?php
    
    # errors weergeven
    ini_set('display_errors',1); // 1 == aan , 0 == uit
    error_reporting(E_ALL | E_STRICT);
    
    # sql debug
    define('DEBUG_MODE',true);  // true == aan, false == uit

    # functie voor sql debug

        function showSQLError($sql,$error,$text='Error')
        {

            if (DEBUG_MODE)
            {

                return  '<pre>Error: ' . $error . '<br />' . $sql . '</pre>';
            }

            else
            {
                return $text;
            }
        }
  
    
    session_start();
    
    $dbhost = 'localhost'; //De server waar je database gehost word. Meestal 'localhost'.
    $dbuser = 'XXXXX'; //Je gebruikersnaam van je database.
    $dbpass = 'XXXXX'; //Het wachtwoord van je database.
    $dbname = 'raadselm_joom1'; //De naam van je database.
    
    $user =& JFactory::getUser();
    $gebruiker = $user->get('username');
    
    if(($verbind = mysql_connect($dbhost,$dbuser,$dbpass)) === false)
    {

        echo 'Het verbinden van de database is mislukt';
    }

    elseif(mysql_select_db($dbname,$verbind) === false)
    {

        echo 'Selecteren database is mislukt';
    }

    
    $sql_teller =    "SELECT aantal
                     FROM Teller
                     WHERE wat = 'welkevraag'
                    "
;
    
    if(($result_teller = mysql_query($sql_teller)) === false)
    {

        $vraag = showSQLError($sql_teller, mysql_error(), 'De query is mislukt');
    }

    elseif(mysql_num_rows($result_teller) < 1)
    {

        $vraag = 'Geen gegevens gevonden';
    }

    else
    {
        $row_teller = mysql_fetch_assoc($result_teller);
        
        $vraag = $row['aantal']; //vraag nummer
    }


?>
 
Ozzie PHP

Ozzie PHP

12/09/2011 09:41:22
Quote Anchor link
PHP Jasper op 12/09/2011 09:10:29:
Neem een voorbeeld aan dit:

Als we dan toch bezig zijn, programmeren doe je eigenlijk altijd in het Engels. Dus $verbind moet zijn $connect en $vraag moet zijn $question.

Wil je per sé in het Nederlands programmeren (wat ik niet aanraad) doe het dan wel consequent!

Dus $dbuser zou dan worden $dbgebruiker en $row_teller zou worden $rij_teller.

En als we dan toch bezig zijn... wees ook consequent in het gebruik van de opmaak van variabelen: of zet een streepje tussen 2 woorden, of doe dit niet, MAAR... doe het in ieder geval overal hetzelfde. Wees CONSEQUENT.

In het voorbeeld hierboven...

$dbuser en $row_teller zou moeten worden $dbuser en $rowteller of $db_user en $row_teller waarbij de laatste variant met streepjes de voorkeur heeft. Nog beter is $db_user en $row_counter.

Tot zover mijn aanvulling.
 
Jeroen Verstraete

Jeroen Verstraete

13/09/2011 23:44:56
Quote Anchor link
Allemaal goed wel, maar weet niemand het antwoord voor mijn probleem momenteel?
 
Marco PHPJunky

Marco PHPJunky

14/09/2011 00:03:52
Quote Anchor link
als ik het goed begrijp sla je wat op in je database bijvoorbeeld: "hello world!" en als je het dan eruit haalt op een pagina dan staat er een andere tekst of word hij ook hellemaal niet geupdate in de database ?

staat de melding van phpmyadmin er nog steeds of is hij ondertussen al geupdate... ?
 
Jeroen Verstraete

Jeroen Verstraete

14/09/2011 00:09:55
Quote Anchor link
tekst wordt goed afgehaald maar het wordt niet in de database zelf geupdate. Geen idee van waar het script dan die tekst haalt...

ja, die staat er nog steeds.

Nu is m'n 'myadmin' ook niet meer bereikbaar, er staat: lincese has expired...

Ben contact aan het opnemen daaromtrent met m'n host.
 
- Ariën  -
Beheerder

- Ariën -

14/09/2011 00:12:56
Quote Anchor link
Als je doelt op phpMyAdmin, dat zou knap zijn. Die is open-source en heeft geen licentie nodig ;-)
 
Jeroen Verstraete

Jeroen Verstraete

14/09/2011 00:14:07
Quote Anchor link
Nee, die is nog bereikbaar. euh, ben dan van naam gemist.

Directadmin, dat is het dat ik bedoelde :)
 
The Force

The Force

14/09/2011 00:35:43
Quote Anchor link
Kijk in ieder geval of die insert/update query's true of false teruggeven. En bij de update hoeveel 'affected rows' er zijn. Dat kan je ook zien als je de query echo'ed en dan kopieert en in PHPMyAdmin/Directadmin uitvoert. Wij kunnen aan de hand van je code niet ruiken wat er mis gaat. De update geeft waarschijnlijk niet het juiste resultaat, maar dat is afhankelijk van je database en bijbehorende data. Als je het voorbeeld van Jasper volgt dan was je er ook al achter geweest waar de fout zit. Dus ga je code verbeteren en ga een beetje debuggen, dan kom je er met een beetje gezond verstand achter waar het mis gaat.
 
Jeroen Verstraete

Jeroen Verstraete

14/09/2011 00:40:33
Quote Anchor link
The Force op 14/09/2011 00:35:43:
Kijk in ieder geval of die insert/update query's true of false teruggeven. En bij de update hoeveel 'affected rows' er zijn. Dat kan je ook zien als je de query echo'ed en dan kopieert en in PHPMyAdmin/Directadmin uitvoert.



eerlijk gezegd weet ik niet precies wat je bedoelt met dit...
wat moet ik precies doen?

Ik begrijp dat jullie niet alles kunnen ruiken :)

Ben een beginner omtrent PHP en heb deze scripts zelfgeschreven, ben er bewust van dat er nog veel dingen beter kunnen. Als dit probleem eens gedaan is zal ik eens beginnen met het herschrijven van m'n scripts.
 
Jeroen Verstraete

Jeroen Verstraete

18/09/2011 14:27:06
Quote Anchor link
Opgelost!

Het probleem was gewoon dat ik nog altijd naar de ipadres website, directadmin en zo naar de ipadres site van phpmyadmin. bv: 178.XXX.XXX/phpmyadmin

het moest de mijnsite.be/phpmyadmin zijn

om de één of andere manier lopen die 2 databasen niet meer het zelfde...
Nu dat ik weet dat ik de dingen in de laatste database moet aanpassen is alles opgelost!

toch bedankt voor jullie hulp!

Ik zal zeker eens m'n scripts in orde maken!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.