Data retrieven uit SQL mbv Php

Status
Niet open voor verdere reacties.

indexspelen

Gebruiker
Lid geworden
17 mei 2008
Berichten
90
Ik zal u even de oorsprong van mijn probleem uitleggen.

Ik wil mijn site, een flash-gaming site, laten draaien door enkel en alleen de database te moeten veranderen.
Dit gaat me superveel tijd besparen bij spelletjes adden etc..

Ik had een scriptje gemaakt met $_GET,
Hierdoor kon ik al heel wat automatisch doen, maar toch.
Nu wil ik ongeveer hetzelfde doen, maar ik wil nu dat de data die ik ingeef,
( id, naam, embed, height, width, besturing, beschrijving ),
naar mijn database gaat,
En er weer uitkomt in game.php en index.php
- in game.php moet de embed, height, width, besturing en beschrijving komen.
- in index.php moet de naam en id komen.

ik zoek nu dus een simpel scriptje waarmee ik dit kan doen.
Ik hoop ook dat iemand ervaren hier een antwoord op weet.

Alvast bedankt.
 
Voor het ingeven in de database zul je een formulier aan moeten maken waarin je deze gegevens kwijt kunt.

Vervolgens is het zaak dat bij het verzenden van dat formulier je een INSERT-query naar de database doet.

Op index.php ga je dan de id's en de titel ophalen vanuit de database met een SELECT-query. Daar zorg je dan weer dat de ID aan een URL komt te hangen.
PHP:
$gamesQuery = "SELECT id, name FROM games";
$gamesResult = mysql_query($gamesQuery);
if(!$gamesResult) {
  echo 'Er is iets fout gegaan. MySQL zegt: '. mysql_error();
} else {
  while($gamesRow = mysql_fetch_assoc($gamesResult)) {
    echo '<a href="game.php?id='. $gamesRow['id'] .'">'. $gamesRow['name'] .'</a><br />';
  }
}

Vervolgens is het zaak dat je aan de hand van die ID op game.php een query uitvoert waarin alleen de gegevens van die bepaalde ID worden opgevraagd. Dit kan door een WHERE aan je query toe te voegen.

Dat wordt dus zoiets
PHP:
if(isset($_GET['id'])) {
  $gameQuery = "SELECT name, embed, height, width, besturing, beschrijving FROM games WHERE id='". mysql_real_espace_string($_GET['id']) ."'";
  $gameResult = mysql_query($gameQuery);
  // etc
} else {
  echo 'Geen spel geselecteerd.';
}

Beetje aankleden en je bent klaar :)
 
Ik veronderstel dat je code foutloos is;

Als ik nu een spel verwijder, het werkt niet ofzo

En er ontbreekt een ID,
Moet ik dan alles veranderen ofzo?
+
Ik gebruik mouseovers,
Zo is het wat aantrekkelijker.
Kan ik de ID gebruiken als referentie vóór die mouseovers?

Code van mouseover:
HTML:
<a href="spel.html" onmouseover="doTooltip(event,59)" onmouseout="hideTip()" >Speel Spel</a>

Dus bij (event,59) kan ik 59 dan door ID vervangen?
 
Ik veronderstel dat je code foutloos is;
Nooit zomaar dingen aannemen :P Daarnaast is het geen volledige code, er zijn nog wel dingen die er bij moeten.

Als ik nu een spel verwijder, het werkt niet ofzo
Kun je ook via een formulier regelen. Ik ga er vanuit dat je ook een soort admin-gedeelte maakt waarop je in zult moeten loggen om dingen toe te voegen, aan te passen of te verwijderen.

Als je phpMyAdmin hebt kun je het daar ook via doen maar dat is vaak wat omslachtiger dan wanneer je er zelf iets voor schrijft.

En er ontbreekt een ID,
Moet ik dan alles veranderen ofzo?
Hoe bedoel je dit? Als het goed is heb je de id op AUTO_INCREMENT gezet zodat hij bij elk nieuwe record een ID gebruikt welke 1 hoger is dan de laatste.

Zo zul je nooit zonder een ontbrekende ID komen te zitten.
Ik gebruik mouseovers,
Zo is het wat aantrekkelijker.
Kan ik de ID gebruiken als referentie vóór die mouseovers?

Code van mouseover:
HTML:
<a href="spel.html" onmouseover="doTooltip(event,59)" onmouseout="hideTip()" >Speel Spel</a>

Dus bij (event,59) kan ik 59 dan door ID vervangen?
Ik weet niet hoe die functie doTooltip werkt maar ik ga er vanuit dat het tweede argument een string moet zijn. Hetgeen daar staat zal volgens mij uiteindelijk ook in de tooltip verschijnen. Daar zal dus waarschijnlijk de beschrijving moeten komen te staan.

Het kan alleen wanneer je met AJAX werkt, maar gezien deze vraag lijkt me dat niet zo verstandig. Dat zal iets zijn dat je later wel eens kunt proberen.
 
Devil :l?

Hoe komt er dan automatisch een nieuwe link bij?
( En in de javascript moet er ook nog iets bijkomen )
+
Hoe weet de query welk id hij moet tonen als ik game.php open?
 
Laatst bewerkt:
Zie mijn 1e bericht, daar staat in dat hij elk spel uit de database ophaalt.

Nieuwen worden dus meteen getoond.

Ook staat daar in hoe de query "weet" welke ID hij moet ophalen.

Kwestie van een beetje aanpassen en je bent er.
 
Nja,

Jij begrijp vast wel hoe alles werkt :p

Maar ik dus niet..

Ik ben nu bezig aan mijn database..
Ik ga het op deze manier doen:

Game.php nog altijd met $get.
De links op de hoofdpagina met select uit de database,
Achja, ik ben het script nu aan het schrijven.
Maar in gedachten werkt het al ;)

Toch bedankt voor je hulp hoor, alleen is het iets wat te ingewikkeld voor mij
 
Als dit te ingewikkeld is dan zul je je af moeten vragen of je wel verder wilt met PHP aangezien dit een van de meest gebruikte toepassingen van PHP zijn. :(

Als je iets niet begrijpt moet je dat gewoon zeggen dan kunnen we je wellicht helpen het te begrijpen. :)
 
Ik wil wel degelijk met php werken ^^

Hoe kan ik het anders ooit leren :p

ik werkt pas anderhalve week met php nu,
en ik heb vandaag mijn hele site bijna met sql & php geupdate :p

volgens mij ben ik toch niet de slechtste op dat vlak.
|

Ik snap het meeste van jouw script wel hoor, devil.
Maar ik kan echt niet begrijpen hoe game.php weet welk spel hij moet laten zien.
 
Dat hij begrijpt dat je die bepaalde gegevens wilt hebben heeft meer met SQL te maken dan met PHP :)

Dit is de query die je uitvoert
PHP:
$gameQuery = "SELECT name, embed, height, width, besturing, beschrijving
              FROM games
              WHERE id='". mysql_real_espace_string($_GET['id']) ."'";
In normale tekst staat hier
Haal voor mij (SELECT) de name, embed, height, width, besturing en beschrijving op
uit de tabel (FROM) games
waarvan (WHERE) de id gelijk is (id=) aan de waarde van $_GET['id']
(mysql_real_escape_string is er voor beveiligingsredenen)
 
Nu zie ik het ;)

Maar ik heb het toch op mn eigen manier gedaan :D

Ik vond een simpele en efficiente manier om heel de site te runnen vanuit 3 pagina's.
 
Ik ben wel benieuwd hoe de code er nu uit ziet, vooral wanneer je niet de bovenstaande manier hebt toegepast :)
 
Eerlijk gezegd heb ik het bij $_GET gehouden voor de spelletjes :p
Dat vind ik nog altijd de duidelijkste manier.

Om spelletjes in en uit de database te halen heb ik gewoon INSERT en SELECT gebruikt,
En dan laat ik de row verschijnen in mijn index.php

:p zo dus
 
Eerlijk gezegd heb ik het bij $_GET gehouden voor de spelletjes :p
Dat vind ik nog altijd de duidelijkste manier.

Wat geef je mee aan je $_GET dan?
Als het geen id is dan vraag ik mij af waarom je met een database werkt omdat je anders erg inefficïent bezig bent.
 
Ik geef alles aan get mee wat bij het spel moet horen.
Titel, embed, height, width, besturing & beschrijving.

En ik gebruik de database om de links in te bewaren
 
Ik zou toch gaan voor alleen een ID meegeven, lijkt mij aardig wat efficienter.

Je hebt immers niet voor niets een database :)

Maar goed als het zo voor jou werkt dan kun je het zo laten.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan