php - mail adres ophalen uit database

Status
Niet open voor verdere reacties.

Hombre

Gebruiker
Lid geworden
25 mei 2006
Berichten
65
Hallo

Van php ken ik nog niet zo veel en ik zit vast met hetvolgende,
Bij het opvragen vanuit een andere pagina moeten twee velden worden ingevuld. Een veld lukt al maar het andere moet uit de database komen en dit is het probleem. Dit lukt me niet.


--------------------------------------
Database:
[sql]
CREATE TABLE IF NOT EXISTS `AdresLeiding` (
`name` varchar(25) NOT NULL default ' "" ',
`address` varchar(35) NOT NULL default ' "" ',
PRIMARY KEY (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
[/sql]
--
-- Gegevens worden uitgevoerd voor tabel `AdresLeiding`
--
[sql]
INSERT INTO `AdresLeiding` (`name`, `address`) VALUES
('Pol', 'pol@mail.com');
[/sql]
---------------------------------------

Oproepen met: mail.php?leiding=Pol

De pagina opent en de naam wordt ingevuld maar...
foutmelding op lijn 13:
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource

Wat kan het probleem zijn en kan iemand me hiermee helpen?

PHP:
<?php 
mysql_select_db("db_mailleiding",mysql_connect("localhost","tabel_Pol","paswoord")) or die (mysql_error());

if ( isset( $_GET['leiding'] ) ) 
{ 
    $query = "SELECT  
                address 
              FROM 
                AdresLeiding 
              WHERE 
                name = ' " .  mysql_real_escape_string( $_GET['leiding'] ) . " ' ; 
    $result =  mysql_query( $query )" ;  	
	while ($row = mysql_fetch_object($result));	
echo '
	<table width="55%" cellspacing="0" cellpadding="5"> 
    <tr> 
        <td align="right"><font color="#193866"><b>Aan:</b></font></td> 
        <td><input type="text" name="leiding" size="30" maxlength="36" style="font-weight: bold;color: #800000;background-color: #FFCC99" READONLY value="'; 
    if(isset($_POST['leiding'])) 
    { 
        echo $_POST['leiding']; 
    } 
    elseif(isset($_GET['leiding'])) 
    { 
        echo $_GET['leiding']; 
    } 
    echo ' "></td> 
    </tr> 
    <tr> 
        <td align="right"><font color="#193866"><b>Mailadres:</b></font></td> 
        <td><input type="text" name="mailleiding" size="30" maxlength="36" style="font-weight: bold;color: #800000;background-color: #FFCC99" READONLY value=" '.$row[address]. ' ">
		</td> 
    </tr>
	</table> '; 
	}
?>
 
Laatst bewerkt door een moderator:
Gebruik dan mysql_fetch_assoc() ipv van mysql_fetch_array, scheelt geheugen.

Veel zal het niet uitmaken, de foutmelding vloeit waarschijnlijk voort uit een foutieve query.

Kijk ik echter naar de syntaxhighlighter hier dan gaat het op regel 11 fout met je quotes.
 
Hallo

PHP:
<?php 
mysql_select_db("db_mailleiding",mysql_connect("localhost","tabel_Pol","paswoord")) or die (mysql_error());

if ( isset( $_GET['leiding'] ) ) 
{ 
    $query = "SELECT  
                address 
              FROM 
                AdresLeiding 
              WHERE 
                name = ' " .  mysql_real_escape_string( $_GET['leiding'] ) . " '  "; 
    $result =  mysql_query( $query ) ;  	
	while ($row = mysql_fetch_object($result));	
echo '
	<table width="55%" cellspacing="0" cellpadding="5"> 
    <tr> 
        <td align="right"><font color="#193866"><b>Aan:</b></font></td> 
        <td><input type="text" name="leiding" size="30" maxlength="36" style="font-weight: bold;color: #800000;background-color: #FFCC99" READONLY value="'; 
    if(isset($_POST['leiding'])) 
    { 
        echo $_POST['leiding']; 
    } 
    elseif(isset($_GET['leiding'])) 
    { 
        echo $_GET['leiding']; 
    } 
    echo ' "></td> 
    </tr> 
    <tr> 
        <td align="right"><font color="#193866"><b>Mailadres:</b></font></td> 
        <td><input type="text" name="mailleiding" size="30" maxlength="36" style="font-weight: bold;color: #800000;background-color: #FFCC99" READONLY value=" '.$row['address']. ' ">
		</td> 
    </tr>
	</table> '; 
	}
?>

Een paar aanhalingstekens toegevoegd en verwijderd. Doet ie het zo?
 
Laatst bewerkt:
Tomdb

Bedankt voor je hulp, ik heb nu GEEN foutmelding meer maar het mailadres wordt nog niet ingevuld. Toch al eerste stap.

Pol
 
Tha Devil: "Gebruik van mysql_fetch_assoc() ipv van mysql_fetch_array()" ook dit wijzigen geeft geen oplossing.


Moet de ; op regel 13 ook geen { zijn?

Ook dit brengt geen oplossing hoor ErikBooy007.
Toch bedankt, we zullen verder moeten zoeken.
 
Laatst bewerkt:
Om te beginnen mijn complimenten voor de openingspost: door de tabelstructuur en voorbeelddata te geven is het veel makkelijker om het probleem na te bootsen :)

Wat betreft het probleem: er staan 2 quotes op de verkeerde plaats en 2 quotes ontbreken maar dat had tomdb al gezien en opgelost. Verder zijn er nog een aantal dingen niet goed:
  • Je vraagt om een object met mysql_fetch_object maar verderop probeer je dat op te roepen als array $row['address']. Als je om een object vraagt zul je de variabelen op moeten vragen met $row->address
  • Je query klopt ook niet omdat je een spatie voor en na de naam zet " Pol " is niet hetzelfde als "Pol"
  • Je bent vergeten de while loop te openen en te sluiten met { } zoals Erik al aangaf
Kortom:
PHP:
<?php 
mysql_select_db("db_mailleiding",mysql_connect("localhost","tabel_Pol","paswoord")) or die (mysql_error());
if ( isset( $_GET['leiding'] ) ) { 
	$query = "SELECT address FROM AdresLeiding WHERE name = '".mysql_real_escape_string($_GET['leiding'])."'"; 
	$result =  mysql_query( $query ) ;  
	while ($row = mysql_fetch_object($result)) {
		echo '
			<table width="55%" cellspacing="0" cellpadding="5"> 
				<tr> 
					<td align="right"><font color="#193866"><b>Aan:</b></font></td> 
					<td><input type="text" name="leiding" size="30" maxlength="36" style="font-weight: bold;color: #800000;background-color: #FFCC99" READONLY value="'; 
					if(isset($_POST['leiding'])) { 
						echo $_POST['leiding']; 
					} elseif(isset($_GET['leiding'])) { 
						echo $_GET['leiding']; 
					}
					echo ' "></td> 
				</tr> 
				<tr> 
					<td align="right"><font color="#193866"><b>Mailadres:</b></font></td> 
					<td><input type="text" name="mailleiding" size="30" maxlength="36" style="font-weight: bold;color: #800000;background-color: #FFCC99" READONLY value="'.$row->address.'"></td> 
				</tr>
			</table>
		'; 
	}
}
?>
 
Beste flitsflitsflits

Bedankt voor je complimentje maar uit ervaring weet ik dat je best alle troeven op tafel legt of je blijft rond de pot draaien. Zo weet ook iedereen wat je eigenlijk bedoeld.

Ik zei al dat php niet echt mijn ding is maar al doende leert men. Bedankt voor je goed werkende oplossing. Ik zal je script uitvoerig bestuderen en er lessen uit trekken.

Hiermee is dit probleem van de baan, hopelijk hebben andere forumgangers er ook iets aan.

Groetjes
Pol
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan