Catchable fatal error??

Status
Niet open voor verdere reacties.

nogwat

Gebruiker
Lid geworden
4 jan 2006
Berichten
42
Catchable fatal error?? PHP

ik ben nog een noob in php maar ik had een scriptje geschreven die data uit een database haalt in een function

maar dan krijg ik een error:
Catchable fatal error: Object of class stdClass could not be converted to string in ~~~on line 117

line 117: $data = "$record->'$get'";

dat komt dus uit een function van:
PHP:
<?php
$query = "SELECT * FROM `$tab` WHERE `$invoernaam`='$invoer' AND `$invoernaam2`='$invoer2' ";
//query is aangemaakt
$sql = mysql_query($query) or die(mysql_error());
//query is uitgevoerd
while($record = mysql_fetch_object($sql))
$data = "$record->'$get'";
?>
ik heb gehoord dat je in php5 geen object als string mag ofso

verder snap ik er niks van

ps er is al een connectie met database en de data(variables) zijn al gecheck voor als ze leeg zijn

hulp en opmerkingen zijn welkom
 
Laatst bewerkt:
PHP:
while($record = mysql_fetch_object($sql))
$data = "$record->'$get'";
wijzigen in
PHP:
while($record = mysql_fetch_object($sql))
{
  $data = $record->$get;
}

Maar veel schiet je er niet mee op want hij gaat nu elke keer $data overschrijven dus als je die gaat echoën krijg je alleen de laatste waarde die in $data is gekomen en alles wat er daarvoor is gebeurd krijg je niet...
 
Laatst bewerkt:
Maar veel schiet je er niet mee op want hij gaat nu elke keer $data overschrijven dus als je die gaat echoën krijg je alleen de laatste waarde die in $data is gekomen en alles wat er daarvoor is gebeurd krijg je niet...

dat is juist ook de bedoeling er wordt maar 1 ding per keer uit de function gehaalt
 
Als dat de bedoeling is dan heeft je WHILE-lus weinig zin...

Wanneer je het een standaard selectquery wilt maken doe je dat zo:
PHP:
$query = "SELECT * FROM tabel WHERE invoernaam='$invoer' AND invoernaam2='$invoer2'";
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_array($result);
return $row;

Jij wilt het in een functie hebben dus dan wordt het zoiets:
PHP:
function select($tabel, $voorwaarde1, $voorwaarde2, $waarde1, $waarde2)
{
  $query = "SELECT * FROM $tabel WHERE $voorwaarde1='$waarde1' AND $voorwaarde2 ='$waarde2'";
  $result = mysql_query($query) or die(mysql_error());
  $row = mysql_fetch_array($result);
  return $row;
}

Je weet wel dat je met deze functie altijd op 2 voorwaardes controleert?

Persoonlijk zou ik een SELECT-query altijd gewoon uitschrijven in plaats van een functie er van maken omdat je nog veel variaties in queries hebt en als je daar allemaal en functie voor moet schrijven ben je bijna net zo lang bezig als dat je ze elke keer uitschrijft.

Wat je misschien zou kunnen doen is deze functie maken, maar of hij werkt weet ik niet.
PHP:
function select($tabel, $voorwaarde)
{
  $query = "SELECT * FROM $tabel WHERE $voorwaarde";
  $result = mysql_query($query) or die(mysql_error());
  $row = mysql_fetch_array($result);
  return $row;
}

// Gebruik
$gebruiker = 'Tha Devil';
$email = 'mijnmail@mail.domein';
select(users, gebruikersnaam='$gebruiker' AND email='$email');
 
Als dat de bedoeling is dan heeft je WHILE-lus weinig zin...
ja.. zo heb ik het geleerd niet zo handig in dit voorbeeld maar bij meerdere aanvragen((bijv)$data = $record->naam; ) kan het wel

....

PHP:
function select($tabel, $voorwaarde)
{
  $query = "SELECT * FROM $tabel WHERE $voorwaarde";
  $result = mysql_query($query) or die(mysql_error());
  $row = mysql_fetch_array($result);
  return $row;
}
//....
dit is natuurlijk wel veel makkelijker ja nooit aan gedacht


ps
PHP:
<?php
$data = $record->$get;
?>
werkt goed

vraag beantwoord
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan