MySQL Error + PHP

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Donny

Donny

12/01/2010 21:38:00
Quote Anchor link
Beste mensen, Ik heb een vraag, Ik ben bezig met een klanten database voor mijn werk maar kom er niet uit met een update script. Ik heb al veel hulp ermee gehad maar kom niet verder.. Is er iemand die mij daarbij kan helpen? Ik heb de volgende codes:



fill.php (Invul formulier)

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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<form action="ingevuld.php" method="post">
Pasnummer: <select name="begincijfers">
  <option>1</option>
  <option>2</option>
</select>
<input name="pasnummer" type="text" /><br />
Voorletters: <input name="voorletters" type="text" /><br />
Adres: <input name="adres" type="text" /><br />
Email: <input name="email" type="text" /><br />
Ingangsdatum: <input name="ingangdatum" type="text" /><br />
<input type="submit" value="submit" />
</form>

</body>




ingevuld.php (Query gelukt)

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
<?php


// connecten met database
mysql_connect ('localhost', '', '');


// database selsecteren
mysql_select_db('wkhouders');



// als de server een aanvraag krijgt en de methode is POST
if($_SERVER[ 'REQUEST_METHOD'] == 'POST')
{



// even controleren of alle $_POST['vars'] binnen komen
print_r($_POST);

// LET op de QUOTES!
$SQL = "INSERT INTO wkhouders (
                begincijfers,
                pasnummer,
                voorletters,
                adres,
                email,
                ingangdatum
                           )
                           VALUES (
        '"
. mysql_real_escape_string($_POST['begincijfers']) . "',
        '"
. mysql_real_escape_string($_POST['pasnummer']) . "',
        '"
. mysql_real_escape_string($_POST['voorletters']) . "',
        '"
. mysql_real_escape_string($_POST['adres']) . "',
        '"
. mysql_real_escape_string($_POST['email']) . "',
        '"
. mysql_real_escape_string($_POST['ingangdatum']) . "'
                                   )"
;
$query = mysql_query($SQL);
//als de query misslukt
     if(!$query)
     {

         echo '->>ERROR<<- ';
        echo $SQL;
      }

      else
      {
        echo 'INSERT gelukt!';
      }
}

?>
  



result.php (gegevens van DB ophalen)

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
<?php
// connecten met database
mysql_connect ('localhost', '', '');
// database selsecteren
mysql_select_db('wkhouders');

// We selecteren wat we nodig hebben..
$SQL = "SELECT     begincijfers,
                pasnummer,
                   voorletters,
                adres,
                ingangdatum,
                email
                 FROM
                  wkhouders"
;

// De query
$query = mysql_query($SQL);

// een while loop met de resultaten..
while($result = mysql_fetch_assoc($query))
{


  // echo het resultaat..
echo '<table border="1" cellpading="0" cellspacing="0" width="900" />';

echo '<td width="150">' . $result['begincijfers']. "" . $result['pasnummer'] . '</td>';

echo '<td width="50">' . $result['voorletters']. '</td>';
echo '<td>' . $result['adres']. '</td>';
echo '<td>' . $result['email']. '</td>';
echo '<td width="100">' . $result['ingangdatum']. '</td>';

echo '</table>';
}

?>



delete.php

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
<?PHP

if( $_GET['action'] == "delete_pas" )
{

    $SQL = "DELETE FROM `wkhouders` where `email` = '" . mysql_real_escape_string( $_GET['email'] ) . "' and `pasnummer` = '" . mysql_real_escape_string( $_GET['pasnummer'] ) . "'";
    
    $query = mysql_query($SQL);

     if(!$query)
     {

         echo '->>ERROR<<- ';
        echo $SQL;
      }

      else
      {
        echo 'INSERT gelukt!';
      }
}


?>




Bewerk.php

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
71
72
73
74
75
76
77
78
79
80
81
<?php

if($_SERVER['REQUEST_METHOD'] == 'POST')
{


        $SQL = "UPDATE wkhouders SET
                begincijfers = '"
. mysql_real_escape_string($_POST['begincijfers']) . "',
                pasnummer = '"
. mysql_real_escape_string($_POST['pasnummer']) . "',
                voorletters = '"
. mysql_real_escape_string($_POST['voorletters']) . "',
                adres = '"
. mysql_real_escape_string($_POST['adres']) . "',
                email = '"
. mysql_real_escape_string($_POST['email']) . "',
                ingangdatum = '"
. mysql_real_escape_string($_POST['ingangdatum']) . "'
                WHERE
                email = '"
. mysql_real_escape_string( $_GET['email'] ) . "'
                AND
                pasnummer = '"
. mysql_real_escape_string( $_GET['pasnummer'] ) . "'";
        
         $query = mysql_query($SQL);

         if(!$query)
         {

             echo '->>ERROR<<- ';
            echo $SQL;
          }

          else
          {
            echo 'INSERT gelukt!';
          }
        
}
// einde posten

if($_SERVER['REQUEST_METHOD'] == 'GET')
{

    $select = "SELECT begincijfers,
                  pasnummer,
                  voorletters,
                  adres,
                  email,
                  ingangsdatum
                  FROM
                  wkhouders
                  WHERE
                  email = '"
. mysql_real_escape_string( $_GET['email'] ) . "'
                  AND
                  pasnummer = '"
. mysql_real_escape_string( $_GET['pasnummer'] ) . "'";
$query = mysql_query( $select );

if( !$query )
{

    echo '->>ERROR<<-';
    echo $select;
}

$row = mysql_fetch_assoc( $select );
}




?>
  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<form action="bewerk.php" method="post">
Pasnummer: <select name="begincijfers">
  <option>1</option>
  <option>2</option>
</select>
<input name="pasnummer" type="text" value="<?php echo $row['pasnummer']; ?>" /><br />
Voorletters: <input name="voorletters" type="text" value="<?php echo $row['voorletters']; ?>" /><br />
Adres: <input name="adres" type="text" value="<?php echo $row['adres']; ?>" /><br />
Email: <input name="email" type="text" value="<?php echo $row['email']; ?>" /><br />
Ingangsdatum: <input name="ingangdatum" value="<?php echo $row['ingangsdatum']; ?>" type="text" /><br />
<input type="submit" value="submit" />
</form>

</body>
</html>



Ik krijg deze warning:

->>ERROR<<-SELECT begincijfers, pasnummer, voorletters, adres, email, ingangsdatum FROM wkhouders WHERE email = '' AND pasnummer = ''
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, string given in D:\Xampp\xampp\htdocs\script\bewerk.php on line 62
 
PHP hulp

PHP hulp

29/03/2024 08:18:14
 
TJVB tvb

TJVB tvb

12/01/2010 21:44:00
Quote Anchor link
Lees de error, je geeft een string mee aan mysql_fetch_assoc op regel 62 (is hier regel 53)

Lees de php handleiding mysql_fetch_assoc en kijk wat het moet zijn.
 
- SanThe -

- SanThe -

12/01/2010 21:45:00
Quote Anchor link
Zet dit bovenin je script.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);

// rest
?>
 
Klaasjan Boven

Klaasjan Boven

12/01/2010 21:54:00
Quote Anchor link
if( !$query )
{
echo '->>ERROR<<-';
echo $select;
}

vervangen door

if( !$query )
{
echo '->>ERROR<<- en wel de volgende'. mysql_error().'</br>;
echo $select;
}
 
Donny

Donny

13/01/2010 20:35:00
Quote Anchor link
Werkt niet... Hij update niets...
 
Donny

Donny

19/01/2010 21:07:00
Quote Anchor link
Iemand die mij kan helpen hierbij?
 
Martijn B

Martijn B

19/01/2010 21:24:00
Quote Anchor link
Je kunt het beste een eigen query functie maken.

Maak b.v. een bestand "functions.inc.php".
En zet daar in:
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
<?php
function query( $_sQuery )
{

  $rQuery = mysql_query($_sQuery);

  if( !$rQuery )
  {

    die( '->>ERROR<<- en wel de volgende' . mysql_error() . '</br>' .
          'Query was: ' . htmlspecialchars($_sQuery) );
  }

  
  return $rQuery;
}

?>


Voeg dit bestand toe in ieder script waar je deze query() functie gebruikt met include of require.

Nu kun je dit bijvoorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
...
$query = mysql_query( $select );

if( !$query )
{

    echo '->>ERROR<<-';
    echo $select;
}
...

?>

Vervangen door:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
...
$query = query( $select );
...

?>


Nu krijg je wel een bericht op je scherm als MySQL jou query niet snapt en dus niet kan uitvoeren.
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
 
Donny

Donny

22/01/2010 20:43:00
Quote Anchor link
Ik heb alles en het doet het ook.

Nou heb ik van de klant de datum dat hij/zij is geboren. Ik ben geboren op 10-05-1991 en klaas op 10-05-2000. Nou wil ik dat als iemand jarig is het op een aparte pagina hebben staan. Is dat mogelijk? Zoja, enig idee hoe?
 



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.