[PHP] wat doe ik fout?

Status
Niet open voor verdere reacties.
Geplaatst door chrisgeerdink
Wat bedoel je?

Hoe je de gevonden resultaten laat zien (denk ik). Daar ben ik zelf ook wel benieuwd naar :)

Met een loopje op een array?
 
Je kunt de resultaten printen... Ik heb even naam en adres genomen als voorbeeld.

PHP:
<?
// mysql connectie gegevens

$query = mysql_query("SELECT naam, adres FROM tabel WHERE kolom LIKE '%{$_POST['trefwoord']}%'");

// de % staan voor dat daar nog wat voor en achter mag staan, dat dat niet persé een heel woord hoeft te zijn.

print("Gevonden resultaten:<p>");
while($p = mysql_fetch_assoc($query))
{
print($p['naam']." - ".$p['adres']);
}
?>

En dat kun je natuurlijk zelf helemaal uitbreiden met sorteren, welke info weergeven enz. Een voorbeeld van zo'n zoekscriptje vind je hier: http://websitekeuring.dev-c.nl/index.php?p=gekeurd
 
Laatst bewerkt:
Geplaatst door BrEeZeR
Het draait ondertussen nadat ik veel gekeken heb naar andere scripts en aantal dingen gewoon geprobeerd had.

De url is http://breezert.linuxsys.nl/datasys/ maar de layout e.d is nog niet helemaal goed (moet wat netter ;))

Wat ik niet snapte is dat de 1 $_POST gebruikt en de ander weer wat anders.. (iets met veiligheid te maken?)

Goh, waarom vraagt niemand ooit eens aan mij of ik dat soort leuke klusjes mag doen als uileggen hoe je een zoekfunctie maakt in php.. denk dat chris er gewoon eerder bij was :(.

Anyway, ik kan m'n lol op aan $_POST. Breezer, je ziet idd heel veel in scripts dat men ook voor post vars gewoon $veldnaam gebruiken. Dit is echter alleen mogelijk als in je configuratie van php de 'register_globals' aan staan. Dit is echter lang niet altijd het geval, waardoor het script wel werkt op de ene host en niet op de andere. Daarom een tip: speel altijd op save: gebruik altijd de officiële manier dan leer je je dat aan want anders krijg je straks problemen. Met $_POST[""] moet het altijd lukken, of je php moet ernstig vern**kt zijn...
 
Ik wil het ook best leren maar ik doe het eerst even zo.. die andere manier heeft teveel ] [ ( ) { } enz.. beetje verwarrend allemaal.

Ik ben nou bezig met een verwijder pagina te maken zodat je berichten makkelijk kan verwijderen.. ik weet zeker dat dit in 'oude' PHP stukken makkelijker is dan in dat nieuwe.. maar als iemand het stap voor stap eens wil uitleggen zou ik dat erg tof vinden. :)
 
Geplaatst door BrEeZeR
Ik wil het ook best leren maar ik doe het eerst even zo.. die andere manier heeft teveel ] [ ( ) { } enz.. beetje verwarrend allemaal.

Ik ben nou bezig met een verwijder pagina te maken zodat je berichten makkelijk kan verwijderen.. ik weet zeker dat dit in 'oude' PHP stukken makkelijker is dan in dat nieuwe.. maar als iemand het stap voor stap eens wil uitleggen zou ik dat erg tof vinden. :)

PHP:
$delete = mysql_query("DELETE FROM tabel WHERE naam = .....");

Voorbeeld van m'n eigen website: (verwijderd de row met de hoogste waarde voor id)
PHP:
			$query = mysql_query("SELECT id FROM admin ORDER BY id");

			$laatste = mysql_fetch_array($query, MYSQL_ASSOC);
						
			$verwijder = mysql_query("DELETE FROM admin WHERE id = '{$laatste['id']}'");

Op de puntjes de waarde waar hij de row moet verwijderen. Kan je denk ik het beste het unieke (id) getal gebruiken.
 
Laatst bewerkt:
Dat zie ik dus ook steeds meer, mensen die het gaan omzeilen met { } haakjes... Dus {$array["key"]} dat vind ik (persoonlijk) niet staan. Gebruik nou gewoon eens een separator: $array["key"]." is aanwezig";

das veel beter en je maakt minder snel fouten dan bij steeds die haakjes
 
Geplaatst door pcfixer
Dat zie ik dus ook steeds meer, mensen die het gaan omzeilen met { } haakjes... Dus {$array["key"]} dat vind ik (persoonlijk) niet staan. Gebruik nou gewoon eens een separator: $array["key"]." is aanwezig";

das veel beter en je maakt minder snel fouten dan bij steeds die haakjes

Zou ik deze regel:

PHP:
$verwijder = mysql_query("DELETE FROM admin WHERE id = '{$laatste['id']}'");

Dan ook zo kunnen doen:

PHP:
$verwijder = mysql_query("DELETE FROM admin WHERE id = $laatste["id"]");

Zo niet. Hoe dan wel?
 
Ik doe dus het e.e.a heel anders maar denk dat iedereen zo begonnen is met PHP.

Mijn 'verwijder code' is :

PHP:
  <? 

include ("connect.php");
$verwijder = "DELETE FROM probleem WHERE id='$id'";  

$getonderwerp = mysql_query($verwijder) or die (mysql_error()); ?>


  <?	include ("connect.php");
$onderwerp = "SELECT * FROM probleem ORDER BY onderwerp";  
$getonderwerp = mysql_query($onderwerp) or die (mysql_error());
while ($leesonderwerp = mysql_fetch_object($getonderwerp)) {
echo "<a href=\"verwijder.php?id=$leesonderwerp->id\" title=\"Verwijder $leesonderwerp->onderwerp door hier te klikken\">$leesonderwerp->onderwerp<br>";
	}
	?>

Maar dit zal wel erg omslachtig en fout zijn. :) Ik zal zo de code van Saviola en Pcfixer eens bestuderen om te zien of ik het begrijp.
 
Hoe dan wel? Ik zal jouw code gebruiken:

PHP:
<?php

$verwijder = mysql_query("DELETE FROM admin WHERE id = ".$laatste["id"]);

/*
	Om een string tijdelijk te onderbreken, doe je het sluitingsteken " gevolgd door een .
	Als je verder niets te melden hebt in die string hoef je niet nog eens ."" te doen ofzo,
	zoals dit:
	
	$verwijder = mysql_query("DELETE FROM admin WHERE id = ".$laatste["id"]."");
	
	DIT IS DUS NUTTELOOS. Maar wil je wel iets erachter nog zetten, dan zet je wel weer iets
	tussen de laatste 2 "", zoals dit:
	
	$verwijder = mysql_query("DELETE FROM admin WHERE id = ".$laatste["id"]." AND id = 4");
*/

?>
 
@ Pcfixer: OK bedankt!

@ Breezer, dat gaat dus niet werken. Je zal met 2 bestanden moeten werken:

pagina.php

PHP:
		$query = mysql_query("SELECT naam, titel, id, datum, bestand FROM artikelen ORDER BY id DESC");
		while($view = mysql_fetch_array($query, MYSQL_ASSOC))
		
		echo "Uw naam is" . $view['naam'] . " <a href='delete.php?r={$view['id']}'>verwijder deze rij</a>";

delete.php

PHP:
			$query = mysql_query("DELETE FROM artikelen WHERE id = '$r'");
			
			echo "Verwijderd";

Aan $r wordt de unieke waarde id gegeven, de row waar de waarde van $r in voorkomt wordt verwijderd. Let niet op de voorbeelden (naam etc.) die ik gebruik. Ik copy/paste het van m'n website.

Deze manier vind ik het makkelijkst, voordat ik weer opmerkingen krijg :p
 
Bedankt voor alle hulp :)

Het systeem is eindelijk af.. gister opnieuw begonnen omdat alles wat brak in elkaar zat.

Voor de mensen die het leuk vinden -> *klik*. :)

/admin/ is de admin.. moet alleen nog een bevestigingspopup krijgen bij het verwijderen :)
 
Mooi dat gelukt is, en het ziet er leuk uit :)

Ik zou alleen nog de problemen op ID sorteren, hoogste ID boven. Dan heb je de laatste nieuwe problemen bovenaan.
 
Geplaatst door Saviola
Mooi dat gelukt is, en het ziet er leuk uit :)

Ik zou alleen nog de problemen op ID sorteren, hoogste ID boven. Dan heb je de laatste nieuwe problemen bovenaan.

Ik denk dat ik het op ABC ga sorteren (was ik ff vergeten in de query te zetten), Zoekfunctie gaat mij net even iets te ver en om nou een kant en klaar script van iemand anders te gebruiken.. neh.. dan hou ik mezelf voor de gek aangezien ik het dan toch niet snap :)

Bedankt voor het compliment :thumb:
 
Misschien nog wat kaal maar voor een beginnend systeem ziet het er netjes uit, breez. Nu nog een mooie zoekfunctie hè? :p. Geloof me, het is echt zo moeilijk niet!
 
Geplaatst door pcfixer
Misschien nog wat kaal maar voor een beginnend systeem ziet het er netjes uit, breez. Nu nog een mooie zoekfunctie hè? :p. Geloof me, het is echt zo moeilijk niet!

Ik ga eerst maar eens verder met PHP te leren (arrays enzo).. ik zou niet eens weten hoe ik moet beginnen met die zoekfunctie.. :rolleyes:

En hoezo kaal? Ik heb het niet zo op die drukke layouts enzo :)
 
Een zoekfunctie is gewoon zoeken in de database of een bepaald woord er in staat. Niet zo heel moeilijk, hulp kun je hier altijd krijgen.
 
Ah ja, maar laat het eerst zo wel even. Ben nu bezig met een dynamische versie van Computerhulp (leer ik direct goed PHP aangezien de server geen genoegen neemt met de 'oude' manier van scripten)

Ik heb nu :
PHP:
  <? 

	  mysql_query("INSERT into admin (ip) values ('$_SERVER['REMOTE_ADDR']')") or die (mysql_error());
	
	$sql = mysql_query("SELECT * from admin limit 0,10");
	while ($leesip = mysql_fetch_object($sql)) {
	
	echo "<a href=\"http://www.ripe.net/perl/whois?form_type=simple&full_query_string=&searchtext=$leesip->ip\" target=\"_blank\" title=\"Who is $leesip->ip\">$leesip->ip</a><br>";
	
	}
	
	?>

Dit script maar telkens als ik in de database kijk zie ik dat hij wel iets insert maar dat het veld gewoon leeg is.

attachment.php


Met $REMOTE_ADDR werkt het wel.. vergeet ik nou nog iets?
 

Bijlagen

  • php.jpg
    php.jpg
    19,7 KB · Weergaven: 30
mysql_query("INSERT into admin (ip) values ('{$_SERVER['REMOTE_ADDR']}')") or die (mysql_error());
 
Geplaatst door chrisgeerdink
mysql_query("INSERT into admin (ip) values ('{$_SERVER['REMOTE_ADDR']}')") or die (mysql_error());

Mm.. hoezo } eigenlijk?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan