[php][mysql]

Pagina: 1
Acties:

  • CoiLive
  • Registratie: Maart 2000
  • Laatst online: 15-09 18:47
Ik ben bezig met een adressenboek in php. Nou werkte alles heel erg mooi. Ik had 2 bestanden, een index.php en een modify.php. Index.php is om alles weer te geven, en modify.php is om mensen toe te voegen, te verwijderen of te editen.

Index.php bestaat uit 2 functies.
1. Functie om het adressenboek weer te geven
2. Functie om de User_details weer te geven.

Nu geeft die alleen een fout als ik een array wil maken waar alle user_details in staan van 1 persoon.

Dit is de eerste keer dat ik echt wat gemaakt heb in php en mysql. Wel eens van die super kleine dingen. Ik post nu eerst even het stukje waar de fout in zit, en anders wel de hele sourcecode van de index.php.
PHP:
1
2
3
4
5
<?
    $result = mysql_query("select * from adressenboek WHERE user_id= $user_id ");
    $line = mysql_fetch_array($result);
 
?>

Uhm... help? :)

ps. Kan iemand de topic titel even veranderen :) Ben vergeten de vraag neer te zetten |:(

Verwijderd

Op maandag 14 januari 2002 12:56 schreef FiZz_ het volgende:
Nu geeft die alleen een fout als ik een array wil maken waar alle user_details in staan van 1 persoon.
zucht. welke fout....

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Tsja....

Dat is net iets _te_ weinig code ;)

Wat voor foutmelding krijg je? Iets met result identifier ?
Dan is zeer waarschijnlijk je query niet goed.

Doe vooral ook:
PHP:
1
2
3
4
<?
echo $query = "select * from adressenboek WHERE user_id= $user_id ";
$result = mysql_query($query) or die(mysql_error());
?>

Wat voor titel wil je hebben ?

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 11:21

Janoz

Moderator Devschuur®

!litemod

Als je een foutmelding krijgt als "not a valid mysql result source" oid, betekend dit dat er waarschijnlijk iets mis is met de verbinding met je DB of je SQL-query.. Zet er eens een mysql_error() bij om te kijken wat er precies fout gaat.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • T-h-i-j-s
  • Registratie: April 2000
  • Laatst online: 27-08 10:53

T-h-i-j-s

koffie? ja lekker :)

Niet vergeten om een of meerdere varaibalen te globallen (global $var;) in de functie, of door te geven als argumenten voor de functie? (je gebruikte toch functies?)

Als je bijvoorbeeld vergeet je variabele voor je userid of databaselink te globallen, gaat de query inderdaad mis.

Binnen een functie zijn alle variabelen namelijk weer op zichzelf staand, ongeacht of er buiten die functie al een variabele met dezelfde naam bestaat. Binnen een functie wordt die waarde dan niet automatisch overgenomen, tenzij je expliciet, dmv global, aangeeft dat dat moet.

Als je binnen een functie een variablele definieert met eenzelfde naam als een variabele buiten die functies, wordt de variabele buiten die functie overigens niet overschreven. Zo kun je rustig meerdere variabelen met dezelfde naam naastelkaar gebruiken, als ze maar in verschillende functies staan :)

  • CoiLive
  • Registratie: Maart 2000
  • Laatst online: 15-09 18:47
Als ik het gewoon opstart krijg ik deze melding:
Warning: Supplied argument is not a valid MySQL result resource in


Als ik het met het stukje
PHP:
1
2
3
<?
echo $query = "select * from adressenboek WHERE user_id= $user_id ";$result = mysql_query($query) or die(mysql_error());
?>

doe krijg ik de error:

select * from adressenboek WHERE user_id= You have an error in your SQL syntax near '' at line 1

:(

Zal ik maar de hele code plakken? is 240 regels :?
Ik ben een n00b met php en mysql, dus het zal wel wat heel erg doms zijn... :'(

ps. Verzin maar een titel :)

[ Voor 5% gewijzigd door CoiLive op 16-11-2016 12:50 ]


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Ah, ik vermoede het al...
$user_id mist in die query, die zal om een of andere reden daar niet bekend zijn.

Moet je even je code doorlopen waarom die niet bekend is.

  • T-h-i-j-s
  • Registratie: April 2000
  • Laatst online: 27-08 10:53

T-h-i-j-s

koffie? ja lekker :)

waarschijnlijk een global "probleem", zie m'n post hierboven.

  • CoiLive
  • Registratie: Maart 2000
  • Laatst online: 15-09 18:47
Voor zover ik kan zien is die wel bekend. Nah, ik post de gehele code wel even, en haal veel van de standaard html die ertussen zit eruit :)
PHP:
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
<?
  require("../../../db.inc.php");
  $link = mysql_connect("localhost", "$username", "$password");
  mysql_select_db("qwebcams");
?>



<!-- FUNCTIE VOOR HET WEERGEVEN VAN HET ADRESSENBOEK -->

<?php 
      function adressenboek () { 
?> 

<HTML>
<HEAD>
<TITLE>Adressenboek</TITLE>
<META name="generator" content=">
<META name="generator" content=l">

<link title="global css" href="global.css" type=text/css rel=stylesheet>

</HEAD>

<BODY>

<script language="javascript" src="global.js"></script>



<?php
  $result = mysql_query("select * from adressenboek");
?>

<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" ALIGN="CENTER" VALIGN="TOP">
 <TR>
  <TD  BGCOLOR="#000000">


<TABLE BORDER="0" CELLPADDING="1" CELLSPACING="1" WIDTH="100%">

 <TR BGCOLOR="#FFCC00" ALIGN="LEFT">
  <TD><FONT FACE="Verdana" SIZE="1" COLOR="#000000"><B>Naam</B></font></TD>
  <TD><FONT FACE="Verdana" SIZE="1" COLOR="#000000"><B>Adres</B></font></TD>
?>

HAP ERUIT :)
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
 <TD><FONT FACE="Verdana" SIZE="1" COLOR="#000000"><B>Del</B></font></TD>
 </TR>


<?php while ($line = mysql_fetch_array($result)){ ?>
      


 <TR>
  <TD BGCOLOR="#FFE88B"><FONT FACE="Verdana" SIZE="1" COLOR="#000000"><a class="small" href="index.php?user_id=<?php echo $line[12] ?>&amp;show=1"><?php echo $line[0],' ', $line[1]; ?></a></font></TD>
  <TD BGCOLOR="#FFE88B"><FONT FACE="Verdana" SIZE="1" COLOR="#000000"><?php echo $line[3]; ?></font></TD>
  <TD BGCOLOR="#FFE88B"><FONT FACE="Verdana" SIZE="1" COLOR="#000000"><?php echo $line[4]; ?></font></TD>
?>

Nog een hapje... lekker man :)
PHP:
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
<?
<TD BGCOLOR="#FFE88B"><FONT FACE="Verdana" SIZE="1" COLOR="#000000"><center><a href="modify.php?user_id=<?php echo $line[12] ?>&amp;do=delete">[img]"images/delete.gif"[/img]</a></center></font></TD>
 </TR>


<?php } ?>

 <TR BGCOLOR="#FFCC00" ALIGN="LEFT">
  <TD><a class="small" href="modify.php?do=add"><b>Add someone</a></b></font></td>
 </TR>


</TABLE>



  </TD>
 </TR>
</TABLE>


<?php } ?>

<!-- SLUIT FUNCTIE -->



<!-- FUNCTIE VOOR HET WEERGEVEN VAN DE USER DETAILS -->

<?php 
      function show_user_details () { 
?> 




<?php
    $result = mysql_query("select * from adressenboek WHERE user_id= $user_id ");
    $line = mysql_fetch_array($result);
 ?>


<table border="0" cellpadding="1" cellspacing="0" align="left" valign="top" width="100%">
 <tr>
  <td bgcolor="#001100">

<table border="0" cellpadding="1" cellspacing="1" width="100%" align="center">
 <tr bgcolor="000000">
  <td><div class="headwhite">User Info: <?php echo $line[0],' ', $line[1] ?></div></td>
 </tr>
</table>


  </td>
 </tr>

 <tr>
  <td bgcolor="#001100">

<table border="0" cellpadding="1" cellspacing="1" width="100%" align="center">
 <tr align="left">
  <td class="form_main" width="10%"><FONT FACE="Verdana" SIZE="2" COLOR="#000000"><b>Naam</b></TD>
  <td class="form_field"><FONT FACE="Verdana" SIZE="2" COLOR="#000000"><FONT FACE="Verdana" SIZE="2" COLOR="#000000"><?php echo $line[0] ?></TD>
 </tr>

 <tr align="left">
  <td class="form_main" width="10%"><FONT FACE="Verdana" SIZE="2" COLOR="#000000"><b>Achternaam</b></TD>
  <td class="form_field"><FONT FACE="Verdana" SIZE="2" COLOR="#000000"><FONT FACE="Verdana" SIZE="2" COLOR="#000000"><?php echo $line[1] ?></TD>
 </tr>
?>

PHP:
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
<?
<tr align="left">
  <td class="form_main" width="10%" valign="top"><FONT FACE="Verdana" SIZE="2" COLOR="#000000"><b>Notities</b></TD>
  <td class="form_field" width="550"><FONT FACE="Verdana" SIZE="2" COLOR="#000000"><FONT FACE="Verdana" SIZE="2" COLOR="#000000"><?php echo $line[11] ?></TD>
 </tr>

 <tr align="left">
  <td class="form_main" width="10%" align="left"><input type="submit" class="button" name="print" value="Print Gegevens" onclick="javascript:user_info('print_info.php?user_id=<?php echo $line[12] ?>');"></TD>
  <td class="form_main" width="50%" align="right"></td>
 </tr>

</table>


<?php } ?>

<!-- SLUIT FUNCTIE -->





<!-- ROEP DE FUNCTIES AAN -->

<?php

 if ($show == ""){ 
                   echo adressenboek (); 
                 }
             
 else {
         echo adressenboek ();
         echo show_user_details ();
        }

?>





</BODY>
</HTML>

<?php mysql_close($link); 
?>

En dat was het dus. De stukken die eruit zijn, zijn gewoon tabellen die de adressen weergeven.

[ Voor 0% gewijzigd door CoiLive op 16-11-2016 12:52 . Reden: Persoonsgegevens verwijderd ]


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 11:21

Janoz

Moderator Devschuur®

!litemod

Nou, als je die error bij je SQL statement krijgt, dan is $user_id op die plek niet gevuld. (Probeer het maar, zet er maar eens echo "->".$user_id."<-"; voor, en je ziet alleen -><- staan)

Zet idd maar eens ff GLOBAL $user_id; ergens bovenaan in de functie neer :)

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • CoiLive
  • Registratie: Maart 2000
  • Laatst online: 15-09 18:47
De variable $user_id die haalt die hier vandaan:
PHP:
1
2
3
<?
<TD BGCOLOR="#FFE88B"><FONT FACE="Verdana" SIZE="1" COLOR="#000000"><a class="small" href="index.php?user_id=<?php echo $line[12] ?>&amp;amp;show=1"><?php echo $line[0],' ', $line[1]; ?></a></font></TD>
?>

$line[12] is dan de user id


[update]
Zoals je kunt zien in de code (de lang) hier boven, word de variable $user_id al een keer eerder gebruikt. Is dat de fout. Van globale variable snap ik een beetje. Let nooit goed op met programmeren op school :P
[/update]

Verwijderd

staat die user_id dan wel in de url? wordt die mooi geparsed in de link?

mis. wist je het al, maar ja kan ook $line['veldnaam'] doen hoor, dat is iets logischer dan met getallen, en dan moet je niet tellen.

  • CoiLive
  • Registratie: Maart 2000
  • Laatst online: 15-09 18:47
ja hij staat er goed in. En dat weet ik ook zeker, want hij word al 1 keer eerder gebruikt.


Best wel lastig dit :P

En ja dat wist ik al :) Zat er ook wel aan te denken.

[ Voor 27% gewijzigd door CoiLive op 16-11-2016 12:49 ]


  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 02-06 23:18
Op maandag 14 januari 2002 13:35 schreef FiZz_ het volgende:
ja hij staat er goed in. En dat weet ik ook zeker, want hij word al 1 keer eerder gebruikt.

http://www.qwebcams.nl/fizz/adres/index.php?user_id=2&show=1

Best wel lastig dit :P

En ja dat wist ik al :) Zat er ook wel aan te denken.
ook lekker handig, een url neerzetten met htaccess beveiliging :)

en:
code:
1
WHERE user_id='$user_id'");

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


  • CoiLive
  • Registratie: Maart 2000
  • Laatst online: 15-09 18:47
Ja sorry hij was beveiligd omdat er al adressen in stonden, die zijn er nu uit. Kijk maar eens :)


En klik dan maar eens op de naam van iemand. Dan krijg je de fout.

Voeg maar eens iemand toe, en delete maar en edit. Dat werkt allemaal wel :) *trots* :P

[update]
Ik heb dit gedaan:
PHP:
1
2
3
<?
WHERE user_id='$user_id'");
?>

En nu geeft die geen fout meer :)

[/update]

[ Voor 9% gewijzigd door CoiLive op 16-11-2016 12:49 ]


Verwijderd

heb je die global er al gezet?

gewoon in je functie:
PHP:
1
2
3
4
5
6
<?
function blaat(...) {
    global $user_id;
    ...
}
?>

daarmeezeg je aan php dat het de user_id van buiten die functie moet gebruiken.

  • CoiLive
  • Registratie: Maart 2000
  • Laatst online: 15-09 18:47
Hij doet! :) thanx!
Het was iig de WHERE user_id = 'user_id' fout en die global :)

:) :)

Verwijderd

Op maandag 14 januari 2002 13:48 schreef FiZz_ het volgende:
Hij doet! :) thanx!
Het was iig de WHERE user_id = 'user_id' fout en die global :)

:) :)
wat voor veldtype is user_id dan? ik verondertsel dat het een integer moet zijn, maar waarom zet je dan ' errond? Misschien heb je het verkeerde type in je database gemaakt. Maak er een INT van, dan kan je die ' weglaten.

  • CoiLive
  • Registratie: Maart 2000
  • Laatst online: 15-09 18:47
zal eens kijken :)

Er hoeft idd geen ' omheen :) het lag puur aan die global :)

En wat vinden jullie van me adressenboek :) mijn eerste projectje :P of is dit nu spam? >:)

iig, Bedankt allemaal!

  • CoiLive
  • Registratie: Maart 2000
  • Laatst online: 15-09 18:47
Ok... Ik heb nu weer last van psies dezelfde fout. Maar ik kom er weer niet uit :'(

Ik heb nu alleen iets vervangen. Ik heb namelijk de FUNCTIE VOOR HET WEERGEVEN VAN DE USER DETAILS (zie post van mij hierboven ergens :) )
PHP:
1
2
3
<?
       function show_user_details () { 
?>

Die hele functie dus, door:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?
!-- FUNCTIE VOOR HET EMAILEN VAN EEN USER -->


<?php 
      function email_person () { 
      global $user_id;
?> 



<?php
    $result = mysql_query("select * from adressenboek WHERE user_id= $user_id ");
?>

<?php $line = mysql_fetch_array($result) ?>



<?php if ($action != "Verstuur"){ ?>
    <FORM  METHOD="POST">
      <TABLE BORDER="0" CELLPADDING="1" CELLSPACING="0" ALIGN="CENTER" VALIGN="TOP" WIDTH="100%" align="left">
        <TR>
?>

Klein hapje eruit
PHP:
1
2
3
4
5
6
7
8
9
10
11
<?
     </TR>
          </TABLE>
        </TD></TR>
      </TABLE> 

<?php } } ?>


<!-- SLUIT FUNCTIE -->
?>

Hij geeft nu alweer een fout in het deel:
PHP:
1
2
3
4
5
6
<?
    $result = mysql_query("select * from adressenboek WHERE user_id= $user_id ");
?>

<?php $line = mysql_fetch_array($result) 
?>

Psies hetzelfde probleem als eerst dus. Maar ik snap niet wat er nu anders is :?

Verwijderd

Wat een moeilijk gedoe hier, volgens mij is gewoon dit de goeie oplossing:
PHP:
1
2
3
<?
$result = mysql_query("select * from adressenboek WHERE user_id = '$user_id' ");
?>

suc6 dermee ;)

  • CoiLive
  • Registratie: Maart 2000
  • Laatst online: 15-09 18:47
Wat ben ik ook een }:O

ownee, da's dan nog een beledeging voor de }:O 'en

Bedank! :)
Pagina: 1