Hallo allemaal! ik heb een tijd terug een website gemaakt die helemaal werkte. Ik draaide hem altijd gewoon lokaal vanaf mn laptop. Nu heb ik sinds kort een eigen domein. Nu blijkt dus dat die website niet werkt. Het komt doordat ik toen der tijd gebruikt maakte van mysqli... Dat werkt blijkbaar niet op deze server (one.com). Ik heb al php5 aangezet, maar dat maakt geen verschil. Er is vast wel een makkelijke manier om wat code te vervangen? Ben al een tijdje bezig, maar het werkt niet echt. Ik hoop dat iemand me kan vertellen wat weg moet en wat daarvoor in de plaats moet. PHP is alweer zo lang geleden voor me.... Ik zal hieronder even de code plakken (deze code vraagt recepten voor cocktails op)...


<?php
require 'verbinding.php';
$query = "SELECT * FROM recepten ORDER BY naamCocktail";

// creeer query
$sortering = $_GET['sortering'];
if(isSet($sortering))
$query = "SELECT * FROM recepten where ingredienten LIKE '%$sortering%' ORDER BY naamCocktail";

// creeer query
$sortering2 = $_GET['sortering2'];
if(isSet($sortering2))
$query = "SELECT * FROM recepten where naamPoster = 'gall' ORDER BY naamCocktail";

// creeer query
$sortering3 = $_GET['sortering3'];
if(isSet($sortering3))
$query = "SELECT * FROM recepten where naamPoster != 'gall' ORDER BY naamCocktail";

// creeer query
$sortering4 = $_GET['sortering4'];
if(isSet($sortering4))
$query = "SELECT * FROM recepten ORDER BY naamCocktail";

// voer query uit
if ($result = $mysqli->query($query)) {

// controleer of we gegevens terug krijgen
if ($result->num_rows > 0) {

// ja, laat ze dan zien
echo"";

while($row = $result->fetch_array()) {
echo "<a href='receptpagina.php?id=$row[0]'>• $row[1]<br></a>"
;}

// opschonen geheugenruimte
$result->close();
}}
// geef foutboodschap
else {
echo 'Fout in query: $query ' . $mysqli->error;
}

// sluit verbinding
$mysqli->close();

?>


HIERONDER NOG EVEN DE ERROR DIE IK AAN HET BEGIN KRIJG (heb er al aardig wat gezien terwijl ik het zelf probeerde op te lossen).

Fatal error: Call to a member function query() on a non-object in /customers/martinvdberg.nl/martinvdberg.nl/httpd.www/gall/recepten.php on line 26 (26 aangepast, zodat het klopt met de regels in mijn bericht)


In ieder geval vast bedankt voor de moeite!
groeten,
Martin
2 mogelijkheden: zelf een 'wrapper' maken voor [php]mysql_query[/php] en [php]mysql_select_db[/php] e.d, zodat je als het ware de mysqli-klasse namaakt.

Of overal gebruik gaan maken van [php]mysql_query[/php], [php]mysql_select_db[/php], [php]mysql_fetch_assoc[/php] enz. enz.
in mysqli MOET je je database connectie in je query meegeven

mysqli_query($link,$sqlstatement) op die manier
Die query kun je veel eenvoudiger maken, met name wat betreft het onderhoud. De enige variabele is de inhoud van $_GET['sortering']:
<?
if (isset($_GET['sortering'])) {
switch ($_GET['sortering']) {
case 1:
$where = " where ingredienten LIKE '%$sortering%' ";
break;
case 2:
$where = " where naamPoster = 'gall' ";
break;
case 3:
$where = " where naamPoster != 'gall' ";
break;
default:
$where = "";
break;
}
}
else {
$where = "";
}
$query = "SELECT * FROM recepten".$where."ORDER BY naamCocktail";
?>
Je hebt dus niet diverse $_GET's nodig om een sortering te maken, geef $_GET['sortering'] verschillende waardes, in dit geval 1, 2 of 3. Iedere andere waarde zal de default opleveren.
bedankt voor de reacties... het wordt me wat te ingewikkeld, dus ik maak er wel gewoon mysql-queries van...

kan iemand mij nog uitleggen waarom mysqli niet werkt bij one.com? wordt het weinig gebruikt ofzo? iemand vertelde me dat het php5 was... (dat heb ik aangevinkt bij one.com)...
het word niet echt veel ondersteund nog, wat jammer is omdat mysqli een stuk sneller lookups kan doen. vraag het ze zou ik zeggen
nou, ik heb het gevraagd... enige wat ze kunnen zeggen is dat hun servers mysqli niet ondersteunen....

ik heb veel aan kunnen passen naar mysql, maar in een paar gevallen blijft het lastig en kom ik er voorlopig nog niet uit.. irritant zeg
@Frank
Het mooie van de switch is de default, kortom je hebt die if en else niet nodig.

Reageren