Beste mensen,

Ik heb het volgende script geschreven:

<?php
$hostname = "-";
$user = "-";
$password = "-";
$database = "-";

mysql_connect($hostname, $user, $password) or trigger_error(mysql_error(), E_USER_ERROR);
mysql_select_db($database) or trigger_error(mysql_error(), E_USER_ERROR);

$sql = "SELECT * FROM toestellen WHERE merk = Siemens";

$resultaat = mysql_query($sql) OR die ("Kon geen verbinding maken met MySQL");

$rij = mysql_fetch_object($resultaat);

$paginanaam = htmlspecialchars($rij->paginanaam);
$merktype = htmlspecialchars($rij->merktype);
$merk = htmlspecialchars($rij->merk);
?>
<?PHP echo("$paginanaam"); ?>
<?PHP echo("$merktype<BR>\n"); ?>

Maar hij geeft de foutmelding: kon geen verbinding maken met mysql.

Wanneer ik: WHERE merk = Siemens verander in: WHERE id = 2 dan geeft hij wel gewoon de rij, maar hij moet alle rijen geven met het merk.

Is het zo duidelijk? Kan iemand mij helpen?
In SQL moeten strings (tekst) tussen een enkele quote. Een int (getal) hoeft niet. Dus je query moet zo zijn:

$sql = "SELECT * FROM toestellen WHERE merk = 'Siemens'";

Nu vindt je DB ook alleen de regels met Siemens, en niet met siemens. Daarvoor zou je deze kunnen gebruiken:

$sql = "SELECT * FROM toestellen WHERE merk LIKE 'Siemens'";

Elwin
Bedankt Elwin, dat zijn dingen die je als newbie php'er over het hoofd ziet.

Maarre in mijn database staan meer rij'en met eenzelfde merk, hoe kan ik ervoor zorgen dat ik van deze steeds de ($)paginanaam & ($)merktype krijg?

Iets met een loop ofzo?
Jelmer schreef op 18.10.2004 14:17
Bedankt Elwin, dat zijn dingen die je als newbie php'er over het hoofd ziet.
Dit heeft alleen niets met PHP te maken, maar met een andere taal: SQL (Structured Query Language).
Jelmer schreef op 18.10.2004 14:17
Maarre in mijn database staan meer rij'en met eenzelfde merk, hoe kan ik ervoor zorgen dat ik van deze steeds de ($)paginanaam & ($)merktype krijg?

Iets met een loop ofzo?
Die snap ik niet, sorry.

Elwin
Oké Elwin mijn excuses was misschien niet helemaal duidelijk:

Kleinstukje van mijn database:

Merk: | Paginanaam | en zo nog een paar dingen
-------------------------------------------------------
Siemens| mjjas
Siemens| msaas
Siemens| jkdjslasd
Super | djslkdssd
Tropie | djkldajklsdasdl

Zoals je ziet staat er onder het kopje: merk meerdere keren Siemens, ik zou graag willen dat hij van al deze siemensen de paginanaam en merktype afdrukt.

Dit stukje:

<?PHP echo("$paginanaam");
echo("$merktype<BR>\n"); ?>

Maar die moet dan net zolang doorgaan totdat hij alle siemensen uit de database heeft afgedrukt. Duidelijk?
Dat moet idd met een loop:

<?php
// Voer je query uit
$query = mysql_query($sql);

// Loop
while ($rij = mysql_fetch_object($query))
{
// Laat de gegevens zien
echo $rij->merk."|".$rij->paginanaam."<br>\n";
}
?>

Elwin

[Edit 1: zie reactie greedyxl]
[Edit 2: code was fout]

echo $ij->merk."|."$rij->paginanaam."<br>\n";


$ij moet $rij zijn ;p
Die fout had ik al gezien, maar hij werkt niet :-(

Ik heb nu het volgende script:

<?php
$hostname = "a";
$user = "a";
$password = "a";
$database = "a";

mysql_connect($hostname, $user, $password) or trigger_error(mysql_error(), E_USER_ERROR);
mysql_select_db($database) or trigger_error(mysql_error(), E_USER_ERROR);

$sql = "SELECT * FROM toestellen WHERE merk LIKE 'Nokia'";
$resultaat = mysql_query($sql) OR die ("Kon geen verbinding maken met MySQL");

$paginanaam = htmlspecialchars($rij->paginanaam);
$merktype = htmlspecialchars($rij->merktype);
$merk = htmlspecialchars($rij->merk);

while ($rij = mysql_fetch_object($resultaat))
{

// Laat de gegevens zien
echo $rij->merk."|."$rij->paginanaam."<br>\n";
}

?>

Fout melding is: Parse error: parse error, unexpected T_VARIABLE, expecting ',' or ';' in /var/www/j/jbgsm.nl/HTML/cms/select.php on line 21
Regel 21 is: echo $rij->merk."|."$rij->paginanaam."<br>\n";

Waarom werkt het script nu nog niet?
Er staat nog een foutje in, kijk even naar mijn vorige post, daarin heb ik het veranderd...

Elwin
Bedankt hij werkt, is het ook mogelijk dat ik ze nog sorteer op nummers en dan op tekens?

Dus bijvoorbeeld
Merk 1
Merk a213
Merk a234

Is dat op een manier nog mogelijk, kun je mij verder helpen?
Zet er
in je query:
ORDER by merk ASC
zo :

<?php

$sql = "SELECT * FROM toestellen WHERE merk LIKE 'Nokia' ORDER BY toestellen ASC";
?>

Reageren